You are here

OpenMx 0.5.0

Another step toward the OpenMx 1.0 release. We have finished the changes to sorting raw data in FIML objective calculations. You can see the effects of the performance optimizations on this page. There are several bugfixes with this release, so everyone is recommended to upgrade.


  • calculating cycle length of RAM objective functions
  • bugfix: preserve rownames when converting data.frame columns to numeric values
  • ‘nrow’ and ‘ncol’ arguments now supercede matrix dimensions in mxMatrix()
  • add boolean argument ‘vector’ to mxRAMObjective() for returning the vector of likelihoods
  • added demo(OneFactorModel_LikelihoodVector) as example of ‘vector=TRUE’ in RAM model
  • cbind() and rbind() inside MxAlgebra expressions with all arguments as MxMatrix objects are themselves transformed into MxMatrix objects
  • bugfix with square bracket substitution
  • finishing implementing sorting of raw data in mxFIMLObjective()
  • added ‘RAM Optimization’ and ‘RAM Max Depth’ to model options. See ?mxOption
  • added support for linux x86_64 with gcc 4.1.x


After a year, I am back and trying OpenMx again.
It looks as if you have done wonders over the past year.

I tried the example for 1 factor on the opening page
manifests <- names(demoOneFactor)
latents <- c("G")
factorFit <- mxRun(factorModel)

and it produced values that exactly match what I get when I use my fa function in psych when factoring the covariance matrix. (Which reassures me.)

But then, I was adventurous and tried the example from the documentation page for OneFactorModel_PathCov-1.R
Here I get completely different results. I suspect that the difference is that in the second case, the factor variance is .6467884 and thus all the parameters need to be rescaled. When this is done (by multiplying through by sqrt(.6467884) I get roughly what I think the right answer is.

Yes, I know that factor variances are arbitrary, but wouldn't it be useful to scale it so that the results make sense? E.g., when in doubt scale the factor variances to 1 or at least explain why you are not doing so.

Also, in sem it is possible to get standardized coefficients. Is this possible in OpenMx?

Then, what I am really looking for is documentation on how to do CFA or SEM for multiple groups. I suspect that the twin examples will do it but I am very simple minded and like to have my hand held.

I emphasize this multiple group issue (out of the BG context) because this is the great promise of OpenMx versus just using sem. So, an example of how to do a CFA or SEM for 2 to 3 groups in order to do all the wonderful things (such as invariance across groups) that one needs would be very helpful.

Thanks. I look forward to playing some more over the next few weeks.