I am new to SEM and currently struggling setting up Latent Change Score models for testing for Measurement Invariance (MI).
I have a model with two latent factors (T1 en T2) with each 2 indicators (X1, X2), where i capture the change through a latent change score (LSC) variable. As i only have 2 indicators per factor, a configural and metric model would not identify. Therefore i am trying to set up the models for strong en strict MI. However i am doing something wrong with the equality constrains. I know from the literature that the difference in degrees of freedom between a 2 indicator strict vs strong MI LCS model needs to be 6. However my strict vs strong model has only 2 more free parameters (the 2 equality constrained indicator residuals).
Here is my R-code for my 2 indicator LCS model with Strict MI:
LCS<-' T1=~1*T1X1+T1X2 # This specifies the measurement model for T1 T2=~1*T2X1+equal("T1=~T1X2")*T2X2 # This specifies the measurement model for T2 with the equality constrained factor loadings T2 ~ 1*T1 # Fixed regression of EE_T2 on EE_T1 LCS =~ 1*T2 # Fixed regression of dEE1 on EE_T2 T2 ~ 0*1 # This line constrains the intercept of EE_T2 to 0 T2 ~~ 0*T2 # This fixes the variance of the EE_T2 to 0 LCS ~ 1 # This estimates the intercept of the change score T1 ~ 1 # This estimates the intercept of EE_T1 LCS ~~ LCS # This estimates the variance of the change scores T1 ~~ T1 # This estimates the variance of the EE_T1 LCS~T1 # This estimates the self-feedback parameter T1X1~~T2X1 # This allows residual covariance on indicator X1 across T1 and T2 T1X2~~T2X2 # This allows residual covariance on indicator X2 across T1 and T2 T1X1~~T1X1 # This allows residual variance on indicator X1 T1X2~~T1X2 # This allows residual variance on indicator X2 T2X1~~equal("T1X1~~T1X1")*T2X1 # This allows residual variance on indicator X1 at T2 T2X2~~equal("T1X2~~T1X2")*T2X2 # This allows residual variance on indicator X2 at T2 T1X1~0*1 # This constrains the intercept of X1 to 0 at T1 T1X2~1 # This estimates the intercept of X2 at T1 T2X1~0*1 # This constrains the intercept of X1 to 0 at T2 T2X2~equal("T1X2~1")*1' # This estimates the intercept of X2 at T2 fitLCS <- lavaan(LCS, data=Data, estimator='mlr',fixed.x=FALSE,missing='fiml')
Is my strict MI LCS model correctly specified? And which equality constraints do i need to remove to go to a strong MI LCS model?