Wednesday, October 19, 2011

SEM software

I'm not dead! In fact, I have been very alive over the past half a year: moving, finishing my Ph.D and starting a new job. With all that settled, I am determined to start where I left off.

I often get questions about software to do Structural Equation Modeling. There are quite a few packages out there, some more user-friendly or sophisticated than others. Here is an overview of existing packages and my opinion on the pro's and cons of each.

'Old' software:
I was trained to work with LISREL as a student. LISREL still exists, but updates have become sparse over the last decade. It was developed by Karl Joreskog, one of the great pioneers of SEM and Dag Sorbom. Although it hasn't been updated for over 5 years, it is still one of the most widely used software packages. The great thing about LISREL is that it allows flexibility. It can handle categorical data and multilevel-data. The LISREL language has been adopted by other SEM-packages. LISREL requires users to know some matrix algebra, to understand what specific parameters to estimate.

Mx and EQS were until the end of the 1990s the main competitors to LISREL. Mx has been revamped as an R-package (openMx), while EQS is still in use today. I have never worked with EQS myself, but because of the involvement of Peter Bentler in the EQS-project, it has always been cutting-edge when it comes to the handling of categorical data. There seem to be few people using the software, and although being updated now and then, the possibilities in EQS when it comes to mixture and multilevel-models seem limited.

AMOS is still one of my favorites, although since taken over by the evil empire of  SPSS, development has grinded to a standstill. The thing I love about AMOS is its drag-and-drop interface, and is user-friendliness. I use AMOS to teach students the first things about SEM, and it works great. AMOS has no possibility to handle multi-level data or mixture models however, and although it can deal with categorical data, there are other packages that do a better job.

'New' software:
Since 2000 some new software packages have taken over the role of LISREL, Mx and EQS as leading software packages. They are either more user-friendly, are better integrated with standard statistical software, or more sophisticated.

MPLUS is currently the package to beat. It is an extremely sophisticated programme, with frequent large updates. When it comes to modeling possibilities, there is no other package that comes close to MPLUS. It can handle all types of mixture models, and now includes a Bayesian module that opens a whole new world for statistical modelers. Bengt Muthen is the driving force behind Mplus, contributing greatly to the expansion of SEM models beyond psychometrics and sociometrics. I work with Mplus on a daily basis, and together with some colleagues at Utrecht University, we regularly organize meetings, or teach courses in Mplus. See if you want to know more.

Stata (Glamm) and Sas (procalis) have integrated SEM packages into their main statistical packages. I have never worked with these packages before, but from the literature it seems they are capable of doing the basic SEM analysis (factor models, path models) in a good way. Procalis has a good module for doing Latent Class and Latent transition analysis.

Latent Gold is another package especially designed for Latent Class analysis and mixture models, although it can handle simpler types of SEM as well. The power of this software package lies in the flexibility of specifying link functions between observed and latent variables. It is currently the only package that can deal with ordinal latent variables and boasts some intelligent algorithms that make the estimation of mixture models way faster than for example Mplus.

Finally, three packages in R can do SEM. The great benefit of these packages is that they are open source, and allow the user to program functions himself, or to integrate R-scripts with packages prorgrammed by others. OpenMx (mentioned earlier) and Lavaan seem to the two packages that are currently most advanced. I've heard mixed opinions about the sem package in R, so would not opt for that package