You are here

OpenMx 2.18 released!

We are pleased to announce the official release of OpenMx version 2.18.1. 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 and other non-Mac Unix-likes, all of which come with the proprietary NPSOL optimizer. Alternately, users may install the fully open-source build of the new version from CRAN.

As most of you know, R version 4.0 was released in April of this year. OpenMx 2.18.1 marks the first release for which our NPSOL-enabled package builds will be exclusively compatible with R version 4. CRAN, however, will likely continue building OpenMx for R 3.6 until R 4.1 is released. Mac users should further note that our NPSOL-enabled Mac build of OpenMx 2.18.1 is only compatible with macOS 10.14 or newer.

The most significant change in this new OpenMx release is a change in the on-load default options. Specifically, SLSQP, not CSOLNP, is now the on-load default optimizer. We made this change because we encountered multiple instances where CSOLNP performed very slowly when there were MxConstraints in the MxModel.

New Features and Performance Improvements Since v2.17.2:

  • OpenMx now has built-in suport for count variables. Users can now specify that manifest variables follow a Poisson or negative-binomial distribution, with or without zero-inflation. The implementation achieves reasonable performance provided that the total number of count and ordinal-threshold variables does not exceed 10.
  • omxSetParameters() now defaults to affecting all free parameters in the MxModel. Note that this is a backwards-incompatible change in default behavior.
  • If the user requests a number of threads exceeding environment variable OMP_NUM_THREADS, mxRun() now throws an error. This new behavior is intended to prevent users from carelessly hogging computational resources on shared computing clusters.
  • SLSQP is now able to calculate its gradient elements in parallel when optimizing the WLS fitfunction.
  • WLS chi-square fit statistics are now calculated in the backend, which is faster than calculating them in the frontend.
  • More OpenMx functions now warn if the user has provided an MxModel that was created with a prior version of OpenMx.
  • Method predict.MxModel now exists, but is implemented only for state-space models.

Bug-fixes and Tweaks Since v2.17.2:

  • Previously, there was a bug in mxTryHard*() that caused it to return WLS models with incorrect chi-square statistics. This serious bug has been repaired.
  • In OpenMx v2.11, a bug was introduced that could cause mxTryHard*() to spuriously flag all fit attempts as failures if the model contained MxConstraints that were not satisfied at the start values. This bug has been repaired.
  • We have repaired a bug that could crash R when running certain models that use GREML expectation.
  • We have repaired a bug in OpenMx's interface to SLSQP that would crash R when running a model in which a free parameter had a lower bound smaller than its upper bound.
  • Previously, there was a bug in omxReadGRMBin() that made it practically unusable with argument returnList=FALSE. This bug has been repaired.
  • omxGetNPSOL() now gives directions to Windows users that will work as intended under RStudio.
  • OpenMx now more reliably detects when a definition variable has free=TRUE, and throws an error.
  • mxGenerateData() now behaves as designed with argument use.miss=TRUE and non-missing argument nrowsProportion.
  • Previously, a bug caused OpenMx to choose essentially at random the number of threads to be used for calculating SLSQP's gradient elements in parallel. OpenMx now uses heuristics to choose the number of threads instead.
  • Several OpenMx functions now have more-helpful error messages and improved diagnostics, including mxCheckIdentification(), mxEval(), mxSE(), and finally, mxRun() when analyzing ordinal data.

Known Issues