DATA one; INFILE 'C:\mixdemo\schizx1.dat'; INPUT id imps79 imps79b imps79o int tx week sweek txswk ; /* get rid of observations with missing values */ IF imps79 > -9; PROC FORMAT; VALUE imps79b 0 = 'le mild' 1 = 'ge moderate'; VALUE tx 0 = 'placebo' 1 = 'drug'; /* fixed-effects logistic regression model */ PROC LOGISTIC DESCENDING; MODEL imps79b = tx sweek tx*sweek; /* random intercept logistic regression model */ PROC NLMIXED ; PARMS b0=3.70 b1=-.40 b2=-1.11 b3=-.42 sd=1; z = b0 + b1*tx + b2*sweek + b3*tx*sweek + u; IF (imps79b=1) THEN p = 1 / (1 + EXP(-z)); ELSE p = 1 - (1 / (1 + EXP(-z))); ll = LOG(p); MODEL imps79b ~ GENERAL(ll); RANDOM u ~ NORMAL(0,sd*sd) SUBJECT=id OUT=ebest1; ESTIMATE 'icc' sd*sd/(3.289868134+sd*sd); PROC PRINT DATA=ebest1; /* random trend logistic regression model */ PROC NLMIXED DATA=one; PARMS b0=5.37 b1=-.04 b2=-1.50 b3=-1.00 v0=4.33 c01=0 v1=1; z = b0 + b1*tx + b2*sweek + b3*tx*sweek + u0 + u1*sweek; IF (imps79b=1) THEN p = 1 / (1 + EXP(-z)); ELSE p = 1 - (1 / (1 + EXP(-z))); ll = LOG(p); MODEL imps79b ~ GENERAL(ll); RANDOM u0 u1 ~ NORMAL([0,0], [v0,c01,v1]) SUBJECT=id OUT=ebest2; ESTIMATE 're corr' c01/SQRT(v0*v1); PROC PRINT DATA=ebest2; RUN;