Multiple imputation questions

106 views
Skip to first unread message

David

unread,
Mar 3, 2021, 7:04:06 PM3/3/21
to lavaan
Hi all, 

I have a couple of questions regarding the use of runMI.  

1.  I am running a very simple factor analysis model and when I run it with cfa.mi, everything works just fine.  However, when I run it with lavaan.mi, I receive the message.

Error in lav_model_estimate(lavmodel = lavmodel, lavpartable = lavpartable,  : 
  lavaan ERROR: initial model-implied matrix (Sigma) is not positive definite;
  check your model and/or starting parameters.

What is the difference between cfa.mi and lavaan.mi (or for that matter, just runMI, which also seems to work well).

2.  I would like to account for non-normality with MLR but when I ask for 'estimator="mlr"' in runMI (cfa.mi) I get the message

Error in if (attr(x, "se") == "robust.huber.white" && attr(x, "information.meat") != : missing value where TRUE/FALSE needed

I presume this means that MLR doesn't work with runMI, but then does this mean that I can't handle non-normality and missing data using multiple imputation?  Do I have to resort to FIML and MLR?

Thanks

David

Mauricio Garnier-Villarreal

unread,
Mar 4, 2021, 8:48:28 AM3/4/21
to lavaan
David

the relation between cfa.mi and lavaan.mi is the same between their parent functions cda and lavaan. cfa is a wrapper of lavaan, with certain defaults for arguments. My guess is that when you ran lavaan.mi you miss to include the arguments that cfa have defaults for

MLR should work with cfa.mi. But from what you are reporting is hard to figure out where the problem is. Please share the full model and cfa.mi call, so we can see the full picture

David

unread,
Mar 10, 2021, 2:23:01 PM3/10/21
to lavaan
Here is the snippet that runs MI.  It runs with ML but not MLR.  Thanks.

PISAmiss_imp <- mice(PISAmiss, m = 20, method="pmm")
mice.imp <- NULL
for(i in 1:20) { mice.imp[[i]] <- complete(PISAmiss_imp, action=i, inc=FALSE)  
}

fitmi <- cfa.mi(PISAmiss.model,estimator="mlr",
              data=mice.imp)
summary(fitmi)
lavTestLRT.mi(fitmi,test="D2",asymptotic=TRUE,pool.robust=TRUE)


Terrence Jorgensen

unread,
Mar 19, 2021, 7:39:31 PM3/19/21
to lavaan
FYI, David contacted me privately, and this was resolved by installing the latest software.

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