Function lavTestLRT() for Model Comparison

513 views
Skip to first unread message

Isa

unread,
Jun 12, 2018, 6:13:55 AM6/12/18
to lavaan

Dear all,

 

I am currently working on an CFA analysis and I would like to compare two 1-factor-models where the second involvers an additional residual correlation among two measurement variables.

All measurement variables are categorical, therefore, I am using the WLSMV estimator.  Therefore, I chose the lavTestLRT() function to compare the two models.

 

Here the Code for the two models:

mod1 <- “

F =~ ind1 + ind2 + ind3 + ind4 + ind5 + ind6

"

fit1 <- cfa(mod1,  estimator = "WLSMV", data = data)

 

mod2 <- “

F =~ ind1 + ind2 + ind3 + ind4 + ind5 + ind6

ind1 ~~ ind2

"

fit2 <- cfa(mod2,  estimator = "WLSMV", data = data)

 

My question:  Is it correct to use the function lavTestLRT(fit1, fit2, method="Satorra.Bentler.2010") to compare the models?
In a literature search I found that the two models need to be nested at the parameter level to use the lavTestLRT() function. Unfortunately, I was not able to figure out what exactly this means in my case.

I would be very grateful for clarifications.

Have a nice day and best wishes,

jsa

Terrence Jorgensen

unread,
Jun 13, 2018, 10:13:59 AM6/13/18
to lavaan
Is it correct to use the function lavTestLRT(fit1, fit2, method="Satorra.Bentler.2010") to compare the models?
No, the 2 Satorra-Bentler options are only for mean-adjusted test statistics (e.g., using estimator = "MLM" or "WLSM").  For mean- and variance-adjusted statistics (e.g., the default estimator = "WLSMV" for models with categorical outcomes) requires the method = "satorra.2000" option.
In a literature search I found that the two models need to be nested at the parameter level to use the lavTestLRT() function.
Not necessarily.  The argument A.method = "exact" requires that, but the (now) default option is A.method = "delta", which does not require strict parametric nesting, only that the models are nested in the general sense of representing covariance structures.  Totally clear now, right?  :-)  This article explains the difference.


Unfortunately, I was not able to figure out what exactly this means in my case.
In your case, the models fix and estimate the same exact parameters, except that one model additionally estimates the residual covariance.  So they are nested in the strict parametric sense, as well as the general covariance sense.

Of course, since the models only differ by 1 parameter, you only need to look at the z statistic for the estimated residual covariance to test whether it is significant.  In large samples, that will yield an identical test to the model comparison, but the z statistic (a "Wald test") is more stable a smaller sample sizes than the LRT.

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

Isa

unread,
Jun 26, 2018, 11:33:57 AM6/26/18
to lavaan

Dear Terence

Thank you very much for your helpful responses!
Would therefore the function lavTestLRT with the method specification "satorra.2000" also be

appropriate in a Group Invariance test of a CFA model? (configural model vs. weak model, weak model vs. strong model, etc. )?


Best wishes, Jsabel


Terrence Jorgensen

unread,
Jun 29, 2018, 11:17:41 AM6/29/18
to lavaan
Would therefore the function lavTestLRT with the method specification "satorra.2000" also be

appropriate in a Group Invariance test of a CFA model?

Yes, if they were fit with DWLS to categorical indicators.  If so, lavTestLRT() will automatically detect that, and choose the Satorra (2000) adjustment.
Reply all
Reply to author
Forward
0 new messages