Copyright © 2007-2024 The OpenMx Project
New Features Since 2.0.1
OpenMx has a number of new features available in version 2.2.x.
Perhaps most significantly, we have a new optimizer: SLSQP - An open source BFGS [1] optimizer from the NLOPT collection [2]. Our experience is that SLSQP performs similarly to NPSOL on unconstrained problems and outperforms it on some constrained problems. SLSQP is our new default optimizer.
As a result, OpenMx is now available on CRAN [3].
Note that CRAN binaries do not include NPSOL and uses only 1 CPU (i.e., CRAN binaries are not compiled with OpenMP enabled). To access NPSOL and parallel execution, continue to install OpenMx binaries from the OpenMx website [4]: These are enabled to use multiple CPUs and include NPSOL.
OpenMx 2.2 includes major new data types and new model building methods:
There are several additional helpful functions:
mxMI()
[9] Modification indicies for any single-group likelihood-based model.mxGenerateData()
[10] Generate data based on a single-group RAM, LISREL, Normal, or State Space model.mxGetExpected()
[11] Get the expected means, covariance, or thresholds from a RAM, LISREL, or Normal model.mxCheckIdentification()
[12] Check the identification of single or multigroup, RAM, LISREL, Normal, or State Space model.omxRMSEA()
[13] Get the RMSEA with confidence interval and test of approximate fit. Also, reported in mxSummary
.mxKalmanScores()
[14] Get the Kalman latent state scores from a state space model. It can also be adapted for non-ordinal factor scores.mxFactorScores()
[15] Estimate latent variable scores from a LISREL factor model via several methods including maximum likelihood and for ordinal data.mxAlgebraFromString()
[16] Construct an mxAlgebra from an R expression provided as a character string.The new version also brings improvements to existing functions:
mxFitFunctionMultigroup()
used to require "modelname.fitfunction"
, : now "modelname"
will work too.mxFitFunctionRow()
[17].mxSummary(verbose=T)
[18].NA
. In this circumstance, the model is not sufficiently identified. Additional bounds on parameters may help.mxExpectationStateSpaceContinuousTime()
[19]mxTryHard()
[20].mxRun()
[21] will return with MxAlgebras recomputed using the first row of data. Previously the MxAlgebra results depending on definition variables were inconsistent.mxComputeEM()
[22] (Expectation-Maximization) and mxComputeNewtonRaphson()
[23] now respect box constraints and soft feasibility constraints.model$compute
after a model is returned by mxRun()
.There are also several known issues with version 2.2.6 (the most recent binary release):
'dV'
to mxFitFunctionGREML()
[24]) until the next binary release, which will contain the necessary bug-fix, and will also be able to use multiple CPUs to calculate the derivatives.Links
[1] https://en.wikipedia.org/wiki/Broyden–Fletcher–Goldfarb–Shanno_algorithm
[2] http://ab-initio.mit.edu/wiki/index.php/NLopt
[3] http://cran.r-project.org/package=OpenMx
[4] https://openmx.ssri.psu.edu/installing-openmx
[5] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxFitFunctionWLS.html
[6] https://github.com/OpenMx/OpenMx/blob/8333d13c4f8b6817e34f2651c049ad273d58a7f0/man/mxFactorScores.Rd#L61-L78
[7] http://cnsgenomics.com/software/gcta/
[8] https://github.com/OpenMx/OpenMx/blob/master/inst/models/nightly/GREML_monophenotype_1GRM_GradDesc.R
[9] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxMI.html
[10] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxGenerateData.html
[11] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxGetExpected.html
[12] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxCheckIdentification.html
[13] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/omxRMSEA.html
[14] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxKalmanScores.html
[15] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxFactorScores.html
[16] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxAlgebraFromString.html
[17] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxFitFunctionRow.html
[18] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/summary-MxModel.html
[19] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxExpectationStateSpaceContinuousTime.html
[20] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxTryHard.html
[21] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxRun.html
[22] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxComputeEM.html
[23] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxComputeNewtonRaphson.html
[24] https://openmx.ssri.psu.edu/docs/OpenMx/2.2.6/_static/Rdoc/mxFitFunctionGREML.html