This code is beta quality: not for publication use. It will be completed by Boulder 2020.
The simplex model decomposes phenotypic variance
into Additive genetic, unique environmental (E) and, optionally, either
common or shared-environment (C) or non-additive genetic effects (D).
In the simplex model, these influences are modeled as a combination of:
Innovations at a given time (ai
ci
and ei
matrices).
Influences transmitted from previous time (at
, ct
, and et
matrices).
Influences specific to a single time (as
, cs
, es
).
These combine to explain the causes of variance in the phenotype (see Figure).
Simplex path diagram:
Data Input
Currently, the umxSimplex function accepts only raw data.
Ordinal Data
In an important capability, the model transparently handles ordinal (binary or multi-level
ordered factor data) inputs, and can handle mixtures of continuous, binary, and ordinal
data in any combination.
Additional features
The umxSimplex
function supports varying the DZ genetic association (defaulting to .5)
to allow exploring assortative mating effects, as well as varying the DZ “C” factor
from 1 (the default for modeling family-level effects shared 100% by twins in a pair),
to .25 to model dominance effects.
Matrices and Labels in the simplex model
A good way to see which matrices are used in umxSummary is to run an example model and plot it.
The loadings specific to each time point are contained on the diagonals of matrices
as
, cs
, and es
. So labels relevant to modifying these are of the form "as_r1c1", "as_r2c2" etc.
All the shared matrices are in the model "top". So to see the 'as' values, you can simply execute:
m1$top$as$values
The transmitted loadings are in matrices at
, ct
, et
.
The innovations are in the matrix ai
, ci
, and ei
.
Less commonly-modified matrices are the mean matrix expMean
.
This has 1 row, and the columns are laid out for each variable for
twin 1, followed by each variable for twin 2.
Thus, in a model where the means for twin 1 and twin 2 had been equated
(set = to T1), you could make them independent again with this script:
m1$top$expMean$labels[1,4:6] = c("expMean_r1c4", "expMean_r1c5", "expMean_r1c6")