data initial; infile "e:\anti\antiread.dat"; input anti1 anti2 anti3 anti4 read1 read2 read3 read4 gen homecog subjid; time1=0; time2=1; time3=2; time4=3; run; data anti; set initial; *must flip data for MIXED -- see Singer (1998); array tvar[4] time1-time4; array antivar[4] anti1-anti4; do i=1 to 4; anti=antivar[i]; time=tvar[i]; output; end; drop i time1-time4 anti1-anti4; run; proc mixed data=anti noclprint covtest; class subjid; *conditional linear anti; model anti = time gen homecog gen*time homecog*time/solution ddfm=bw notest; random intercept time / type=un sub=subjid gcorr; run;