# Identical regression estimates in cross-lagged panel model (RICLPM)?

201 views

### zrc2...@gmail.com

Apr 24, 2019, 10:08:37 AM4/24/19
to lavaan
Hello,

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.

I am curious if there is an obvious reason for such results.

Any input would be much appreciated
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))
'

OUTPUT

> 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

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

>

### Terrence Jorgensen

Apr 24, 2019, 12:59:06 PM4/24/19
to lavaan
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.  I am curious if there is an obvious reason for such results.

Because your model syntax constraints them to equality by using the same labels:

# 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

See the section "simple equality constraints" in the tutorial:  http://lavaan.ugent.be/tutorial/syntax2.html

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

### zrc2...@gmail.com

Apr 25, 2019, 11:16:05 AM4/25/19
to lavaan
Indeed...! I noticed that only after my post and did have to think what purpose equality constraints serves for cross-path type modeling (when my substantive interest in these modeling is usually interpreting direction of influence with regression coefficients). Thank you for taking your time to answer this (dumb) question. Much appreciated.