RI-CLPM (Mund & Nestler (2018) Style) Surprising Negative Regressions

119 views
Skip to first unread message

Andrej Skoko

unread,
Nov 7, 2022, 9:22:27 AM11/7/22
to lavaan
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

Reply all
Reply to author
Forward
0 new messages