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 itsvalues
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:
- There are several known issues relating to redundant equality MxConstraints.
- CSOLNP can still slow to a crawl on some constrained optimization problems. This issue was believed to have been resolved in v2.9.6, but apparently it was not.