Hello,
I want to test whether changes in agency predict changes in well-being considering 3 waves and a sample of 207 individuals (some data was imputed). Agency is a single indicator variable and well-being has multiple indicators (a scale with 4 items). I implemented LCSM with proportional effects using WLSMV (theta parameterization). To estimate well-being, I used the effects coding identification approach for both the estimation of factor loadings and thresholds.
Here is my code:
Model_LSCM_agency2 <- "
##### DLS #####
# latent true scores (factor loadings constrained to equality across waves)
DLS1 =~ NA*DLS_1.T1 + f1*DLS_1.T1 + f2*DLS_2.T1 + f3*DLS_3.T1 + f4*DLS_4.T1
DLS2 =~ NA*DLS_1.T2 + f1*DLS_1.T2 + f2*DLS_2.T2 + f3*DLS_3.T2 + f4*DLS_4.T2
DLS3 =~ NA*DLS_1.T3 + f1*DLS_1.T3 + f2*DLS_2.T3 + f3*DLS_3.T3 + f4*DLS_4.T3
# constraints (effects coding identification)
f1 + f2 + f3 + f4 == 4
# thresholds (constrained to equality across waves)
DLS_1.T1 |t1.1*t1 + t1.2*t2 + t1.3*t3 + t1.4*t4 + t1.5*t5 + t1.6*t6
DLS_2.T1 |t2.1*t1 + t2.2*t2 + t2.3*t3 + t2.4*t4 + t2.5*t5 + t2.6*t6
DLS_3.T1 |t3.1*t1 + t3.2*t2 + t3.3*t3 + t3.4*t4 + t3.5*t5 + t3.6*t6
DLS_4.T1 |t4.1*t1 + t4.2*t2 + t4.3*t3 + t4.4*t4 + t4.5*t5 + t4.6*t6
DLS_1.T2 |t1.1*t1 + t1.2*t2 + t1.3*t3 + t1.4*t4 + t1.5*t5 + t1.6*t6
DLS_2.T2 |t2.1*t1 + t2.2*t2 + t2.3*t3 + t2.4*t4 + t2.5*t5 + t2.6*t6
DLS_3.T2 |t3.1*t1 + t3.2*t2 + t3.3*t3 + t3.4*t4 + t3.5*t5 + t3.6*t6
DLS_4.T2 |t4.1*t1 + t4.2*t2 + t4.3*t3 + t4.4*t4 + t4.5*t5 + t4.6*t6
DLS_1.T3 |t1.1*t1 + t1.2*t2 + t1.3*t3 + t1.4*t4 + t1.5*t5 + t1.6*t6
DLS_2.T3 |t2.1*t1 + t2.2*t2 + t2.3*t3 + t2.4*t4 + t2.5*t5 + t2.6*t6
DLS_3.T3 |t3.1*t1 + t3.2*t2 + t3.3*t3 + t3.4*t4 + t3.5*t5 + t3.6*t6
DLS_4.T3 |t4.1*t1 + t4.2*t2 + t4.3*t3 + t4.4*t4 + t4.5*t5 + t4.6*t6
# constraints (effects coding approach)
t1.1 + t2.1 + t3.1 + t4.1 == 0
# unique variances (fixed to 1)
DLS_1.T1 ~~ 1*DLS_1.T1
DLS_2.T1 ~~ 1*DLS_2.T1
DLS_3.T1 ~~ 1*DLS_3.T1
DLS_4.T1 ~~ 1*DLS_4.T1
DLS_1.T2 ~~ 1*DLS_1.T2
DLS_2.T2 ~~ 1*DLS_2.T2
DLS_3.T2 ~~ 1*DLS_3.T2
DLS_4.T2 ~~ 1*DLS_4.T2
DLS_1.T3 ~~ 1*DLS_1.T3
DLS_2.T3 ~~ 1*DLS_2.T3
DLS_3.T3 ~~ 1*DLS_3.T3
DLS_4.T3 ~~ 1*DLS_4.T3
# measurement errors' covariances across waves (freely estimated)
DLS_1.T1 ~~ DLS_1.T2 + DLS_1.T3
DLS_2.T1 ~~ DLS_2.T2 + DLS_2.T3
DLS_3.T1 ~~ DLS_3.T2 + DLS_3.T3
DLS_4.T1 ~~ DLS_4.T2 + DLS_4.T3
DLS_1.T2 ~~ DLS_1.T3
DLS_2.T2 ~~ DLS_2.T3
DLS_3.T2 ~~ DLS_3.T3
DLS_4.T2 ~~ DLS_4.T3
# latent true scores' means (first freely estimated, others fixed to 0)
DLS1 ~ 1
DLS2 ~ 0*1
DLS3 ~ 0*1
# latent true scores' variances (first freely estimated, others fixed to 0)
DLS1 ~~ DLS1
DLS2 ~~ 0*DLS2
DLS3 ~~ 0*DLS3
# autoregressions (loadings fixed to 1)
DLS2 ~ 1*DLS1
DLS3 ~ 1*DLS2
# latent change scores (loadings fixed to 1)
c.DLS1x2 =~ 1*DLS2
c.DLS2x3 =~ 1*DLS3
# latent change scores' means (freely estimated)
c.DLS1x2 ~ 1
c.DLS2x3 ~ 1
# latent change scores' disturbances (freely estimated)
c.DLS1x2 ~~ c.DLS1x2
c.DLS2x3 ~~ c.DLS2x3
# covariance between latent change scores' disturbances (fixed to 0)
c.DLS1x2 ~~ 0*c.DLS2x3
# proportional effects (constrained to equality)
c.DLS1x2 ~ p.DLS*DLS1
c.DLS2x3 ~ p.DLS*DLS2
##### agency #####
# latent true scores (loadings fixed to 1)
Ag1 =~ 1*Ag.T1
Ag2 =~ 1*Ag.T2
Ag3 =~ 1*Ag.T3
# thresholds (first fixed to 0, others constrainted to equality across waves)
Ag.T1 |0*t1 + t2.Ag*t2 + t3.Ag*t3 + t4.Ag*t4
Ag.T2 |0*t1 + t2.Ag*t2 + t3.Ag*t3 + t4.Ag*t4
Ag.T3 |0*t1 + t2.Ag*t2 + t3.Ag*t3 + t4.Ag*t4
# unique variances (fixed to 1)
Ag.T1 ~~ 1*Ag.T1
Ag.T2 ~~ 1*Ag.T2
Ag.T3 ~~ 1*Ag.T3
# latent true scores' means (first freely estimated, others fixed to 0)
Ag1 ~ 1
Ag2 ~ 0*1
Ag3 ~ 0*1
# latent true scores' variances (first freely estimated, others fixed to 0)
Ag1 ~~ 1*Ag1
Ag2 ~~ 0*Ag2
Ag3 ~~ 0*Ag3
# autoregressions (loadings fixed to 1)
Ag2 ~ 1*Ag1
Ag3 ~ 1*Ag2
# latent change scores (loadings fixed to 1)
c.Ag1x2 =~ 1*Ag2
c.Ag2x3 =~ 1*Ag3
# latent change scores' means (freely estimated)
c.Ag1x2 ~ 1
c.Ag2x3 ~ 1
# latent change scores' disturbances (freely estimated)
c.Ag1x2 ~~ c.Ag1x2
c.Ag2x3 ~~ c.Ag2x3
# covariance between latent change scores' disturbances (fixed to 0)
c.Ag1x2 ~~ 0*c.Ag2x3
# proportional effects (constrained to equality)
c.Ag1x2 ~ p.Ag*Ag1
c.Ag2x3 ~ p.Ag*Ag2
##### relations between DLS and agency #####
# covariances between the first measurements
DLS1 ~~ Ag1
# coupling paratemers (constrained to equality)
c.DLS1x2 ~ p*c.Ag1x2
c.DLS2x3 ~ p*c.Ag2x3
"
fit_imp_LSCM_agency2 <- cfa(Model_LSCM_agency2,
data = df_imp,
ordered = T,
estimator = "wlsmv",
parameterization = "theta")
summary(fit_imp_LSCM_agency2, rsquare= T, standardized= T, fit.measures= T)
As this is the first time I’m running this sort of model, it would be great if someone could have a look if the code looks fine. I’m particularly concerned about:
1) Am I estimating the thresholds correctly (first fixed to 0, other constrained to equality)?
2) Should I fix the errors of agency to 1 the way I’m currently doing?
3) Should I include covariances between agency errors across waves (not currently included)?
In addition, I also would like to understand better the function of the proportional effects. If I remove them, the effect size of the anticipated regression path increases considerably.
Here are extra questions:
1) The covariance between two well-being errors is negative. Should I fix it to 0.001?
2) The first threshold is often non-significant. Would it be more appropriate to collapse the two first response categories (which were less frequently answered)?
Warmly,