Warning message when estimating growth curve model using multiple imputation

111 views
Skip to first unread message

ginette lafit

unread,
Nov 25, 2021, 10:32:11 AM11/25/21
to lavaan
Hi! I've estimated a growth curve model using imputed data sets 

alliance.model5 <- '
# intercept
i =~ 1*Time1 + 1*Time2 + 1*Time3 + 1*Time4 + 1*Time5
# slope
s =~ 0*Time1 + 1*Time2 + 2*Time3 + 3*Time4 + 4*Time5
# regressions
i ~ PANSSTOT
s ~ PANSSTOT
'
alliance.fit <- growth.mi(alliance.model5, imps, m=50, miPackage = "Amelia", seed = 12345, estimator = "MLM", group = "Group")

The summary seems ok:

> summary(alliance.fit, fit.measures=TRUE)
lavaan.mi object based on 50 imputed data sets. 
See class?lavaan.mi help page for available methods. 

Convergence information:
The model converged on 50 imputed data sets 

Heywood cases detected for data set(s) 2, 5, 6, 7, 9, 11, 16, 17, 23, 24, 25, 34, 35, 39, 43, 48, 50 
These are not necessarily a cause for concern, unless a pooled estimate is also a Heywood case. 

Rubin's (1987) rules were used to pool point and SE estimates across 50 imputed data sets, and to calculate degrees of freedom for each parameter's t test and CI.
Robust corrections are made by pooling the naive chi-squared statistic across 50 imputations for which the model converged, then applying the average (across imputations) scaling factor to that pooled value. 
To instead pool the robust test statistics, set test = "D2" and pool.robust = TRUE. 

Robust corrections are made by pooling the naive chi-squared statistic across 50 imputations for which the model converged, then applying the average (across imputations) scaling factor to that pooled value. 
To instead pool the robust test statistics, set test = "D2" and pool.robust = TRUE. 


Model Test User Model:

  Test statistic                                16.848      17.570
  Degrees of freedom                                26          26
  P-value                                        0.914       0.891
  Scaling correction factor                                  0.959

Model Test Baseline Model:

  Test statistic                               119.224      93.054
  Degrees of freedom                                30          30
  P-value                                        0.000       0.000
  Scaling correction factor                                  1.281

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    1.000       1.000
  Tucker-Lewis Index (TLI)                       1.118       1.154
                                                                  
  Robust Comparative Fit Index (CFI)                         1.000
  Robust Tucker-Lewis Index (TLI)                            1.000

Root Mean Square Error of Approximation:

  RMSEA                                          0.000       0.000
  90 Percent confidence interval - lower         0.000       0.000
  90 Percent confidence interval - upper         0.043       0.000
  P-value RMSEA <= 0.05                          0.960       0.943
                                                                  
  Robust RMSEA                                               0.000
  90 Percent confidence interval - lower                     0.000
  90 Percent confidence interval - upper                     0.051

Standardized Root Mean Square Residual:

  SRMR                                           0.082       0.082

Parameter Estimates:

  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model          Structured


Group 1 [1]:

Latent Variables:
                   Estimate  Std.Err  t-value       df  P(>|t|)
  i =~                                                         
    Time1             1.000                                    
    Time2             1.000                                    
    Time3             1.000                                    
    Time4             1.000                                    
    Time5             1.000                                    
  s =~                                                         
    Time1             0.000                                    
    Time2             1.000                                    
    Time3             2.000                                    
    Time4             3.000                                    
    Time5             4.000                                    

Regressions:
                   Estimate  Std.Err  t-value       df  P(>|t|)
  i ~                                                          
    PANSSTOT         -0.092    0.288   -0.320 1209.867    0.749
  s ~                                                          
    PANSSTOT         -0.046    0.078   -0.593  153.363    0.554

Covariances:
                   Estimate  Std.Err  t-value       df  P(>|t|)
 .i ~~                                                         
   .s                -6.782   21.795   -0.311  169.144    0.756

