You are here

Version 2.3.1 of OpenMx now available

The newest release of OpenMx, version 2.3.1, is now available through CRAN and through our own repository.

Version 2.3.1 introduces several new features:

  • When invoked, mxRun() now displays the number of free parameters in the MxModel before calling the compiled "backend."
  • OpenMx now checks whether the Hessian matrix is convex at the solution, and if it is not, throws a warning (status code 5).
  • Multigroup WLS has been implemented.
  • mxFactorScores() is now compatible with RAM models and multigroup models.
  • The S3 generic coef() is now defined for MxModels, as a wrapper to omxGetParameters().
  • mxCheckIdentification() is now compatible with GREML expectation.

Version 2.3.1 also includes a number of bug-fixes and performance tweaks:

  • Various improvements to mxTryHard() have been added.
  • A few bugs relating to state-space models have been repaired.
  • mxGetExpected()'s compatibility with LISREL models has been improved.
  • SLSQP is now able to distinguish between infeasible start values and starting at the solution.
  • Several serious GREML bugs present in version 2.2.6 have been fixed. In particular, it is now safe to use mxFitFunctionGREML(), and its argument dV.
  • Matrix operations in the GREML backend have been streamlined.
  • Evaluation of GREML analytic derivatives can now be parallelized over multiple CPUs. Note, however, that doing so increases OpenMx's memory demand during those simultaneous evaluations.
  • Some code involved in the construction and modification of MxMatrix objects has been streamlined, providing noticeable speed-ups for very large matrices.
  • The NPSOL "warm start" now works correctly. This feature allows the user to use mxComputeGradientDescent() to provide the optimizer with the upper-triangular Cholesky factor of the Hessian matrix at the start values, which can cut down the number of function evaluations the optimizer needs to minimize the fitfunction.

Finally, one known issue with version 2.3.1 is that the factor-score estimates returned by mxFactorScores(), when using 'ML' or 'WeightedML', are deviations from the latent variable's mean. If the latent variable does not have a mean of zero, then the score estimates must be shifted appropriately in order to be correct.