negative variance with WLSMV estimator

289 views
Skip to first unread message

Emmanuel W

unread,
Aug 30, 2018, 10:52:20 AM8/30/18
to lavaan
Hi all,

I try to reproduce with my data the CFA of a paper (https://www.ncbi.nlm.nih.gov/pubmed/21925817) on the CES-D 20-item depression scale. The best model is a four-factor model with a single higher-order factor.

When I consider the items as continuous, there doesn't seem to be any problem with the ML estimator:

lavaan 0.6-2 ended normally after 66 iterations

  Optimization method                           NLMINB
  Number of free parameters                         44

  Number of observations                         80104

  Estimator                                         ML
  Model Fit Test Statistic                   32667.392
  Degrees of freedom                               166
  P-value (Chi-square)                           0.000

Model test baseline model:

  Minimum Function Test Statistic           614882.458
  Degrees of freedom                               190
  P-value                                        0.000

User model versus baseline model:

  Comparative Fit Index (CFI)                    0.947
  Tucker-Lewis Index (TLI)                       0.939

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)             -1449575.443
  Loglikelihood unrestricted model (H1)     -1433241.747

  Number of free parameters                         44
  Akaike (AIC)                              2899238.885
  Bayesian (BIC)                            2899647.693
  Sample-size adjusted Bayesian (BIC)       2899507.859

Root Mean Square Error of Approximation:

  RMSEA                                          0.049
  90 Percent Confidence Interval          0.049  0.050
  P-value RMSEA <= 0.05                          0.979

Standardized Root Mean Square Residual:

  SRMR                                           0.029

Parameter Estimates:

  Information                                 Expected
  Information saturated (h1) model          Structured
  Standard Errors                             Standard


But the authors of the paper advise to consider the items as ordered variables and to use the WLSMV estimator. In this case, I get the warning: "some estimated lv variances are negative" with these results:


lavaan 0.6-2 ended normally after 39 iterations

  Optimization method                           NLMINB
  Number of free parameters                         84

  Number of observations                         80104

  Estimator                                       DWLS      Robust
  Model Fit Test Statistic                   17160.188   28082.279
  Degrees of freedom                               166         166
  P-value (Chi-square)                           0.000       0.000
  Scaling correction factor                                  0.612
  Shift parameter                                           24.354
    for simple second-order correction (Mplus variant)

Model test baseline model:

  Minimum Function Test Statistic           3275035.168  1212367.233
  Degrees of freedom                               190         190
  P-value                                        0.000       0.000

User model versus baseline model:

  Comparative Fit Index (CFI)                    0.995       0.977
  Tucker-Lewis Index (TLI)                       0.994       0.974

  Robust Comparative Fit Index (CFI)                            NA
  Robust Tucker-Lewis Index (TLI)                               NA

Root Mean Square Error of Approximation:

  RMSEA                                          0.036       0.046
  90 Percent Confidence Interval          0.035  0.036       0.045  0.046
  P-value RMSEA <= 0.05                          1.000       1.000

  Robust RMSEA                                                  NA
  90 Percent Confidence Interval                                NA     NA

Standardized Root Mean Square Residual:

  SRMR                                           0.036       0.036

Parameter Estimates:

  Information                                 Expected
  Information saturated (h1) model        Unstructured
  Standard Errors                           Robust.sem



The variance of one of my latent factors is indeed negative : -0.014 0.003 -5.355 0.000.

I tried to search in the google group for solutions but I'm a bit lost and don't know if this applies to my case. Can you help me see more clearly?

Thank you very much in advance.

Edward Rigdon

unread,
Aug 31, 2018, 7:27:20 AM8/31/18
to lav...@googlegroups.com
That is probably the residual variance of one of the first order factors. If it bothers you, you could name the parameter and constrain it to be greater than 0. Likely, the impact on fit will be small. Still, that does suggest that there is little difference between this first order factor and the second order factor. Your higher order factor structure may be only just identified with only 3 first order factors. Without that structure, this issue might not exist.
 

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
To post to this group, send email to lav...@googlegroups.com.
Visit this group at https://groups.google.com/group/lavaan.
For more options, visit https://groups.google.com/d/optout.

Emmanuel W

unread,
Sep 26, 2018, 11:08:29 AM9/26/18
to lavaan
Thank you for your answer. I still have some problems.

1) I tried to constrain the variance of my variable "dep" to 0 and the model runs.

2) However, if I try to constrain it to be greater than 0 (with dep~~u*dep and u>0), the variance for "dep" is -0.000...

3) Finally, when I try the option "std.lv=TRUE", I have this message:

Warning messages:
1: In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,  :
  lavaan WARNING:
    Could not compute standard errors! The information matrix could
    not be inverted. This may be a symptom that the model is not
    identified.
2: In lav_test_satorra_bentler(lavobject = NULL, lavsamplestats = lavsamplestats,  :
  lavaan WARNING: could not invert information matrix


Do you have any ideas to explain points 2 and 3?

Terrence Jorgensen

unread,
Sep 28, 2018, 5:49:22 AM9/28/18
to lavaan
Can you post a complete syntax example (perhaps with enough data to reproduce the results), so we have some context?

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

Emmanuel W

unread,
Sep 28, 2018, 7:52:27 AM9/28/18
to lavaan
I create four latent variables from the 20 items of the CES-D (dep, pos, som, int) and a single higher-order factor (depression).

My syntax is :

model5.Morin <-
'dep=~CESD3 + CESD6 + CESD9 + CESD10 + CESD14 + CESD17 + CESD18
pos=~CESD4 + CESD8 + CESD12 + CESD16
som=~CESD1 + CESD2 + CESD5 + CESD7 + CESD11 + CESD13 + CESD20
int=~CESD15 + CESD19

dep~~u*dep
u>0

depression=~dep+pos+som+int'

fit <- cfa(model5.Morin, data = mydata, estimator = "WLSMV",
ordered=c("CESD1","CESD2","CESD3","CESD4","CESD5","CESD6","CESD7","CESD8","CESD9","CESD10","CESD11","CESD12","CESD13","CESD14",
"CESD15","CESD16","CESD17","CESD18","CESD19","CESD20"))

summary(fit, fit.measures=TRUE, standardized=TRUE)

I'm sorry but I can't have the data protected and I can't make it available. I hope you will have an idea anyway.

Terrence Jorgensen

unread,
Oct 11, 2018, 5:23:05 AM10/11/18
to lavaan
It seems problematic that one of your depression indicators is dep(ression), which I would expect to be more strongly related to the higher-order factor (the negative residual variance reflects a standardized loading > 1).  Perhaps this would help:

model5.Morin <- '
pos =~ CESD4 + CESD8 + CESD12 + CESD16
som =~ CESD1 + CESD2 + CESD5 + CESD7 + CESD11 + CESD13 + CESD20

int =~ CESD15 + CESD19

depression =~ CESD3 + CESD6 + CESD9 + CESD10 + CESD14 + CESD17 + CESD18 + pos + som + int
'

Or try a bifactor model with pos, som, and int as secondary factors.
Reply all
Reply to author
Forward
0 new messages