Mon, 04/23/2012 - 16:33

I've added a way to specify and fit LISREL models in OpenMx. The function is called mxLISRELObjective and it operates very similarly to the mxRAMObjective function. Currently, only matrix specification of LISREL models is possible, but I'm working on path specification.

For now, the LISREL objective is only available if you build from source. I've made some successful tests. I've tried to make model specification flexible and reasonable, providing intelligible error messages when there are problems, but the real test comes from users. With that being said, I'm inviting any current OpenMx users to try the LISREL objective, and post to the forums if you run into any problems. I'd also like to specifically invite LISREL users to try my LISREL objective to see if I've made a faithful implementation that makes sense to people who've used LISREL.

The bad news is that only matrix specification works right now and there are 13 LISREL matrices. The good news is that most of the time you don't have to specify all 13 matrices. Moreover, each matrix usually small and often has a simple structure.

For example, if you don't like the distinction between endogenous and exogenous variables and if you don't have means, then you can make an endogenous only model without means and you only need 4 matrices: LY, BE, PS, and TE. LY is the factor loading matrix; BE is the factor regression matrix and is often a zero matrix; PS is the symmetric factor covariance matrix; TE is the residual error variance matrix and is often diagonal. These matrices are frequently not difficult to construct.

I've made several tests of the LISREL objective. These can be found at the links below.

A latent regression example

http://openmx.psyc.virginia.edu/svn/trunk/models/passing/LISRELFactorReg...

Another latent regressio example using raw data and means

http://openmx.psyc.virginia.edu/svn/trunk/models/passing/LISRELFactorReg...

A test that uses only endogenous variable or only exogenous variables

http://openmx.psyc.virginia.edu/svn/trunk/models/passing/LISRELExoEndoOn...

I've also made a help page which is accessible after OpenMx is installed from source at or after revision 2024. Simply use ?mxLISRELObjective or help(mxLISRELObjective) like any other OpenMx function.

Please, let me know if you run into any bugs so I can fix them as soon as possible.

Thanks!

You'll need to build OpenMx from source to test the LISREL objective function. See http://openmx.psyc.virginia.edu/wiki/howto-build-openmx-source-repository. These changes will not be found in the 1.2 series, but with user testing and feedback they will be introduced in the 1.3 series.