Hello!
I'm currently trying to model a RI-CLPM with to R-Script provided by Mund & Nestler (2018). I'm working with two variables (loneliness = ucla and interpretation bias in ambiguous situations = ijq.ambi). The two constructs correlate positively and in theory, there should be positive cross-lagged effects over time. But somehow the output doesn't seem to match the theory and other results. I strongly suspect that I messed something up in the model.
Did anyone encounter similar issues?
Here's the model:
riclpm_pet2 <- '
# Define intercept factors
ix =~ 1*ucla1 + 1*ucla2 + 1*ucla3
iy =~ 1*ijq.ambi1 + 1*ijq.ambi2 + 1*ijq.ambi3
# Define phantom latent variables
etax1 =~ 1*ucla1
etax2 =~ 1*ucla2
etax3 =~ 1*ucla3
etay1 =~ 1*ijq.ambi1
etay2 =~ 1*ijq.ambi2
etay3 =~ 1*ijq.ambi3
# Autoregressive effects
etax2 ~ a1*etax1
etax3 ~ a1*etax2
etay2 ~ a2*etay1
etay3 ~ a2*etay2
# Crosslagged effects
etay2 ~ c1*etax1
etay3 ~ c1*etax2
etax2 ~ c2*etay1
etax3 ~ c2*etay2
# Some further constraints on the variance structure
# 1. Set error variances of the observed variables to zero
ucla1 ~~ 0*ucla1
ucla2 ~~ 0*ucla2
ucla3 ~~ 0*ucla3
ijq.ambi1 ~~ 0*ijq.ambi1
ijq.ambi2 ~~ 0*ijq.ambi2
ijq.ambi3 ~~ 0*ijq.ambi3
# 2. Let lavaan estimate the variance of the latent variables
etax1 ~~ varx1*etax1
etax2 ~~ varx2*etax2
etax3 ~~ varx3*etax3
etay1 ~~ vary1*etay1
etay2 ~~ vary2*etay2
etay3 ~~ vary3*etay3
# 3. We also want estimates of the intercept factor variances and an
# estimate of their covariance
ix ~~ varix*ix
iy ~~ variy*iy
ix ~~ covi*iy
# 4. We have to define that the covariance between the intercepts and
# the latents of the first time point are zero
etax1 ~~ 0*ix
etay1 ~~ 0*ix
etax1 ~~ 0*iy
etay1 ~~ 0*iy
# 5. Finally, we estimate the covariance between the latents of x and y
# of the first time point, the second time-point and so on. note that
# for the second to fourth time point the correlation is constrained to
# the same value
etax1 ~~ cov1*etay1
etax2 ~~ e1*etay2
etax3 ~~ e1*etay3
# The model also contains a mean structure and we have to define some
# constraints for this part of the model. the assumption is that we
# only want estimates of the mean of the intercept factors. all other means
# are defined to be zero:
ucla1 ~ 0*1
ucla2 ~ 0*1
ucla3 ~ 0*1
ijq.ambi1 ~ 0*1
ijq.ambi2 ~ 0*1
ijq.ambi3 ~ 0*1
etax1 ~ 0*1
etax2 ~ 0*1
etax3 ~ 0*1
etay1 ~ 0*1
etay2 ~ 0*1
etay3 ~ 0*1
ix ~ 1
iy ~ 1
## define correlations
cori := covi / (sqrt(varix) * sqrt(variy))
cor1 := cov1 / (sqrt(varx1) * sqrt(vary1))
cort2 := e1 / (sqrt(varx2) * sqrt(vary2))
cort3 := e1 / (sqrt(varx3) * sqrt(vary3))
'
Here is the output:
fit2 <- sem(riclpm_pet2, data = lon, missing="ML")
summary(fit2, fit.measures = T, standardized=T)
lavaan 0.6-12 ended normally after 191 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 22
Number of equality constraints 5
Number of observations 813
Number of missing patterns 12
Model Test User Model:
Test statistic 61.617
Degrees of freedom 10
P-value (Chi-square) 0.000
Model Test Baseline Model:
Test statistic 1323.200
Degrees of freedom 15
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.961
Tucker-Lewis Index (TLI) 0.941
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -5179.273
Loglikelihood unrestricted model (H1) -5148.465
Akaike (AIC) 10392.546
Bayesian (BIC) 10472.459
Sample-size adjusted Bayesian (BIC) 10418.474
Root Mean Square Error of Approximation:
RMSEA 0.080
90 Percent confidence interval - lower 0.061
90 Percent confidence interval - upper 0.099
P-value RMSEA <= 0.05 0.005
Standardized Root Mean Square Residual:
SRMR 0.060
Parameter Estimates:
Standard errors Standard
Information Observed
Observed information based on Hessian
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
ix =~
ucla1 1.000 4.498 0.819
ucla2 1.000 4.498 0.818
ucla3 1.000 4.498 0.830
iy =~
ijq.ambi1 1.000 0.493 0.782
ijq.ambi2 1.000 0.493 0.855
ijq.ambi3 1.000 0.493 0.825
etax1 =~
ucla1 1.000 3.151 0.574
etax2 =~
ucla2 1.000 3.166 0.576
etax3 =~
ucla3 1.000 3.021 0.558
etay1 =~
ijq.ambi1 1.000 0.392 0.623
etay2 =~
ijq.ambi2 1.000 0.298 0.518
etay3 =~
ijq.ambi3 1.000 0.338 0.566
Regressions:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
etax2 ~
etax1 (a1) 0.402 0.111 3.614 0.000 0.401 0.401
etax3 ~
etax2 (a1) 0.402 0.111 3.614 0.000 0.422 0.422
etay2 ~
etay1 (a2) -0.051 0.130 -0.388 0.698 -0.066 -0.066
etay3 ~
etay2 (a2) -0.051 0.130 -0.388 0.698 -0.045 -0.045
etay2 ~
etax1 (c1) -0.025 0.011 -2.235 0.025 -0.265 -0.265
etay3 ~
etax2 (c1) -0.025 0.011 -2.235 0.025 -0.235 -0.235
etax2 ~
etay1 (c2) -1.681 0.556 -3.023 0.003 -0.208 -0.208
etax3 ~
etay2 (c2) -1.681 0.556 -3.023 0.003 -0.166 -0.166
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
ix ~~
iy (covi) 1.487 0.156 9.563 0.000 0.671 0.671
etax1 0.000 0.000 0.000
etay1 0.000 0.000 0.000
iy ~~
etax1 0.000 0.000 0.000
etay1 0.000 0.000 0.000
etax1 ~~
etay1 (cov1) -0.017 0.117 -0.149 0.882 -0.014 -0.014
.etax2 ~~
.etay2 (e1) -0.092 0.069 -1.343 0.179 -0.114 -0.114
.etax3 ~~
.etay3 (e1) -0.092 0.069 -1.343 0.179 -0.106 -0.106
Intercepts:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.ucla1 0.000 0.000 0.000
.ucla2 0.000 0.000 0.000
.ucla3 0.000 0.000 0.000
.ijq.ambi1 0.000 0.000 0.000
.ijq.ambi2 0.000 0.000 0.000
.ijq.ambi3 0.000 0.000 0.000
etax1 0.000 0.000 0.000
.etax2 0.000 0.000 0.000
.etax3 0.000 0.000 0.000
etay1 0.000 0.000 0.000
.etay2 0.000 0.000 0.000
.etay3 0.000 0.000 0.000
ix 20.613 0.189 109.270 0.000 4.583 4.583
iy 1.831 0.021 88.881 0.000 3.716 3.716
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.ucla1 0.000 0.000 0.000
.ucla2 0.000 0.000 0.000
.ucla3 0.000 0.000 0.000
.ijq.mb1 0.000 0.000 0.000
.ijq.mb2 0.000 0.000 0.000
.ijq.mb3 0.000 0.000 0.000
etax1 (vrx1) 9.928 1.801 5.513 0.000 1.000 1.000
.etax2 (vrx2) 7.954 1.173 6.780 0.000 0.794 0.794
.etax3 (vrx3) 7.005 0.812 8.626 0.000 0.768 0.768
etay1 (vry1) 0.154 0.016 9.484 0.000 1.000 1.000
.etay2 (vry2) 0.082 0.027 3.070 0.002 0.926 0.926
.etay3 (vry3) 0.108 0.013 8.155 0.000 0.947 0.947
ix (varx) 20.231 2.124 9.524 0.000 1.000 1.000
iy (vary) 0.243 0.022 11.197 0.000 1.000 1.000
Defined Parameters:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
cori 0.671 0.084 8.014 0.000 0.671 0.671
cor1 -0.014 0.094 -0.150 0.881 -0.014 -0.014
cort2 -0.114 0.087 -1.307 0.191 -0.133 -0.133
cort3 -0.106 0.078 -1.364 0.173 -0.134 -0.134