Road map, and Tutorials (let me know what you’d like, or perhaps a book?)
umx
is a package designed to make structural equation modeling easier, from building, to modifying and reporting.
citation("umx")
You should cite: Timothy C. Bates, Michael C. Neale, Hermine H. Maes, (2019). umx: A library for Structural Equation and Twin Modelling in R. Twin Research and Human Genetics, 22, 27-41. DOI:10.1017/thg.2019.2
umx
includes high-level functions for complex models such as multi-group twin models, as well as graphical model output.
Install it from CRAN:
install.packages("umx")
library(umx)
?umx
Most functions have extensive and practical examples (even figures for the twin models): so USE THE HELP :-).
See what is on offer with ‘?umx’. There are online tutorials at tbates.github.io.
umx
stands for “user” OpenMx functions. It provides over 100 functions, but most importantly:
umxRAM
that makes path-based SEM in R straightforward, with umxSummary
and plot
for table and graphical display of your models. It can also interpret basic lavaan if you get a script in that language.umxACE
.These are supported by many low-level functions automating activities such as parameter labels, start values etc., as well as helping with data-wrangling, journal-ready presentation (try umxAPA()
among other tasks.
Some highlights include:
umxRAM()
# Take umxPaths + data data =
run and return a model, along with a plot
and umxSummary
umxPath()
# write paths with human-readable language like var =
, mean =
cov =
, fixedAt=
. Quickly define a variance and mean (‘v.m. =’) and more.umxSummary(model)
# Nice summary table, in markdown or browser. Designed for journal reporting (Χ², p, CFI, TLI, & RMSEA). Optionally show path loadingsplot(model, std=TRUE, digits = 3, ...)
# Graphical model in your browser! or edit in programs like OmniGraffleparameters(m1, "below", .1, pattern="_to_"))
# A powerful assistant to get labels and values from a model (e.g. all ‘to’ params, below .1 in value)residuals(m1, supp=.1)
# Show residual covariances filtered for magnitudeumxModify(model, update = )
# Modify and re-run a model. You can add objects, drop or add paths, including by wildcard label matching), re-name the model, and even return the comparison. All in 1 line umxACE
# Twin ACE modeling with aplomb paths are labeled! Works with plot()
and umxSummary
!umxCP
, umxIP
, umxGxE
, umxCP
, umxGxEbiv
, umxSexLim
umx_set_cores()
umx_set_optimizer()
umx_time(model1, model2)
reports and compares run times in a compact programmable format (also “start” and “stop” a timer)umxHetcor(data, use = "pairwise.complete.obs")
# Compute appropriate pair-wise correlations for mixed data types.?umx
and in any help file!Code and requests welcome via Github. Tell your friends! Publish good science :-)
For thrill-seekers and collaborators only: the bleeding-edge development version is here:
install.packages("devtools")
library("devtools")
install_github("tbates/umx")
library("umx")
?umx