The umx principle (1-minute read)

"Principles keep practice aligned with goals"

This package has one principle: make good modeling easier. We designed umx to be transparent and reproducible, to make basic work easy, and to make complex work manageable, so you can spend more time doing better science.

umx provides a compact set of functions to support four core tasks:

  1. Express theories in SEM models.
  2. Test competing theories.
  3. Maintain a reproducible workflow.
  4. Communicate results effectively.

umx also provides a suite of complete twin models - a complex multi-group task – to aid users.

You can learn more about umx and twin modeling in Bates, Maes, & Neale, (2019). umx: Twin and Path-Based Structural Equation Modeling in R. Twin Res Hum Genet, 22, 27-41. doi:10.1017/thg.2019.2 open access.

Read below on installing umx, then on to the modeling!

umx is easy to learn, but first you need to install it. If If you haven’t already, install umx. Go to R, and type:



That’s it: There is no step 2: You’re ready for your first umx model!

Optional: For bleeding-edge beta testers

The development version of umx lives on github.

Loading libraries from github differs slightly from the procedure you may be used to.

Instead of install.packages(), we’re going to use devtools::install_github()

If you haven’t already, install devtools now


Or just load it:


Installing umx is easy:


On windows you might need

install_github("tbates/umx", args = "--no-multiarch")