- A new optimizer, which uses generalized simulated annealing, has been implemented.
- There are two new functions,
`omxAkaikeWeights()`

and`mxModelAverage()`

, for information-theoretic model-averaging and multimodel inference. - Two new functions,
`mxPearsonSelCov()`

and`mxPearsonSelMean()`

, implement the Pearson-Aitken selection formulae. Both functions are usable in MxAlgebras. - There is a new function,
`mxComputeLoadMatrix()`

, which constructs an object, to be placed into a custom compute plan, that will load a CSV file directly into the backend. `mxSE()`

is now much faster, made possible by the new`mxComputeJacobian()`

, which creates a compute step to calculate a Jacobian matrix.- During interactive R sessions,
`mxTryHard()`

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()`

now reports elements of the 'M' matrix, re-scaled to standard-deviation units.`mxAutoStart()`

can now be used with diagonally weighted least squares.`mxGenerateData()`

is now compatible with MxModels that depend on objects in other MxModels, in the same container MxModel.- There is now an mxOption, "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()`

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()`

(e.g., as in`mxCheckIdentification()`

) now has dimnames, which make it easier to read. - SLSQP can now use multiple threads to calculate its numeric gradient of the GREML fitfunction. It does so automatically, using as many threads as provided by mxOption "Number of Threads".
- It is now possible to put a checkpointing step 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()`

and`mxExpectationMixture()`

. - MxConstraints that depend upon definition variables now throw a warning at runtime.
- The output of
`mxPower()`

is more detailed. - When using
`mxFitFunctionML()`

with`rowDiagnostics=TRUE`

, the fitfunction object will be populated at runtime by an additional row-wise diagnostic, namely, the per-row squared Mahalanobis distance.

- The major iteration maximum is now enforced per optimization problem, not per call to
`mxRun()`

. 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 "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()`

has been repaired. This bug caused the final numeric derivatives to be calculated in a different manner with`mxTryHard()`

versus direct`mxRun()`

, for threshold models using the default compute plan. This bug-fix may reduce the frequency of status Red in such cases. `mxCompareMatrix()`

now works correctly.- Previously,
`mxSE()`

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()`

no longer ignores arguments`bq`

and`method`

.`omxGetParameters()`

now works smoothly with parameter labels in the form 'model.matrix[row,col]'.`mxPower()`

now works smoothly with unlabeled parameters.`mxGenerateData()`

now assumes a mean vector of zero when it is passed an MxModel that does not specify a mean.`mxPath()`

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, 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 with the ML fitfunction now, as originally designed, fits the model by ML, not REML. This repairs a regression introduced in v2.6.
- The Nelder-Mead optimizer 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 was using its "GDsearch" heuristic for MxConstraints.
- Per-MxModel option names are now case-insensitive.
- MxModels returned from
`mxTryHard()`

now have the 'infoDefinite' element of their output slot populated appropriately.

- There are several known issues relating to redundant equality MxConstraints.
- 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.
- 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.

- Log in or register to post comments
- Printer-friendly version