MLR vs MLM estimators

2,733 views
Skip to first unread message

Amonet

unread,
Mar 31, 2018, 2:35:14 PM3/31/18
to lavaan


Hi,

Although I haven't been able to find a source or paper to back it up, it seems like the MLM and MLR estimates produce very similar results (both in terms of standard errors and test statistics). 
I have two questions how fitmeasures() in Lavaan deals with the following. 

Consider the equation: 







where c_t is the Satorra-Bentler scaling parameter, X²_t the chi-squared value of tested model under maximum likelihood estimation (ML) and df_t the degrees of freedom of the tested model. Those with underscore 0 (e.g. c_0) are the values of the null model. 

1)
In https://www.tandfonline.com/doi/abs/10.1080/00273171.2014.933697 the author recommend this kind of correction, that is: X² - c * df, rather than: X² / c - df. I am pretty sure that Lavaan provides the former (i.e. recommended) under 'CFI.robust'  and the latter under 'CFI.scaled' when using fitmeasures(.) and using estimator = 'MLM' in the fitting function (or test = 'satorra-bentler'). Is that correct?

2)
Similar to 1, when using estimator = 'MLR': is for example CFI.robust also the preferred one to use in that it is in line with the recommendations of 1)? As far as I know, the equation (as above) stays the same only the 'c' is computed differently and therefore the Yuan-Bentler test statistic and the Satorra-Bentler test statistics differ. I would like to use Yuan-Bentler one, because it can be computed with missing = 'FIML', but at the same time I would like to use the recommendations of the authors of the article that I linked. I would think, but please correct me if I am wrong, that their advice extends to the Yuan-Bentler statistic. 

3) Would it make sense to use se = 'robust' together with test = 'Yuan-Bentler'? I'm asking because I am not sure if I should be using the SEs of MLM (i.e. se = 'robust') or of MLR (i.e. se = 'robust.huber.white'). 

Thanks in advance. 

Kind regards, 
Amonet





Amonet

unread,
Mar 31, 2018, 3:04:02 PM3/31/18
to lavaan
I came across a presentation given by Yves Rosseel: http://users.ugent.be/~yrosseel/lavaan/utrecht2010.pdf 
With this I have an additional question: does Lavaan use the Mplus way, or the EQS way of computing the MLR and MLM (i.e. the SEs and test statistics). 

Thanks you,

Amonet

Terrence Jorgensen

unread,
Apr 5, 2018, 5:10:24 AM4/5/18
to lavaan
Although I haven't been able to find a source or paper to back it up, it seems like the MLM and MLR estimates produce very similar results (both in terms of standard errors and test statistics). 

Yes, they are asymptotically equivalent.  MLM only works in the case of complete data (called T1-star in the paper below, which is the Satorra-Bentler method), whereas MLR can also work with incomplete data (called T2-star in the paper below, proposed by Yuan and Bentler).


I have two questions how fitmeasures() in lavaan deals with the following. 

Consider the equation: 







where c_t is the Satorra-Bentler scaling parameter, X²_t the chi-squared value of tested model under maximum likelihood estimation (ML) and df_t the degrees of freedom of the tested model. Those with underscore 0 (e.g. c_0) are the values of the null model. 

1)
In https://www.tandfonline.com/doi/abs/10.1080/00273171.2014.933697 the author recommend this kind of correction, that is: X² - c * df, rather than: X² / c - df. I am pretty sure that Lavaan provides the former (i.e. recommended) under 'CFI.robust'  and the latter under 'CFI.scaled' when using fitmeasures(.) and using estimator = 'MLM' in the fitting function (or test = 'satorra-bentler'). Is that correct?

Yes, the Brosseau-Laird & Savalei (2014) approach is labeled "cfi.robust", "tli.robust", and "rmsea.robust", and provides estimates consistent with the expected population values of those quantities.  When available, these are preferred to simply plugging the scaled test statistics into the standard formulas (which have the ".scaled" suffix).  

The scaled test statistics are available using either the Satorra-Bentler method for complete data only (test = 'satorra.bentler' or estimator = 'mlm') or the Yuan-Bentler method for complete or incomplete data (test = 'yuan.bentler' or estimator = 'mlr')

3) Would it make sense to use se = 'robust' together with test = 'Yuan-Bentler'? I'm asking because I am not sure if I should be using the SEs of MLM (i.e. se = 'robust') or of MLR (i.e. se = 'robust.huber.white'). 

As described on the ?lavOptions help page (the "estimator" description), estimator = 'mlr' implies test = 'yuan.bentler' and se = 'robust.huber.white'.  

does Lavaan use the Mplus way, or the EQS way 

The output in the slides seem to imply that he implemented both approaches, so you can pick which one you want using the mimic= option (and compare the default to both options to see which one is the default choice).

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

Amonet

unread,
Apr 8, 2018, 1:09:37 PM4/8/18
to lavaan
Dear Terrence,

Thanks once more for helping me out.
Much appreciated. 

One question though: I meant to ask in the 3rd question, whether or not it would make sense to use test = 'Yuan-Bentler' together with se = 'robust'. If I would use estimator = 'MLR', then I implicitly ask for: test = 'Yuan-Bentler' and se = 'robust.huber.white' (like you pointed out). So, I am not sure if the test = 'Yuan-Bentler' should always be used together with the 'robust.huber.white' standard errors (i.e. MLR) and if not, if it would make much difference and sense to use another SE instead. 

Kind regards,
Amonet.

Terrence Jorgensen

unread,
Apr 12, 2018, 7:15:20 AM4/12/18
to lavaan
whether or not it would make sense to use test = 'Yuan-Bentler' together with se = 'robust'.

I think it is at least more computationally efficient, since the Huber-White information is already being calculated to calculate the robust test statistic.  I'm not sure whether the other robust SEs are available with missing data, but I haven't seen any simulations comparing them.  This might be a good read:

Savalei, V. (2014). Understanding robust corrections in structural equation modeling. Structural Equation Modeling21(1), 149-160.
Reply all
Reply to author
Forward
0 new messages