Intercepts:
                   Estimate  Std.Err  t-value       df  P(>|t|)
   .Time1             0.000                                    
   .Time2             0.000                                    
   .Time3             0.000                                    
   .Time4             0.000                                    
   .Time5             0.000                                    
   .i                60.040   19.247    3.119 1639.168    0.002
   .s                 3.348    4.997    0.670  197.872    0.504

Variances:
                   Estimate  Std.Err  t-value       df  P(>|t|)
   .Time1           181.372  129.880    1.396 2408.097    0.163
   .Time2            65.523   38.462    1.704  174.463    0.090
   .Time3            65.364   34.601    1.889  106.684    0.062
   .Time4            35.129   26.188    1.341  112.181    0.182
   .Time5           112.551   89.014    1.264   74.115    0.210
   .i               223.827  106.528    2.101  291.731    0.036
   .s                 5.426    7.191    0.755  104.035    0.452


Group 2 [0]:

Latent Variables:
                   Estimate  Std.Err  t-value       df  P(>|t|)
  i =~                                                         
    Time1             1.000                                    
    Time2             1.000                                    
    Time3             1.000                                    
    Time4             1.000                                    
    Time5             1.000                                    
  s =~                                                         
    Time1             0.000                                    
    Time2             1.000                                    
    Time3             2.000                                    
    Time4             3.000                                    
    Time5             4.000                                    

Regressions:
                   Estimate  Std.Err  t-value       df  P(>|t|)
  i ~                                                          
    PANSSTOT         -0.026    0.288   -0.089 5045.915    0.929
  s ~                                                          
    PANSSTOT         -0.012    0.067   -0.176  548.388    0.861

Covariances:
                   Estimate  Std.Err  t-value       df  P(>|t|)
 .i ~~                                                         
   .s               -10.679   13.770   -0.776  114.111    0.440

Intercepts:
                   Estimate  Std.Err  t-value       df  P(>|t|)
   .Time1             0.000                                    
   .Time2             0.000                                    
   .Time3             0.000                                    
   .Time4             0.000                                    
   .Time5             0.000                                    
   .i                59.561   18.518    3.216 5680.245    0.001
   .s                 0.855    4.328    0.197  584.850    0.844

Variances:
                   Estimate  Std.Err  t-value       df  P(>|t|)
   .Time1            78.052   35.631    2.191  131.264    0.030
   .Time2            56.301   19.420    2.899  145.010    0.004
   .Time3            44.944   17.541    2.562   79.544    0.012
   .Time4            45.634   18.701    2.440   70.070    0.017
   .Time5           108.994   55.258    1.972   69.025    0.053
   .i               209.235   68.717    3.045  459.628    0.002
   .s                 6.530    4.712    1.386   69.411    0.170


However, I got some warning messages:

Warning messages:
1: In lav_object_post_check(object) :
  lavaan WARNING: some estimated lv variances are negative
2: In sqrt(var.lhs.value * var.rhs.value) : NaNs produced
3: In lav_start_check_cov(lavpartable = lavpartable, start = START) :
  lavaan WARNING: starting values imply NaN for a correlation value;
                  variables involved are: i s [in block 1]

I'm afraid I don't know how to interpret these warnings. Does anyone have an idea of what might be going on?

Many thanks in advance!

Ginette



Terrence Jorgensen

unread,
Nov 26, 2021, 8:28:34 AM11/26/21
to lavaan
Warning messages:
1: In lav_object_post_check(object) :
  lavaan WARNING: some estimated lv variances are negative
2: In sqrt(var.lhs.value * var.rhs.value) : NaNs produced
3: In lav_start_check_cov(lavpartable = lavpartable, start = START) :
  lavaan WARNING: starting values imply NaN for a correlation value;
                  variables involved are: i s [in block 1]

I'm afraid I don't know how to interpret these warnings

2 and 3 follow from the first: you can't calculate a standardized parameter using a negative variance estimate (which is what the first warning is).  As the messages above state, they can occur due to sampling error and might not be a problem.  Your pooled estimated variances are all > 0.

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

Reply all
Reply to author
Forward
0 new messages