OpenMx 1.1 beta release

mspiegel's picture

The beta release of the OpenMx 1.1 series is available for download. Use the alternate installation command in an R terminal source("http://openmx.psyc.virginia.edu/getNewOpenMx.R"). The new series of OpenMx is the result of nearly 8 months of development and much feedback from the user community.

In our development cycle a beta-release indicates that each new feature has been tested with some type of validation script in our test repository. However we need to broader community to shake out any final bugs before moving to the OpenMx 1.1.0 release. We always recommend verifying the output against the latest stable version of OpenMx before rushing to publication.

The three primary feature enhancements to the 1.1 series are: joint ordinal and continuous integration in full information maximum likelihood, a new arbitrary row-wise full information objective function, and no more annoying conversion of RAM models with raw data into FIML models in the output. The current best example of using joint ordinal and continuous integration is here. The current best example of the MxRowObjective function is demo(FIMLRowObjectiveBivariateCorrelation). Very shortly, we will be updating the user guide with examples of these two features.

Below is the full changelog since the OpenMx 1.0.0 release. We have made numerous small improvements and bug fixes.

Beta Release 999.0.0-1661 (May 20, 2011)
======================================
* turn off jiggling of free parameters with starting values of 0.0 when useOptimizer=FALSE
* allow non-RAM objective functions in RAM model
* change model type names to 'default' and 'RAM'
* no longer explicitly transforming RAM + raw data models into FIML models
* fixed bug in MxMatrix indexing operator

Pre-Release 999.0.0-1609 (April 7, 2011)
========================================
* added argument 'threshnames' to mxFIMLObjective()
* eliminated "initialize" method for MxMatrix objects
* added "omxCreateMatrix" method for MxMatrix objects
* renaming majority of omx* functions to imx* functions. See http://openmx.psyc.virginia.edu/thread/761
* added error checking to mxOption() function
* added "Optimality tolerance" to mxOption() selection
* added 'lbound' and 'ubound' columns to summary() output of free parameters
* added asterisks to the 'lbound' and 'ubound' columns when feasibility tolerance is met
* added "omxNot" function to the set of available mxAlgebra() function
* added "omxSelectRows", "omxSelectCols", and "omxSelectRowsAndCols" as mxAlgebra operators()
* updated interface of mxRowObjective
* in ML objective: expected covariance matrix and observed covariance matrix must have identical dimnames
* in RAM and ML objectives: the observed means vector must have column names
* added "mean" function to the set of available mxAlgebra() functions
* added slots "expCov" and "expMean" to the MxRAMObjective function
* added useOptimizer option to mxRun.
* added error checking in frontend and backend for non-positive-definite observed covariance matrices
* added "omxGreaterThan", "omxLessThan", "omxApproxEquals", "omxAnd", and "omxOr" operators to the set of mxAlgebra() operators
* error checking for model[[1]] or model[[TRUE]]
* error checking in the front-end whether more than 20 ordinal columns are present in a data set
* improved performance in the front-end in mxModel() for adding paths to RAM models
* print name of algebra when operator has too few or too many arguments

Pre-Release 999.0.0-1527 (January 6, 2011)
==========================================
* added mxErrorPool() function and R documentation.
* added Apache license information to all R documentation files.
* new implementation of mxEval().
* new argument 'defvar.row' to mxEval(). See ?mxEval.
* handling definition variables for (I - A) ^ - 1 speedup
* handling square bracket labels for (I - A) ^ - 1 speedup
* added argument 'free' to omxGetParameters. See ?omxGetParameters.
* added argument 'strict' to omxSetParameters. See ?omxSetParameters.
* eliminated warnings for confidence interval optimization codes
* added "..." argument to mxRObjectiveFunction()
* added 'excludeself' argument to mxPath() function
* fix memory leak in RAM objective function
* removed dependency to MBESS library in R documentation
* added more descriptive error message when thresholds are not sorted
* incorporated NaN unsafe matrix-matrix multiplication (dgemm) from R <= 2.11.1
* incorporated NaN unsafe matrix-vector multiplication (dgemv) from R <= 2.11.1
* return NA in mxVersion() if "OpenMx" cannot be found
* fix infinite loop in objective function transformations
* added initialization to load OpenMx on swift workers
* implemented omxParallelCI() to calculate confidence intervals in parallel
* only calculating CIs for upper triangle of symmetric matrices
* cleanup appearance of transient MxMatrix objects in error messages
* fix bug with very large number of omxUntitledName() objects
* added optional argument CPUS=n to "make test" target
* change snowfall interface to use sfClusterApplyLB()
* storing raw data in row-major order, and copying contiguous data rows
* fix bug in mxModel() when using remove = TRUE