#repeat 12
!
! Ascertainment correction, estimating pi
!
G1: Model parameters
 Data Calc NGroups=3
 Begin Matrices;
  H Full 1 1
  Q Full 1 1
  U unit 1 1
  M Stan 2 2 Free
  L Stan 2 2 Free
  W Lower 1 1 
  O Zero 1 1
 End Matrices;

 Matrix H .5
 Matrix Q .25
 Start .6 all
 Bound -.99 .99 M 2 1 L 2 1
 Begin Algebra;
!  A= X*X'; 
!  C= Y*Y';
!  E= Z*Z';
!  D= W*W';
!  L=  A+C+D+E   | H@A+C+Q@D _
!      H@A+C+Q@D | A+C+D+E ;  ! DZ cov matrix
!  M=  A+C+D+E | A+C+D _ 
!      A+C+D   | A+C+D+E ;    ! MZ cov matrix
 End Algebra:
End

G2: MZ twin pairs
 Data Ninput=9
 Labels studyid studyyr zygosity twin1 twin2 asc freq pihat threshold
 Ordinal File=scz_mx01.dat
 Select if studyid = $repeat_number
 Select if zygosity = 1;
 Select twin1 twin2 asc freq pihat threshold ;
 Definition Asc Freq Pihat Threshold ;
 Begin Matrices= Group 1;
  F full 1 1 ! Frequency
  G full 1 4 ! to select ascertainment prob
  P Full 1 1
  T Full 1 1
 End Matrices;

Begin Algebra;
  S= (P) _ (P) _ P+P-P*P ; ! Vector of ascertainment probabilities
  J= (P+P)*\mnor(U_O_T_T_U)-P*P*\mnor(M_O|O_T|T_T|T_U|U);
End Algebra;
 Specify F Freq
 Specify P Pihat
 Specify T threshold
 Matrix G 1 1 1 1
 Specify G asc 0 asc 0

 Covariances M;
 Thresholds T|T ;
 Frequency F ;
#if repeat_number < 4
! pihat is not 1 so weight is needed
 Weight \part(S,G)%J ;
#elseif repeat_number = 9
! pihat is not 1 so weight is needed
 Weight \part(S,G)%J ;
#elseif repeat_number = 7
! population sample, so no weight required
! Weight \part(S,G)%J ;
#elseif repeat_number = 10
! population sample, so no weight required
! Weight \part(S,G)%J ;
#else
! pihat is 1 but -- not sampled
 Weight \part(S,G)%J ;
#endif
 Options RSidual
End

G3: DZ twin pairs
 Data Ninput=9
 Labels studyid studyyr zygosity twin1 twin2 asc freq pihat threshold
 Ordinal File=scz_mx01.dat
 Select if studyid = $repeat_number
 Select if zygosity = 2
 Select twin1 twin2 asc freq pihat threshold ;
 Definition Asc Freq Pihat Threshold ;
 Begin Matrices= Group 1 ;
  F full 1 1     ! Frequency
  G full 1 4 =G2 ! To select ascertainment probability
  P Full 1 1
  T Full 1 1
 End Matrices;
 Specify F Freq
 Specify P Pihat
 Specify T threshold
 Matrix G 1 1 1 1
 Specify G asc 0 asc 0
Begin Algebra;
  S= (P) _ (P) _ P+P-P*P ; ! Vector of ascertainment probabilities
  K= (P+P)*\mnor(U_O_T_T_U)-P*P*\mnor(L_O|O_T|T_T|T_U|U);
End Algebra;
 Covariances L;
 Thresholds T|T ;
 Frequency F ;
#if repeat_number < 4
! pihat is not 1 so weight is needed
 Weight \part(S,G)%K ;
#elseif repeat_number = 9
! pihat is not 1 so weight is needed
 Weight \part(S,G)%K ;
#elseif repeat_number = 10
! population sample, so no weight required (could estimate threshold)
! Weight \part(S,G)%K ;
#elseif repeat_number = 7
! population sample, so no weight required (could estimate threshold)
! Weight \part(S,G)%K ;
#else
! pihat is 1 but -- not sampled
 Weight \part(S,G)%K ;
#endif
! Drop @0.9248 M 1 2 1
! Drop @0.5216  L 1 2 1

 Intervals M 1 2 1 L 1 2 1
 Options RSidual NDecimals=4
End

!Group 4: constrain variance to 1
! Constraint NI=1
! Begin Matrices = Group 1 ;
!  I unit 1 1
! End Matrices;
! Constraint I = A+C+E+D ;
! Option Multiple issat nag=10 db=1
!End
#end repeat
