CFI changes with " test - mean.var.adjusted " included (CFA with categorical data, estimator = "WLSMV")

24 views
Skip to first unread message

Christopher Runyon

unread,
Jun 17, 2020, 10:54:21 AM6/17/20
to lavaan
Hi Group,

I have a 2-factor model with 8 items loading onto each factor, and the response scale ranges from 0-3 for each item. According to what I know, I should be using estimator = "WLSMV" and test = "mean.var.adjusted" due to the fact that my data is categorical (e.g., Finney and DiStefano, 2006).

When using the above syntax, the CFI is much lower than the TLI:

User Model versus Baseline Model:

 

  Comparative Fit Index (CFI)                    0.970       0.552

  Tucker-Lewis Index (TLI)                       0.965       0.915


When I omit test = "mean.var.adjusted", the CFI / TLI values are closer to one another, and the CFI is higher than the TLI (as I thought should always be the case):

User Model versus Baseline Model:

 

  Comparative Fit Index (CFI)                    0.970       0.819

  Tucker-Lewis Index (TLI)                       0.965       0.789


Can someone help me with what's happening here? Is it due to the scaling correction factor, shift parameter, or something else? Which test statistic should I use / report? Or, more broadly, please correct me if I'm using the wrong estimator and/or test for my categorical data. 

I noticed the following "bug" reported in Version 0.5-21, so it may be related to that:

"Bugs/glitches discovered after the release:
  • the (new) robust CFI/TLI/RMSEA values as printed in the summary() output of version 0.5-21 (only) are wrong if (and only if) the test statistic is “mean.var.adjusted” or “scaled.shifted” (the latter is used when estimator = “WLSMV”, the default estimator in the categorical case)"

Thank you all for your help.

Edward Rigdon

unread,
Jun 17, 2020, 3:03:47 PM6/17/20
to lav...@googlegroups.com
I can only answer part of this. TLI is not normed, so it can vary outside the 0-1 range. Thus, TLI can be larger than CFI, which *is* confined to 0-1. I believe TLI will be > 1 whenever chi-square < its degrees of freedom.

In other circumstances, strange behaviour of fit indices is tied to changes in how the mean vector is treated in the baseline model. I wonder if that is the case here. Perhaps you can ask for more information about the baseline model that lavaan is running?

--
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 view this discussion on the web visit https://groups.google.com/d/msgid/lavaan/69aab95c-5cf0-4676-afff-d516860071e0o%40googlegroups.com.

Terrence Jorgensen

unread,
Jun 18, 2020, 4:40:19 AM6/18/20
to lavaan
According to what I know, I should be using estimator = "WLSMV" and test = "mean.var.adjusted" due to the fact that my data is categorical (e.g., Finney and DiStefano, 2006).

That's a dated reference, published around the time that Mplus implemented a more efficient robust test ("scaled.shifted"), which has been their default for years, as well as lavaan's.
 
I noticed the following "bug" reported in Version 0.5-21, so it may be related to that:

"Bugs/glitches discovered after the release:
  • the (new) robust CFI/TLI/RMSEA values as printed in the summary() output of version 0.5-21 (only) are wrong if (and only if) the test statistic is “mean.var.adjusted” or “scaled.shifted” (the latter is used when estimator = “WLSMV”, the default estimator in the categorical case)"

No, it has nothing to do with that.  

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

 

Christopher Runyon

unread,
Jun 18, 2020, 10:24:35 AM6/18/20
to lavaan
Great! Thank you so much for your help. I'm glad to know that this was just a user error on my end, and I will update my references and analyses to use the "scaled.shifted" test.
Reply all
Reply to author
Forward
0 new messages