While the approach discussed above may be fairly intuitive, the B matrix may become relatively big, therefore increasing the chance
of errors in editing. An alternative approach is to specify the
common factors and residual variances for genetic, shared and specific
environmental factors in separate matrices. One advantage of this
approach is that the model can be easily adapted for a different
number of common factors or observed variables. For example, if we
use a matrix X for the genetic common factor, a
matrix Y for the shared environmental common factor,
a
matrix Z for the specific environmental common
factor and a
diagonal matrix F for the unique
variances, the matrices section in Mx would be
X Full 4 1 Free ! genetic common factor Y Full 4 1 Free ! shared environmental common factor Z Full 4 1 Free ! specific environmental common factor F Diag 4 4 Free ! specifc environmental specificsWe can then pre-calculate the genetic, shared and specific environmental variance components in the algebra section:
A= X*X'; C= Y*Y'; E= Z*Z' +F*F';and these matrices can be used to specify the expected covariance matrices for MZ and DZ twins in a similar fashion as the univariate models. Note that by using a Kronecker product for the genetic variance component in DZ twins (
H@A
) every element of the A matrix is multiplied by one half. One additional feature in Mx
that allows for flexible model specification is the #define
statement. One possible use is to define the number of variables up
front, e.g.
#define nvar 4and use the 'defined' variables in the matrices section:
X Full nvar 1 Free ! genetic common factor Y Full nvar 1 Free ! shared environmental common factor Z Full nvar 1 Free ! specific environmental common factor F Diag nvar nvar Free ! specifc environmental specificsIf we wanted to do an analysis with just three variables, the only change to be made, besides the
NInput_vars
and Select
statements, is the #define
statement.