You are here

Version 2.8.3 of OpenMx officially released

We are pleased to announce the official release of OpenMx version 2.8.3. Click here for instructions on how to install the package from our repository. As usual, our repository has package binaries for Windows and MacOS, and source tarballs for Linux/GNU, all of which come with the NPSOL optimizer.

Users of Windows and Linux/GNU can also install OpenMx v2.8.3 from CRAN. However, CRAN has not been able to build functioning OpenMx binaries for MacOS since OpenMx v2.7.10. MacOS users can still obtain version 2.8.3 via CRAN, but the Mac onto which you are installing the package must be configured to build it from source. Again, precompiled MacOS binaries of version 2.8.3 are available through our own repository. MacOS users can also install an NPSOL-enabled "bleeding-edge" build of the package from here (though users should be aware that the bleeding-edge build is not a stable release, and has not necessarily even passed our test suite).

New features and bug-fixes since OpenMx v2.7.18 include the following:

  • R expressions passed to mxEval() can now use scalar multiplication and division, and scalar-powering of matrices.
  • Some aspects of OpenMx's internal behavior when analyzing ordinal data have been changed to improve the quality of optimization solutions. We expect these changes to enable OpenMx to reach solutions with smaller fit values and fewer status Reds than before.
  • Previously, there was a bug in mxBootstrap() that caused the bootstrap replications to report incorrect optimizer status codes in certain cases, including the common case of using checkHess=FALSE with an MxModel having a default compute plan. This bug, which was the cause of several issues with mxBootstrap(), has been repaired (except in the case described in the first known issue below).
  • Parametric bootstrapping (including the bootstrap likelihood-ratio test) is now compatible with multigroup models.
  • mxCompare(), mxCompareMatrix(), and the 'confint' and 'vcov' methods for MxModels all now throw an error if used with an MxModel that has never been run, and throw a warning if used with an MxModel that has been modified since it was run. Because some scripts that previously ran may now throw fatal errors instead, technically this is a backwards-incompatible change.
  • omxParallelCI() and omxRunCI() now accept a new argument, optimizer, to specify which of the gradient-descent optimizers is to be used to calculate confidence limits.
  • When all of an MxModel's variables are ordinal with complete data, it is now possible to request a saturated multinomial model from mxRefModels().
  • A bug that interfered with requesting model-expected thresholds from a multigroup model via mxGetExpected() has been repaired.
  • Upon loading, OpenMx now prints hints on how to set the number of processor threads it will use (provided that it was compiled with multithread support).

    There are also a few known issues with version 2.8.3:

  • mxBootstrap() replications can still incorrectly report their optimizer status codes when the MxModel has a custom compute plan that uses the Nelder-Mead optimizer. This bug will be repaired in the the next release.
  • Using mxBootstrap() with a large number of replications can sometimes cause protect-stack errors. This issue will be fixed in the next release. Until then, a simple workaround is to accumulate replications from a few separate mxBootstrap() runs.