Current release

The most recently announced stable version of OpenMx is version 2.19.5. Click here to read the release announcement. This can be installed from CRAN in the usual way install.packages("OpenMx")

For the latest, bleeding-edge build for MacOS click here (nb the bleeding-edge build is not always stable and might not pass our test suite). Other versions, including the current release, can be found in the same directory. These travis versions include NPSOL.

For all platforms: to install the OpenMx Team's NPSOL enabled build Click here for instructions.

If you've got questions, ask on our forums, or stack overflow.

If you have a suggestion or bug, post on the issues at github.

Would you like to financially support the OpenMx Project? Go to www.support.vcu.edu, enter a dollar amount into the text box, and click the "CONTINUE" button. On the new page, click the "SEARCH" button, select "All" from the drop-down list, and type "OpenMx" into the search box. Then, click the "NEXT" button to finalize and submit your donation. Donations may be made by credit/debit card or by using the account number of a checking account.

### What is OpenMx?

OpenMx is free and open source software for use with R that allows estimation of a wide variety of advanced multivariate statistical models. OpenMx consists of a library of functions and optimizers that allow you to quickly and flexibly define an SEM model and estimate parameters given observed data.

OpenMx runs on MacOS, Windows, and most varieties of Linux/GNU. This means the same scripts you write in Windows will run in MacOS or Linux.

OpenMx can be used by those who think in terms of path models or by those who prefer to specify models in terms of matrix algebra. OpenMx is extremely powerful, taking full advantage of the R programming environment. This means that complicated models and data sets can be specified and modified using the R language. In order to give a very brief idea of what OpenMx looks like, here are two small demo examples: one from a path modeler's perspective and one from a matrix algebra perspective.

### Path Model Specification

Here is a path diagram for a one factor path model with five indicators. Beside it is an R script using OpenMx path modeling commands to read the data from disk, create the one factor model, fit the model to the observed covariances, and print a summary of the results.

 require(OpenMx) data(demoOneFactor) manifests <- names(demoOneFactor) latents <- c("G") factorModel <- mxModel("One Factor", type="RAM", manifestVars = manifests, latentVars = latents, mxPath(from=latents, to=manifests,values=0.8), mxPath(from=manifests, arrows=2,values=1), mxPath(from=latents, arrows=2, free=FALSE, values=1.0), mxData(cov(demoOneFactor), type="cov", numObs=500)) summary(factorModelFit <- mxRun(factorModel))

 require(OpenMx) data(demoOneFactor) factorModel <- mxModel("One Factor", mxMatrix("Full", 5, 1, values=0.8, free=TRUE, name="A"), mxMatrix("Symm", 1, 1, values=1, free=FALSE, name="L"), mxMatrix("Diag", 5, 5, values=1, free=TRUE, name="U"), mxAlgebra(A %*% L %*% t(A) + U, name="R"), mxExpectationNormal(covariance = "R", dimnames = names(demoOneFactor)), mxFitFunctionML(), mxData(cov(demoOneFactor), type="cov", numObs=500)) summary(factorModelFit <- mxRun(factorModel))