Help checking understanding of bivariate latent change score model output

130 views
Skip to first unread message

Daisy C

unread,
Jun 19, 2019, 7:10:03 AM6/19/19
to lavaan
Hi there,

I have run a bivariate latent change score model with two timepoints, for repetitive behaviour (RBSR) and anxiety (ANX) in autistic individuals. At present I am using observed variables (total scores) rather than latent constructs (as I'm still learning!). I have log transformed all four observed variables before the model as their raw score distributions were non-normal.

I am hoping for some clarification as to whether I am interpreting the output correctly, and that I have understood what I've read about reporting unstandardised versus standards estimates. 

This is my model:

# Bivariate Latent Change Score model 
bivariate_rrb_anx <-'

RBSR_T2 ~ 1*RBSR_T1     # This parameter regresses RBSR_T2 perfectly on RBSR_T1
dRBSR1 =~ 1*RBSR_T2     # This defines the latent change score factor as measured perfectly by scores on RBSR_T2
dRBSR1 ~ 1             # This estimates the intercept of the change score 
RBSR_T1 ~  1           # This estimates the intercept of RBSR_T1 
RBSR_T2 ~ 0*1          # This constrains the intercept of RBSR_T2 to 0

ANX_T2 ~ 1*ANX_T1     # This parameter regresses ANX_T2 perfectly on ANX_T1
dANX1 =~ 1*ANX_T2     # This defines the latent change score factor as measured perfectly by scores on ANX_T2
ANX_T2 ~ 0*1          # This line constrains the intercept of ANX_T2 to 0
ANX_T2 ~~ 0*ANX_T2    # This fixes the variance of the ANX_T1 to 0  

dRBSR1 ~~  dRBSR1       # This estimates the variance of the change scores
RBSR_T1 ~~   RBSR_T1    # This estimates the variance of the RBSR_T1 
RBSR_T2 ~~ 0*RBSR_T2    # This fixes the variance of the RBSR_T2 to 0  

dANX1 ~ 1             # This estimates the intercept of the change score 
ANX_T1 ~ 1            # This estimates the intercept of ANX_T1 
dANX1 ~~ dANX1        # This estimates the variance of the change scores 
ANX_T1 ~~ ANX_T1      # This estimates the variance of ANX_T1 

dANX1~RBSR_T1+ANX_T1   # This estimates the RBSR to ANX coupling parameter and the RBSR to RBSR self-feedback
dRBSR1~ANX_T1+RBSR_T1   # This estimates the ANX to RBSR coupling parameter and the ANX to ANX self-feedback

RBSR_T1 ~~  ANX_T1     # This estimates the RBSR_T1 ANX_T1 covariance
dRBSR1~~dANX1          # This estimates the dRBSR and dANX covariance
'

I then ran:
fit_bivar_rrb_anx <- lavaan(bivariate_rrb_anx, data=asd_latent_change, estimator='mlr',fixed.x=FALSE,missing='fiml')
lavaan::summary(fit_bivar_rrb_anx, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)

I have attached the model output as a txt file for ease of viewing (hopefully!)

From the output I have interpreted the following:
1) RBSR to change_ANX coupling is significant (unstandardised estimate = 0.179)
2) RBSR to change_RBSR (beta) is significant (unstandardised estimate = -0.204)
3) ANX to change_ANX (beta) is significant (unstandardised estimate = -0.524)
4) ANX to change_RBSR coupling is not significant (unstandardised estimate = 0.129)

5) Change_RBSR and change_ANX covariance is significant (unstandardised estimate = 0.018)
6) T1 RBSR and T1 ANX covariance is not significant (unstandardised estimate = 0.015)
7) The intercept of T1 Anx (unstandardised estimate = 0.667) and change_ANX are significant (unstandardised estimate = 0.145) but the intercept of change_RBSR is not (unstandardised estimate = 0.077)
8) However, one particular question is - is there an insufficient number of degrees of freedom in the model? Or are we unable to estimate model fit in isolation as it is just identified (as with a univariate latent change score model)?

Are my interpretations from the model output correct?

My final questions are: am I right to be reporting unstandardised estimates in relation to p-values and standard errors? And then should I additionally report standardised estimates using the standardizedSolution()

Many thanks in advance for any help!
Daisy 
bivariate_output.txt

Terrence Jorgensen

unread,
Jun 19, 2019, 8:00:35 AM6/19/19
to lavaan
is there an insufficient number of degrees of freedom in the model? Or are we unable to estimate model fit in isolation as it is just identified (as with a univariate latent change score model)?

Your model has df=0, so it is saturated.  Model fit cannot be tested.

Are my interpretations from the model output correct?

The P(>|z|) column contains p values, so that is what you should refer to about all your "significant" conclusions.

am I right to be reporting unstandardised estimates in relation to p-values and standard errors?

Yes
 
And then should I additionally report standardised estimates using the standardizedSolution()

Or in the "std.all" column of the summary() output you provided.  Those can be considered standardized effect sizes.  Not sure why people want to report tests of those too; that just means you end up testing the same null hypothesis twice.

Terrence D. Jorgensen
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam



Daisy C

unread,
Jun 19, 2019, 8:40:17 AM6/19/19
to lavaan
Hi Terrance,

Many thanks for your swift reply!

Indeed the P (> | z | column) was where I was interpreting significance from so that is reassuring to know. My main concern was whether I was intepreting the output (i.e.the p values and standardised estimates of covariances, regressions, intercepts) correctly.

Thank you also for confirming that the model fit cannot be tested due to saturation. Could you possibly comment on whether it is okay to proceed with the model knowing this or whether one should strive to compare it to an alternative, e.g. one in which the latent change variances are constrained to 0? As suggested in Kievit et al. Although, when I did this in a univariate model, the model did not converge. 

I am indeed a little confused about the unstandardised vs. standardised estimates discussions that I have read but if it is sufficient to report the standardised estimates then I will focus on these values rather than those from std.all.

Thanks,
Daisy 

Terrence Jorgensen

unread,
Jun 20, 2019, 3:05:58 PM6/20/19
to lavaan
Could you possibly comment on whether it is okay to proceed with the model knowing this or whether one should strive to compare it to an alternative,

I'd assume if you don't have any questions about model fit, then that is not a hypothesis you want to test, so there is no point contriving ways to make it possible.
 
e.g. one in which the latent change variances are constrained to 0? 

Only if you are interested in testing the H0 that everyone changes by the same amount.

when I did this in a univariate model, the model did not converge. 

Then it might be a bad representation of the data.

I am indeed a little confused about the unstandardised vs. standardised estimates

I'm not sure the default standardized estimates are meaningful in the context of latent difference-score models. One might need to standardize according to the total variability across repeated measures, rather than treating each repeated measure as an separate variable.

nick judd

unread,
Jun 20, 2019, 7:45:50 PM6/20/19
to lavaan
Hey Daisy,

Try making a measurement model first (CFA) with latents, it will help your degrees of freedom.
Than add strict measurement invariance, than try the bLCS mod with strict measurement invariance.

Best,
Nick 
Reply all
Reply to author
Forward
0 new messages