G1 CALCULATION GROUP MZ Correlations DOC A->D model
Calculation NG=6
MATRICES
A Di 2 2 Free
C Di 2 2 Free
E Di 2 2 Free
B Fu 2 2
I Id 2 2 
End Matrices;

Specify B
0 0
7 0

Start .6 all

begin algebra;
X = A*A' ;
Y = C*C' ;
Z = E*E' ;
R =      ( (I@((I-B)~))*( X+Y+Z| X+Y _
                              X+Y| X+Y+Z)* (I@((I-B)~)') ) ;
end algebra;

Option RS
End 

G2 CALCULATION GROUP MZ Correlation matrix A factor
Calculation
MATRICES=Group 1
H Fu 1 1 ! .5
End Matrices;

Matrix H .5

begin algebra;
X = A*A' ;
Y = C*C' ;
Z = E*E' ;
R =      ( (I@((I-B)~)) *( X+Y+Z| h@X+Y _
                               h@X+Y| X+Y+Z)* (I@((I-B)~)') ) ;
end algebra;
Option RS 
End

Correlated liability causal model: inefficient approach; MZ AD data
Data Ni=1 No=1
matrices
i iden 1 1
n full 1 1 ! scalar 2.0
o full 9 1
r full 4 4 =R1 ! correlation matrix A1B1A2B2
t full 1 4 ! thresholds abab
w full 1 4 ! means
z zero 1 1
end matrices;

matrix n 2
matrix o file=smmz.frq

begin algebra ;
e = \sum(o)@ 
       (\mnor(r_w_t_t_(i|i|i|i)) +
        \mnor(r_w_t_t_(i|i|i|z)) +
        \mnor(r_w_t_t_(i|z|i|i)) +
        \mnor(r_w_t_t_(i|z|i|z)) _

        \mnor(r_w_t_t_(i|i|z|i)) +
        \mnor(r_w_t_t_(i|z|z|i)) _

        \mnor(r_w_t_t_(i|i|z|z)) +
        \mnor(r_w_t_t_(i|z|z|z)) _

        \mnor(r_w_t_t_(z|i|i|i)) +
        \mnor(r_w_t_t_(z|i|i|z)) _

        \mnor(r_w_t_t_(z|i|z|i)) _

        \mnor(r_w_t_t_(z|i|z|z)) _

        \mnor(r_w_t_t_(z|z|i|i)) +
        \mnor(r_w_t_t_(z|z|i|z)) _

        \mnor(r_w_t_t_(z|z|z|i)) _

        \mnor(r_w_t_t_(z|z|z|z)) )
;
end algebra ;
compute \sum( (o-e).(o-e)%e ) ;
option user rs
option mxe=simmz.frq
end

Correlated liability causal model: DZ AD data
Data Ni=1 No=1
matrices
i iden 1 1
n full 1 1 =n3  ! scalar 2.0
o full 9 1
r full 4 4 =R2 ! correlation matrix A1B1A2B2
t full 1 4 =t3  ! thresholds abab
w zero 1 4 ! means
z zero 1 1
end matrices;

specify t 10 11 10 11
matrix o file=smdz.frq
bound 0 3 10 11

begin algebra ;
e = \sum(o)@ 
       (\mnor(r_w_t_t_(i|i|i|i)) +
        \mnor(r_w_t_t_(i|i|i|z)) +
        \mnor(r_w_t_t_(i|z|i|i)) +
        \mnor(r_w_t_t_(i|z|i|z)) _

        \mnor(r_w_t_t_(i|i|z|i)) +
        \mnor(r_w_t_t_(i|z|z|i)) _

        \mnor(r_w_t_t_(i|i|z|z)) +
        \mnor(r_w_t_t_(i|z|z|z)) _

        \mnor(r_w_t_t_(z|i|i|i)) +
        \mnor(r_w_t_t_(z|i|i|z)) _

        \mnor(r_w_t_t_(z|i|z|i)) _

        \mnor(r_w_t_t_(z|i|z|z)) _

        \mnor(r_w_t_t_(z|z|i|i)) +
        \mnor(r_w_t_t_(z|z|i|z)) _

        \mnor(r_w_t_t_(z|z|z|i)) _

        \mnor(r_w_t_t_(z|z|z|z)) )
;
end algebra ;
compute \sum( (o-e).(o-e)%e ) ; 
option user 
option mxe=simdz.frq
end

Group 5 Constrain a^2 + c^2 + e^2 =1
Constraint Ni=1
Begin Matrices = Group 1
End Matrices
Constraint \d2v(I) = \d2v(X+Y+Z) ;
End Group

Group 6 - standardize estimates
Data calc
matrices
A Di 2 2 = A1
C Di 2 2 = C1
E Di 2 2 = E1
B Fu 2 2 = B1
I Id 2 2
H Fu 1 1 ! .5
J iden 4 4
begin algebra;
X = A*A' ;
Y = C*C' ;
Z = E*E' ;
K = I@((I-B)~);
L =  \v2d(\sqrt(\d2v((I@((I-B)~))*( X+Y+Z| X+Y _
                              X+Y| X+Y+Z)* (I@((I-B)~)'))));
M = L~*K*L;
R = \d2v(X+Y+Z);
S = ((\d2v(X))%R)_((\d2v(Y))%R)_((\d2v(Z))%R);
end algebra;
compute M;
Labels row S
A_A A_B C_A C_B E_A E_B
labels row L
MZT1Abeta MZT1Bbeta
MZT1Abeta MZT1Bbeta
fix all
option rs mu nd=8 
option nag=10 db=1
end
save corrdoc.mxs
end
