OpenMx
Published on OpenMx (https://openmx.ssri.psu.edu)

Home > OpenMx 2.11 released!

OpenMx 2.11 released!

Wed, 09/19/2018 - 15:23 — AdminRobK

New Features, Performance Improvements, and Tweaks Since v2.9.6:

  • A new optimizer [1], which uses generalized simulated annealing, has been implemented.
  • There are two new functions, omxAkaikeWeights() and mxModelAverage() [2], for information-theoretic model-averaging and multimodel inference.
  • Two new functions, mxPearsonSelCov() and mxPearsonSelMean() [3], implement the Pearson-Aitken selection formulae. Both functions are usable in MxAlgebras [4].
  • There is a new function, mxComputeLoadMatrix() [5], which constructs an object, to be placed into a custom compute plan, that will load a CSV file directly into the backend.
  • mxSE() [6] is now much faster, made possible by the new mxComputeJacobian() [7], which creates a compute step to calculate a Jacobian matrix.
  • During interactive R sessions, mxTryHard() [8] now by default suppresses most persistent printing to the console; this behavior is set by argument silent.
  • The columns of the "CI details" table (in verbose summary() output) have been reordered, to make the table more readable.
  • OpenMx now reports WLSM and WLSMV fit statistics for models that use the WLS fitfunction.
  • mxStandardizeRAMpaths() [9] now reports elements of the 'M' matrix, re-scaled to standard-deviation units.
  • mxAutoStart() [10] can now be used with diagonally weighted least squares.
  • mxGenerateData() [11] is now compatible with MxModels that depend on objects in other MxModels, in the same container MxModel.
  • There is now an mxOption [12], "Max minutes", which (if positive) sets a maximum allowed backend time elapsed, in minutes (the on-load value of this option is 0, meaning no limit, i.e. Inf).
  • mxMatrix() [13] now partially matches the value of its type argument. For instance, type="Ze" is now equivalent to type="Zero".
  • The Jacobian matrix output by omxManifestModelByParameterJacobian() [14] (e.g., as in mxCheckIdentification() [15]) now has dimnames, which make it easier to read.
  • SLSQP can now use multiple threads to calculate its numeric gradient of the GREML fitfunction [16]. It does so automatically, using as many threads as provided by mxOption [12] "Number of Threads".
  • It is now possible to put a checkpointing step [17] into a custom compute plan.
  • By default, OpenMx now allows the Eigen linear-algebra library to use multiple threads.
  • A value of "none" is now accepted for argument scale to mxExpectationHiddenMarkov() [18] and mxExpectationMixture() [19].
  • MxConstraints [20] that depend upon definition variables now throw a warning at runtime.
  • The output of mxPower() [21] is more detailed.
  • When using mxFitFunctionML() [22] with rowDiagnostics=TRUE, the fitfunction object will be populated at runtime by an additional row-wise diagnostic, namely, the per-row squared Mahalanobis distance.

Bug-fixes Since v2.9.6:

  • The major iteration maximum [12] is now enforced per optimization problem, not per call to mxRun() [23]. This bug often caused the last few confidence limits attempted during a run to all be flagged as failing due to the optimizer reaching status BLUE.
  • The on-load-default value of mxOption [12] "mvnRelEps" has been increased to 0.005 from 0.001, which was judged to be too strict, and slowed down OpenMx too much. As a result, threshold models should now run more quickly, though sometimes the user may need to reduce "mvnRelEps" to get a threshold model to converge.
  • A long-standing bug in mxTryHard() [8] has been repaired. This bug caused the final numeric derivatives to be calculated in a different manner with mxTryHard() versus direct mxRun() [23], for threshold models using the default compute plan. This bug-fix may reduce the frequency of status Red in such cases.
  • mxCompareMatrix() [24] now works correctly.
  • Previously, mxSE() [6] would fail with an error if an R symbol referring to a character string were provided as argument x. A new argument, forceName, can be set to TRUE to force mxSE() to work in such a case.
  • mxBootStrapEvalByName() [25] no longer ignores arguments bq and method.
  • omxGetParameters() [26] now works smoothly with parameter labels in the form 'model.matrix[row,col]'.
  • mxPower() [21] now works smoothly with unlabeled parameters.
  • mxGenerateData() [11] now assumes a mean vector of zero when it is passed an MxModel that does not specify a mean.
  • mxPath() [27] statements that create zero paths no longer throw an error.
  • OpenMx now reports sensible RMSEA confidence intervals for extremely ill-fitting models.
  • AIC and BIC are no longer reported for MxModels fit with WLS [28], as they are not theoretically coherent outside of a maximum-likelihood context. Additionally, the logLik method now returns NA when used on an MxModel with fit units other than '-2lnL'.
  • Using the GREML expectation [29] with the ML fitfunction [22] now, as originally designed, fits the model by ML, not REML. This repairs a regression introduced in v2.6.
  • The Nelder-Mead optimizer [30] now returns status 10 if the initial simplex is infeasible, instead of throwing a fatal error.
  • A bug has been repaired that could cause segfaults when the Nelder-Mead optimizer [30] was using its "GDsearch" heuristic for MxConstraints [20].
  • Per-MxModel option [12] names are now case-insensitive.
  • MxModels returned from mxTryHard() [8] now have the 'infoDefinite' element of their output slot populated appropriately.

Known Issues:

  • There are several known issues relating to redundant equality MxConstraints [31].
  • OpenMx does not consistently report the "active box constraints" diagnostic for substantially equal confidence limits calculated with different optimizers. This issue will be fixed in the next release [32].
  • 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.

Copyright © 2007-2022 The OpenMx Project

Powered by Drupal

Source URL:https://openmx.ssri.psu.edu/node/4413

Links
[1] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxComputeSimAnnealing.html [2] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/MxMMI.html [3] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxPearsonSelCov.html [4] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxAlgebra.html [5] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxComputeLoadMatrix.html [6] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxSE.html [7] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxComputeJacobian.html [8] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxTryHard.html [9] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxStandardizeRAMpaths.html [10] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxAutoStart.html [11] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxGenerateData.html [12] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxOption.html [13] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxMatrix.html [14] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/omxManifestModelByParameterJacobian.html [15] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxCheckIdentification.html [16] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxFitFunctionGREML.html [17] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxComputeCheckpoint.html [18] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxExpectationHiddenMarkov.html [19] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxExpectationMixture.html [20] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxConstraint.html [21] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxPower.html [22] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxFitFunctionML.html [23] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxRun.html [24] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxCompare.html [25] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxBootstrapEval.html [26] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/omxGetParameters.html [27] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxPath.html [28] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxFitFunctionWLS.html [29] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxExpectationGREML.html [30] https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxComputeNelderMead.html [31] https://github.com/OpenMx/OpenMx/issues/99 [32] https://github.com/OpenMx/OpenMx/issues/100