I am using an random intercept cross-lagged panel model (RICLPM) code for Lavaan (see below) with missing data estimated with fiml. I am puzzled by the results, which provide identical regression estimates for all cross and stability paths for the same construct measured at 4 different time points. In other words, estimate for x1--> x2, x2-->x3, x3-->x4 are all identical. Likewise, x1-->y2, x2-->y3, x3-->y4 are all identical.
riclpm3<- '
# Define intercept factors
ix =~ 1*x1+1*x2+1*x3+1*x4
iy =~ 1*y1+1*y2+1*y3+1*y4
# Define phantom latent variables
etax1 =~ 1*x1
etax2 =~ 1*x2
etax3 =~ 1*x3
etax4 =~ 1*x4
etay1 =~ 1*y1
etay2 =~ 1*y2
etay3 =~ 1*y3
etay4 =~ 1*y4
# Autoregressive effects
etax2 ~ a1*etax1
etax3 ~ a1*etax2
etax4 ~ a1*etax3
etay2 ~ a2*etay1
etay3 ~ a2*etay2
etay4 ~ a2*etay3
# Crosslagged effects
etay2 ~ c1*etax1
etay3 ~ c1*etax2
etay4 ~ c1*etax3
etax2 ~ c2*etay1
etax3 ~ c2*etay2
etax4 ~ c2*etay3
# Some further constraints on the variance structure
# 1. Set error variances of the observed variables to zero
x1 ~~ 0*x1
x2 ~~ 0*x2
x3 ~~ 0*x3
x4 ~~ 0*x4
y1 ~~ 0*y1
y2 ~~ 0*y2
y3 ~~ 0*y3
y4 ~~ 0*y4
# 2. Let lavaan estimate the variance of the latent variables
etax1 ~~ varx1*etax1
etax2 ~~ varx2*etax2
etax3 ~~ varx3*etax3
etax4 ~~ varx4*etax4
etay1 ~~ vary1*etay1
etay2 ~~ vary2*etay2
etay3 ~~ vary3*etay3
etay4 ~~ vary4*etay4
# 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
etax4 ~~ e1*etay4
# 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:
x1 ~ 0*1
x2 ~ 0*1
x3 ~ 0*1
x4 ~ 0*1
y1 ~ 0*1
y2 ~ 0*1
y3 ~ 0*1
y4 ~ 0*1
etax1 ~ 0*1
etax2 ~ 0*1
etax3 ~ 0*1
etax4 ~ 0*1
etay1 ~ 0*1
etay2 ~ 0*1
etay3 ~ 0*1
etay4 ~ 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(vary4)) #IS THIS CORRECT?
cort4 := e1 / (sqrt(varx4) * sqrt(vary4))
'
> fit3 <- sem(riclpm3, data = RICLPM, missing="fiml")
> summary(fit3, fit.measures = T)
lavaan 0.6-3 ended normally after 228 iterations
Optimization method NLMINB
Number of free parameters 29
Number of equality constraints 10
Used Total
Number of observations 142 156
Number of missing patterns 41
Estimator ML
Model Fit Test Statistic 109.023
Degrees of freedom 25
P-value (Chi-square) 0.000
Model test baseline model:
Minimum Function Test Statistic 461.425
Degrees of freedom 28
P-value 0.000
User model versus baseline model:
Comparative Fit Index (CFI) 0.806
Tucker-Lewis Index (TLI) 0.783
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -2848.588
Loglikelihood unrestricted model (H1) -2794.076
Number of free parameters 19
Akaike (AIC) 5735.175
Bayesian (BIC) 5791.336
Sample-size adjusted Bayesian (BIC) 5731.219
Root Mean Square Error of Approximation:
RMSEA 0.154
90 Percent Confidence Interval 0.125 0.184
P-value RMSEA <= 0.05 0.000
Standardized Root Mean Square Residual:
SRMR 0.146
Parameter Estimates:
Information Observed
Observed information based on Hessian
Standard Errors Standard
Latent Variables:
Estimate Std.Err z-value P(>|z|)
ix =~
x1 1.000
x2 1.000
x3 1.000
x4 1.000
iy =~
y1 1.000
y2 1.000
y3 1.000
y4 1.000
etax1 =~
x1 1.000
etax2 =~
x2 1.000
etax3 =~
x3 1.000
etax4 =~
x4 1.000
etay1 =~
y1 1.000
etay2 =~
y2 1.000
etay3 =~
y3 1.000
etay4 =~
y4 1.000
Regressions:
Estimate Std.Err z-value P(>|z|)
etax2 ~
etax1 (a1) 0.816 0.086 9.519 0.000
etax3 ~
etax2 (a1) 0.816 0.086 9.519 0.000
etax4 ~
etax3 (a1) 0.816 0.086 9.519 0.000
etay2 ~
etay1 (a2) 0.203 0.087 2.329 0.020
etay3 ~
etay2 (a2) 0.203 0.087 2.329 0.020
etay4 ~
etay3 (a2) 0.203 0.087 2.329 0.020
etay2 ~
etax1 (c1) -0.039 0.061 -0.635 0.525
etay3 ~
etax2 (c1) -0.039 0.061 -0.635 0.525
etay4 ~
etax3 (c1) -0.039 0.061 -0.635 0.525
etax2 ~
etay1 (c2) 0.125 0.143 0.874 0.382
etax3 ~
etay2 (c2) 0.125 0.143 0.874 0.382
etax4 ~
etay3 (c2) 0.125 0.143 0.874 0.382
Covariances:
Estimate Std.Err z-value P(>|z|)
ix ~~
iy (covi) 17.881 8.222 2.175 0.030
etax1 0.000
etay1 0.000
iy ~~
etax1 0.000
etay1 0.000
etax1 ~~
etay1 (cov1) -12.186 7.752 -1.572 0.116
.etax2 ~~
.etay2 (e1) -0.175 2.112 -0.083 0.934
.etax3 ~~
.etay3 (e1) -0.175 2.112 -0.083 0.934
.etax4 ~~
.etay4 (e1) -0.175 2.112 -0.083 0.934
Intercepts:
Estimate Std.Err z-value P(>|z|)
.x1 0.000
.x2 0.000
.x3 0.000
.x4 0.000
.y1 0.000
.y2 0.000
.y3 0.000
.y4 0.000
etax1 0.000
.etax2 0.000
.etax3 0.000
.etax4 0.000
etay1 0.000
.etay2 0.000
.etay3 0.000
.etay4 0.000
ix 32.708 0.846 38.681 0.000
iy 20.310 0.465 43.635 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.x1 0.000
.x2 0.000
.x3 0.000
.x4 0.000
.y1 0.000
.y2 0.000
.y3 0.000
.y4 0.000
etax1 (vrx1) 92.753 41.398 2.240 0.025
.etax2 (vrx2) 57.551 8.858 6.497 0.000
.etax3 (vrx3) 36.850 5.373 6.859 0.000
.etax4 (vrx4) 34.280 5.222 6.564 0.000
etay1 (vry1) 23.144 4.108 5.634 0.000
.etay2 (vry2) 15.316 2.538 6.034 0.000
.etay3 (vry3) 19.491 3.718 5.242 0.000
.etay4 (vry4) 13.116 2.519 5.208 0.000
ix (varx) -12.576 39.995 -0.314 0.753
iy (vary) 19.328 3.668 5.269 0.000
Defined Parameters:
Estimate Std.Err z-value P(>|z|)
cori Inf 35882095144945480.000 Inf 0.000
cor1 -0.263 0.154 -1.709 0.088
cort2 -0.006 0.071 -0.083 0.934
cort3 -0.008 0.096 -0.083 0.934
cort4 -0.008 0.100 -0.083 0.934
>