Skip to first unread message

Apr 14, 2020, 7:22:20 PM4/14/20

to lavaan

Hello,

I want to conduct a 2-factor CFA with ordinal data(due to nonnormality) and an MLR estimator; however, lavaan apparently does not support the use of MLR with ordinal data---I am wondering when/if that may be available?

I had originally conducted the CFA using the WLSMV estimator; however, forums have suggested the use of the MLR estimator to generate BIC and to compare the fit of 1- and 2-factor models. Does anyone have any suggestions to work around this restriction? How else can I compare these models using best practices? They would not be considered nested models, therefore the chi-square difference test wouldn't work.

Thank you in advance!

Patrycja

Apr 16, 2020, 9:00:22 AM4/16/20

to lavaan

I want to conduct a 2-factor CFA with ordinal data(due to nonnormality)

Nonnormality does not imply ordinality. Do your indicators measured using an ordinal (e.g., Likert) scale with only a few categories? If you have 7 or more categories, you can probably just treat them as continuous and use MLR.

lavaan apparently does not support the use of MLR with ordinal data---I am wondering when/if that may be available?

No one does, MLR assumes the data are continuous. Mplus misleadingly uses the command ESTIMATOR=MLR to trigger marginal maximum likelihood estimation, developed for IRT models. lavaan also has an experimental estimator="MML" option to request that.

Regardless, the probit model implies a normally distributed latent item response underlying each observed ordinal response. There is no getting around that (latent) normality assumption using frequentist estimators like MML or DWLS(MV). Using Bayesian MCMC estimation, you could specify an alternative to the normal latent item responses, such as a skew-*t* distribution that allows skew and kurtosis.

I had originally conducted the CFA using the WLSMV estimator; however, forums have suggested the use of the MLR estimator to generate BIC and to compare the fit of 1- and 2-factor models. Does anyone have any suggestions to work around this restriction? How else can I compare these models using best practices? They would not be considered nested models, therefore the chi-square difference test wouldn't work.

Yes they are. A 1-factor model is equivalent to a 2-factor model in which the 2 factor's correlation is fixed to 1 (easier to specify when identifying the model using std.lv=TRUE). So you can use DWLS and compare those models using lavTestLRT(). You can verify that they are nested using the semTools function net(). That requires **installing the current development version**: devtools::install_github("simsem/semTools/semTools")

`library(semTools)`

myData <- read.table("http://www.statmodel.com/usersguide/chap5/ex5.16.dat")

names(myData) <- c("u1","u2","u3","u4","u5","u6","x1","x2","x3","g")

model1 <- ' f1 =~ u1 + u2 + u3 + u4 + u5 + u6 '

model2 <- '

f1 =~ u1 + u2 + u3

f2 =~ u4 + u5 + u6

'

fit1 <- cfa(model1, data = myData, ordered = paste0("u", 1:6))

fit2 <- cfa(model2, data = myData, ordered = paste0("u", 1:6))

lavTestLRT(fit1, fit2) # compare fit

net(fit1, fit2) # check they are nested

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

Search

Clear search

Close search

Google apps

Main menu