Paradigm(s) | Structural Equation Modeling |
---|---|
Appeared in | 2010[1] |
Developer | The OpenMx Development Core Team |
Stable release | 1.0.7 (July 7, 2011 | )
Preview release | Through Subversion |
Typing discipline | Dynamic |
Influenced by | Mx, R |
OS | Cross-platform |
License | GNU General Public License |
Website | openmx.psyc.virginia.edu |
OpenMx is an open source program for extended structural equation modeling. It runs as a package under R. Cross platform, it runs under Linux, Mac OS and Windows.[2]
OpenMx consists of an R library of functions and optimizers supporting the rapid and flexible implementation and estimation of SEM models. Models can be estimated based on covariance matrices and raw data. Multigroup models are implemented readily, and models can handle both continuous and ordinal data.
Models can be written in either a "pathic" or "matrix" form. For those who think in terms of path models, paths are specified using mxPath() to describe paths. For models that are better suited to description in terms of matrix algebra, this is done using similar functional extensions in the R environment, for instance mxMatrix and mxAlgebra.
The program has parallel processing built-in via links to parallel environments in R, and in general takes advantage of the R programming environment.
Contents |
Below is the code to implement, run, and print a summary for estimating a one-factor path model with five indicators.
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), mxPath(from=manifests, arrows=2), mxPath(from=latents, arrows=2, free=FALSE, values=1.0), mxData(cov(demoOneFactor), type="cov", numObs=500)) summary(mxRun(factorModel))
Below is the code to implement, run, and print a summary for estimating a one-factor path model with five indicators.
data(demoOneFactor) factorModel <- mxModel("One Factor", mxMatrix("Full", nrow=5, ncol=1, values=0.2, free=TRUE, name="A"), mxMatrix("Symm", nrow=1, ncol=1, values=1, free=FALSE, name="L"), mxMatrix("Diag", nrow=5, ncol=5, values=1, free=TRUE, name="U"), mxAlgebra(A %*% L %*% t(A) + U, name="R"), mxMLObjective("R", dimnames = names(demoOneFactor)), mxData(cov(demoOneFactor), type="cov", numObs=500)) summary(mxRun(factorModel))