OPTIONS NOCENTER; FILENAME IN1 'C:\MIX\SCHIZX1.DAT'; DATA ONE; INFILE IN1 ; INPUT ID IMPS79 IMPS79B IMPS79O INT TX WEEK SWEEK TXSWK ; IF IMPS79 > -9; PROC FORMAT; VALUE TX 0 = 'Placebo' 1 = 'Drug'; /* ORDINAL LOGISTIC RANDOM-INTERCEPT MODEL - adaptive quadrature */ PROC NLMIXED ; PARMS B0=0 B1=0 B2=0 B3=0 SD=1 I1=1 I2=1; Z = B0 + B1*TX + B2*SWEEK + B3*TX*SWEEK + U; IF (IMPS79O=1) THEN P = 1 / (1 + EXP(-(0-Z))); ELSE IF (IMPS79O=2) THEN P = (1/(1 + EXP(-(I1-Z)))) - (1/(1 + EXP(-(0-Z)))); ELSE IF (IMPS79O=3) THEN P = (1/(1 + EXP(-(I1+I2-Z)))) - (1/(1 + EXP(-(I1-Z)))); ELSE IF (IMPS79O=4) THEN P = 1 - (1 / (1 + EXP(-(I1+I2-Z)))); LL = LOG(P); MODEL IMPS79O ~ GENERAL(LL); RANDOM U ~ NORMAL(0,SD*SD) SUBJECT=ID; ESTIMATE 'THRESH2' I1; ESTIMATE 'THRESH3' I1 + I2; ESTIMATE 'ICC' SD*SD/(3.289868134+SD*SD); RUN; /* ORDINAL LOGISTIC RANDOM-TREND MODEL - adaptive quadrature */ PROC NLMIXED ; PARMS B0=0 B1=0 B2=0 B3=0 V0=1 C01=0 V1=.5 I1=1 I2=1; Z = B0 + B1*TX + B2*SWEEK + B3*TX*SWEEK + U0 + U1*SWEEK; IF (IMPS79O=1) THEN P = 1 / (1 + EXP(-(0-Z))); ELSE IF (IMPS79O=2) THEN P = (1/(1 + EXP(-(I1-Z)))) - (1/(1 + EXP(-(0-Z)))); ELSE IF (IMPS79O=3) THEN P = (1/(1 + EXP(-(I1+I2-Z)))) - (1/(1 + EXP(-(I1-Z)))); ELSE IF (IMPS79O=4) THEN P = 1 - (1 / (1 + EXP(-(I1+I2-Z)))); LL = LOG(P); MODEL IMPS79O ~ GENERAL(LL); RANDOM U0 U1 ~ NORMAL([0,0], [V0,C01,V1]) SUBJECT=ID; ESTIMATE 'THRESH2' I1; ESTIMATE 'THRESH3' I1 + I2; ESTIMATE 'RE CORR' C01/SQRT(V0*V1); RUN;