Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Cameron McIntosh <cnm100@hotmail.com> |

To |
STATA LIST <statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: SEM with categorical variables |

Date |
Fri, 31 Aug 2012 19:12:18 -0400 |

I have just stumbled across it, which is pretty hard on Statalist with all the traffic! :) Mplus defaults for CFA/SEM with categorical indicators depend on whether you have covariates in the model. If you don't, the polychoric (and possibly tetrachoric, polyserial, Pearson, etc., if your variables are mixed-mode) matrix is analyzed using WLSMV (weighted least squares with mean- and variance-adjusted chi-square, a.k.a. robust weighted least squares), which is based on ADF/WLS estimation but does not require an impractically large sample size for trustworthy estimation. If you do have covariates, then the indicators are first modeled using probit and other appropriate regressions (depending on the nature of the outcome variable) in order to generate thresholds/intercepts, coefficients, and residual correlations (all from the regression of indicators on covariates), all of which then become the fodder for WLMSV, as well as the asymptotic covariance matrix of the regression esti! mates. The advantage of the latter approach is that it allows for normality of y* (i.e., the continuous latent response variables underlying the ordinal categories) conditional on the covariates. The procedures for getting test statistics and standard errors are somewhat similar to Satorra-Bentler scaling. More details are in and the references therein: Flora, D.B. & Curran P.J. (2004). An empirical evaluation of alternative methods of estimation for confirmatory factor analysis with ordinal data. Psychological Methods, 9(4), 466-491. http://www.statmodel.com/download/floracurran.pdf Muthén, B., du Toit, S.H.C., & Spisic, D. (November 18, 1997). Robust inference using weighted least squares and quadratic estimating equations in latent variable modeling with categorical and continuous outcomes. Unpublished technical report. http://www.gseis.ucla.edu/faculty/muthen/articles/Article_075.pdf Beauducel, A., & Herzberg, P.Y. (2006). On the Performance of Maximum Likelihood Versus Means and Variance Adjusted Weighted Least Squares Estimation in CFA. Structural Equation Modeling, 13(2), 186-203. Forero, C.G., Maydeu-Olivares, A., & Gallardo-Pujol, D. (2009). Factor Analysis with Ordinal Indicators: A Monte Carlo Study Comparing DWLS and ULS Estimation. Structural Equation Modeling, 16(4), 625-641. http://www.ub.edu/gdne/amaydeusp_archivos/uls%20vs%20dwls%20sem09.pdf HTH, Cam > Date: Fri, 31 Aug 2012 10:49:19 -0500 > Subject: Re: st: SEM with categorical variables > From: skolenik@gmail.com > To: statalist@hsphsun2.harvard.edu > > -polychoric- recognizes continuous variables (I think I used a cut-off > of 10 or more values; I don't remember if I hard-coded it or whether > you can change that via an option), and computes Pearson correlations > for them. Most fit indices are a function of a few likelihoods (the > saturated, fitted and independence models), and hence of one another, > except for the RMSEA and a couple of others. Stata does not offer much > in terms of the weighted least squares in -sem-, except for ADF... > which is what Mplus may call weighted least squares -- if Cam McIntosh > would stumble upon this thread, he may be able to tell what their > defaults are, and what the p-value corrections are (Satorra-Bentler?) > > On Fri, Aug 31, 2012 at 5:23 AM, Duru <duru80@gmail.com> wrote: > > Thanks for the comments, and this code works well. But, when I feed > > that correlation matrix into SEM in Stata it does not take into > > account that the data is ordinal while calculating fit indices. I > > don't know if this is really a problem, but Mplus' black box procedure > > uses weighted least squares and probit regressions while estimating > > the model and they mention that they make adjustments to obtain a > > correct p-value etc. > > > > Another thing is that my model will also include continuous predictors > > then I need to calculate those correlations separately and combine it > > with the polychoric correlation matrix which seems to require some > > craftiness -as yours- with macros. > > > > Best, > > > > Duru > > > > > > On Tue, Aug 28, 2012 at 7:37 PM, Stas Kolenikov <skolenik@gmail.com> wrote: > >> > >> So do you know exactly what Mplus does? Having the software decide for > >> you what to do is good for exploratory phases, but for real research, > >> you have to know what you are doing, and make sure the suggested > >> default is appropriate for your analysis. > >> > >> Incidentally, I've been doing some polychoric-to-sem work earlier > >> yesterday. Here's the outline: > >> > >> local thevars <varlist of the variables of interest> > >> polychoric `thevars' > >> mat polychR = r(R) > >> forvalues i=1/`: word count `thevars' ' { > >> forvalues j=1/`i' { > >> local setcor `setcor' `=polychR[`i',`j']' > >> } > >> if `i' < `: word count `thevars' ' local setcor `setcor' \ > >> } > >> local N = _N > >> clear > >> ssd init `thevars' > >> ssd set obs `N' > >> ssd set cor `setcor' > >> sem ( your model structure comes here) > >> > >> Not terribly elegant, but that's way better than nothing. (Don't > >> assume this will work as a black box; you would be much better off > >> understanding what each line does.) > >> > >> On Tue, Aug 28, 2012 at 3:41 AM, Duru <duru80@gmail.com> wrote: > >> > Dear all, > >> > I am trying to estimate a structural equations model with Stata 12. I > >> > have ordinal items for my latent dependent variable and categorical > >> > manifest independent variables. > >> > I am not clear on how to handle this. I have read somewhere on the web > >> > that estimating polychoric correlations and feeding them into SEM > >> > could be an option or specifying another estimation method (than ML) > >> > would suffice? In Mplus I just need to specify those variables as > >> > categorical and it chooses the proper method by default. > >> > > >> > Many thanks, > >> > > >> > Duru > >> > * > >> > * For searches and help try: > >> > * http://www.stata.com/help.cgi?search > >> > * http://www.stata.com/support/statalist/faq > >> > * http://www.ats.ucla.edu/stat/stata/ > >> > >> > >> > >> -- > >> -- Stas Kolenikov :: http://stas.kolenikov.name > >> -- Senior Survey Statistician, Abt SRBI :: work email kolenikovs at > >> srbi dot com > >> -- Opinions stated in this email are mine only, and do not reflect the > >> position of my employer > >> * > >> * For searches and help try: > >> * http://www.stata.com/help.cgi?search > >> * http://www.stata.com/support/statalist/faq > >> * http://www.ats.ucla.edu/stat/stata/ > > * > > * For searches and help try: > > * http://www.stata.com/help.cgi?search > > * http://www.stata.com/support/statalist/faq > > * http://www.ats.ucla.edu/stat/stata/ > > > > -- > -- Stas Kolenikov :: http://stas.kolenikov.name > -- Senior Survey Statistician, Abt SRBI :: work email kolenikovs at > srbi dot com > -- Opinions stated in this email are mine only, and do not reflect the > position of my employer > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**st: SEM with categorical variables***From:*Duru <duru80@gmail.com>

**Re: st: SEM with categorical variables***From:*Stas Kolenikov <skolenik@gmail.com>

**Re: st: SEM with categorical variables***From:*Duru <duru80@gmail.com>

**Re: st: SEM with categorical variables***From:*Stas Kolenikov <skolenik@gmail.com>

- Prev by Date:
**Re: st: identifying most recent occurrence (line) where value of variable==X in stata** - Next by Date:
**Re: st: RE: Mean test in a Likert Scale** - Previous by thread:
**Re: st: SEM with categorical variables** - Next by thread:
**st: xml_tab, then xmluse, not working** - Index(es):