! SCRIPT NAME   : chol.mx  (hm)
! GOAL          : Independent pathway model to determine underlying (ACE) factor structure 
! DATA          : continuous
! INPUT         : raw data
! UNI/BI/MULTI  : multi
! DATA-GROUPS   : MZ DZ
! MEANS MODEL   : grand means
! VARIANCE COVARIANCE MODEL(S)	:
! Full model including three cholesky decompositions for genetic factors, 
! shared environmental factors, and non-shared environmental factors

! Downloading Mx software: http://views.vcu.edu/mx
! Mx script's library: http://www.psy.vu.nl/mxbib
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! Group 1 sets up matrices for variance components
! Group 2 fits model to MZ data
! Group 3 fits model to DZ data
! Group 4 calculates genetic and environmental standardized path coefficients

#NGroups 4
#define nvar 5

G1: Define matrices
 Calculation
 Begin Matrices;
  X lower nvar nvar Free     ! genetic structure
  Y lower nvar nvar Free     ! shared environment structure
  Z lower nvar nvar Free     ! nonshared environment structure
  M full  1 nvar Free        ! grand means 
 End Matrices;
  Start .4 X 1 1 1  X 1 2 1  X 1 3 1  X 1 4 1  X 1 5 1
  Start .5 Z 1 1 1  Z 1 2 2  Z 1 3 3  Z 1 4 4  Z 1 5 5
  Matrix M 8 8 8 8 8
 Begin Algebra;
  A= X*X';                   ! additive genetic variance components
  C= Y*Y';                   ! shared environment variance components
  E= Z*Z';                   ! nonshared environment variance components
 End Algebra;
 Option No_Output
End

G2: MZ twins
#include mri-iq-mz.dat
 Begin Matrices = Group 1;
 Means M | M ; 
 Covariance
  A+C+E | A+C 	_
  A+C	   | A+C+E ;
 Option Rsiduals
End

G3: DZ twins
#include mri-iq-dz.dat
 Begin Matrices= Group 1;
  H full 1 1
 End Matrices;
  Matrix H .5
 Means M | M ;
 Covariance
  A+C+E | H@A+C	_
  H@A+C | A+C+E ;
 Option Rsiduals 
End

G4: Calculate Standardised Solution
 Calculation
 Matrices = Group 1
  I Iden nvar nvar
 End Matrices;
 Begin Algebra;
  R=A+C+E;                  ! total variance
  S=(\sqrt(I.R))~;          ! diagonal matrix of standard deviations
  P=S*X| S*Y| S*Z;          ! standardized estimates for common factors
 End Algebra; 
  Labels Col P a1 a2 a3 a4 a5 c1 c2 c3 c4 c5 e1 e2 e3 e4 e5
  Labels Row P cb gm wm rk cl
 Option NDecimals=4
 Option Multiple Issat
End

Save cholACE.mxs
!drop common environmental Cholesky
 Drop Y 1 1 1 - Y 1 nvar nvar
End

Get cholACE.mxs
!drop genetic Cholesky
 Drop X 1 1 1 - X 1 nvar nvar
End

Get cholACE.mxs
!drop specific environmental covariances
 Drop Z 1 2 1  Z 1 3 1  Z 1 3 2  Z 1 4 1  Z 1 4 2  Z 1 4 3  Z 1 5 1  Z 1 5 2  Z 1 5 3  Z 1 5 4
End
