Multivariate Latent Growth Curve Model

472 views
Skip to first unread message

René Britschgi

unread,
Jun 3, 2014, 12:21:25 PM6/3/14
to lav...@googlegroups.com
Dear Lavaan users,

I`m trying to set up a multivariate latent growth curve model consisting out of three latent growth curve models. In particular I`m interested whether and how outcome (io = intercept of outcome orientation, so = slope of outcome orientation) and process orientation (ip = intercept of outcome orientation, sp = slope of process orientation) relate to boredom (i = intercept of boredom, s = slope of boredom) over the course of ca. 30 minutes (4 measurements). First I tried a multivariate growth curve model with boredom and process orientation. That worked and I could see how the intercepts and slopes of these two models are related to each other. Then I looked at boredom and outcome orientation. This also worked. However, when I include all three growth curve models I get the following warning messages:  

Warning messages:
1: In lavaan::lavaan(model = growth1, data = Recoded, estimator = "mlr",  :
  lavaan WARNING: some estimated variances are negative
2: In lavaan::lavaan(model = growth1, data = Recoded, estimator = "mlr",  :
  lavaan WARNING: covariance matrix of latent variables is not positive definite; use inspect(fit,"cov.lv") to investigate.

I`m not really familiar with the math behind this. So I`m wondering whether there is a way to fix these problems or is the model just too complex?

I`m looking forward to your responses and comments.

Thanks in advance,
René



> growth1 <- 'i =~ 1*B_2nd_r + 1*B_3rd_r + 1*B_4th_r + 1*B_5th_r
+ s =~ 0*B_2nd_r + 1*B_3rd_r + 2*B_4th_r + 3*B_5th_r
+ ip =~ 1*GF01_06 + 1*GF02_06 + 1*GF03_06 + 1*GF04_06
+ sp =~ 0*GF01_06 + 1*GF02_06 + 2*GF03_06 + 3*GF04_06
+ io =~ 1*O1_r + 1*O2_r + 1*O3_r + 1*O4_r
+ so =~ 0*O1_r + 1*O2_r + 2*O3_r + 3*O4_r
+ i ~ ip + sp + io + so
+ s ~ ip + sp + io + so 
+ '
> fit <- growth (model = growth1, estimator="mlr", data=Recoded)
Warning messages:
1: In lavaan::lavaan(model = growth1, data = Recoded, estimator = "mlr",  :
  lavaan WARNING: some estimated variances are negative
2: In lavaan::lavaan(model = growth1, data = Recoded, estimator = "mlr",  :
  lavaan WARNING: covariance matrix of latent variables is not positive definite; use inspect(fit,"cov.lv") to investigate.
> summary(fit, fit.measures = TRUE)
lavaan (0.5-16) converged normally after 8687 iterations

  Number of observations                           131

  Estimator                                         ML      Robust
  Minimum Function Test Statistic               84.770      77.002
  Degrees of freedom                                51          51
  P-value (Chi-square)                           0.002       0.011
  Scaling correction factor                                  1.101
    for the Yuan-Bentler correction

Model test baseline model:

  Minimum Function Test Statistic             1471.567    1066.447
  Degrees of freedom                                66          66
  P-value                                        0.000       0.000

User model versus baseline model:

  Comparative Fit Index (CFI)                    0.976       0.974
  Tucker-Lewis Index (TLI)                       0.969       0.966

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -7156.235   -7156.235
  Scaling correction factor                                  1.312
    for the MLR correction
  Loglikelihood unrestricted model (H1)      -7113.850   -7113.850
  Scaling correction factor                                  1.192
    for the MLR correction

  Number of free parameters                         39          39
  Akaike (AIC)                               14390.470   14390.470
  Bayesian (BIC)                             14502.603   14502.603
  Sample-size adjusted Bayesian (BIC)        14379.250   14379.250

Root Mean Square Error of Approximation:

  RMSEA                                          0.071       0.062
  90 Percent Confidence Interval          0.043  0.097       0.032  0.088
  P-value RMSEA <= 0.05                          0.100       0.218

Standardized Root Mean Square Residual:

  SRMR                                           0.048       0.048

Parameter estimates:

  Information                                 Observed
  Standard Errors                   Robust.huber.white

                   Estimate  Std.err  Z-value  P(>|z|)
Latent variables:
  i =~
    B_2nd_r           1.000
    B_3rd_r           1.000
    B_4th_r           1.000
    B_5th_r           1.000
  s =~
    B_2nd_r           0.000
    B_3rd_r           1.000
    B_4th_r           2.000
    B_5th_r           3.000
  ip =~
    GF01_06           1.000
    GF02_06           1.000
    GF03_06           1.000
    GF04_06           1.000
  sp =~
    GF01_06           0.000
    GF02_06           1.000
    GF03_06           2.000
    GF04_06           3.000
  io =~
    O1_r              1.000
    O2_r              1.000
    O3_r              1.000
    O4_r              1.000
  so =~
    O1_r              0.000
    O2_r              1.000
    O3_r              2.000
    O4_r              3.000

Regressions:
  i ~
    ip               -3.759    1.724   -2.181    0.029
    sp               34.158   11.077    3.084    0.002
    io               -0.502    1.198   -0.419    0.675
    so              -19.495   10.358   -1.882    0.060
  s ~
    ip                1.283    0.945    1.358    0.174
    sp              -13.057    8.497   -1.537    0.124
    io                0.174    0.503    0.345    0.730
    so                6.702    4.692    1.428    0.153

Covariances:
  ip ~~
    sp               61.629   24.247    2.542    0.011
    io              257.678   91.725    2.809    0.005
    so               -0.485   26.362   -0.018    0.985
  sp ~~
    io               14.547   32.645    0.446    0.656
    so               36.870   10.586    3.483    0.000
  io ~~
    so              -49.448   44.064   -1.122    0.262
  i ~~
    s               618.880  335.534    1.844    0.065

Intercepts:
    B_2nd_r           0.000
    B_3rd_r           0.000
    B_4th_r           0.000
    B_5th_r           0.000
    GF01_06           0.000
    GF02_06           0.000
    GF03_06           0.000
    GF04_06           0.000
    O1_r              0.000
    O2_r              0.000
    O3_r              0.000
    O4_r              0.000
    i               434.183  162.034    2.680    0.007
    s              -134.360  109.335   -1.229    0.219
    ip               67.110    2.620   25.613    0.000
    sp               -4.226    0.940   -4.498    0.000
    io               55.128    3.193   17.264    0.000
    so               -1.434    0.916   -1.565    0.118

Variances:
    B_2nd_r         261.902   97.496
    B_3rd_r         250.842   55.155
    B_4th_r         224.109   49.851
    B_5th_r         189.998   75.283
    GF01_06         452.438   98.061
    GF02_06         154.638   45.688
    GF03_06         237.029   66.348
    GF04_06         321.221   75.863
    O1_r            459.608  110.295
    O2_r            212.102   67.912
    O3_r             89.950   29.050
    O4_r             86.396   54.248
    i             -1070.086 1029.194
    s              -203.109  216.301
    ip              633.878  102.862
    sp               27.450   11.025
    io             1110.082  119.542
    so               69.215   22.549

yrosseel

unread,
Jun 5, 2014, 8:47:01 AM6/5/14
to lav...@googlegroups.com
On 06/03/2014 06:21 PM, René Britschgi wrote:
> Warning messages:
> 1: In lavaan::lavaan(model = growth1, data = Recoded, estimator = "mlr", :
> lavaan WARNING: some estimated variances are negative

This one is serious. You have negative variances, which is (often) a
symptom of model misfit. I would start with a more simple model, and
gradually add more components, so you can see at which point you get the
negative variances.

I also notices that some regression coefficients and (residual)
variances were fairly large. Perhaps you need to consider rescaling your
data, so that most observed variables are more or less on the same
scale. (say, between 0 and 10).

Yves.

René Britschgi

unread,
Jun 17, 2014, 5:42:52 PM6/17/14
to lav...@googlegroups.com
Thank you Yves. 

Yes, maybe it`s better to use factor scores for further analysis. 

Best, 
René
Reply all
Reply to author
Forward
0 new messages