OpenMx 2.12 released!

We are pleased to announce the official release of OpenMx version 2.12.2. 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.

The major highlight of this release is a new implementation of OpenMx's weighted-least-squares (WLS) feature. First, calculation of the summary statistics and weight matrix, which was formerly done in interpreted R (in the "frontend"), is now done in compiled C++ (in the "backend"). As a result, WLS analyses using the new implementation run about 10 times more quickly(!), and there is some evidence that they may also be more numerically accurate. In the next release, the summary statistics and weight matrix will also be calculated in parallel. Second, WLS is now compatible with some OpenMx features with which it was previously incompatible, such as non-parametric bootstrapping. Third, the WLS fitfunction is now compatible with exogenous covariates. That is, you can now use WLS if your model contains definition variables, as long as those definition variables are only involved in the model for the endogenous variables' means. To use the new WLS implementation, use mxFitFunctionWLS() (of course), use mxData() instead of mxDataWLS(), and specify your choice of full WLS, diagonally weighted least squares (DWLS), or unweighted least squares (ULS) via argument type to mxFitFunctionWLS(). The previously existing implementation of WLS will be retained for the sake of backward compatibility, and therefore existing scripts that use WLS will continue to work, but the old implementation is no longer recommended.

Other New Features, Performance Improvements, and Tweaks Since v2.11:

  • OpenMx now gives a more-helpful error message when it is asked to calculate a confidence interval for a non-existent matrix element.
  • mxThreshold() now has a default value for its values argument, namely, mxNormalQuantiles(nThresh).

Bug-fixes Since v2.11:

  • Bugs involving definition variables in multilevel models have been repaired.
  • Version 2.11.5 introduced a bug that prevented use of mxCheckIdentification() with ordinal data. That bug has been repaired.
  • Previously, mxRefModels() would always constrain ordinal-variable thresholds equal across groups in multigroup models. Now, it has an argument, equateThresholds, to allow the user to decide whether or not to impose that constraint.
  • Numerous grammatical and typographical errors in OpenMx's manual pages have been corrected.
  • Previously, there was a bug in mxTryHard() et al. that would cause a fatal error if the fitfunction were non-finite at the initial start values. That bug has been repaired.

Known Issues: