Documentation Example 5 for PROC GLIMMIX
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: gmxex05 */
/* TITLE: Documentation Example 5 for PROC GLIMMIX */
/* Joint Modeling of Binary and Count Data */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: Generalized linear mixed models */
/* Multivariate data from different distributions */
/* Varying distribution by observation */
/* Fusing with joint random effects */
/* PROCS: GLIMMIX */
/* DATA: Mosteller, F. and Tukey, J.W. (1977) */
/* Data Analysis and Regression */
/* Reading, MA: Addison-Wesley */
/* */
/* SUPPORT: Oliver Schabenberger */
/* REF: */
/* MISC: */
/****************************************************************/
data hernio;
input patient age gender$ OKstatus leave los;
datalines;
1 78 m 1 0 9
2 60 m 1 0 4
3 68 m 1 1 7
4 62 m 0 1 35
5 76 m 0 0 9
6 76 m 1 1 7
7 64 m 1 1 5
8 74 f 1 1 16
9 68 m 0 1 7
10 79 f 1 0 11
11 80 f 0 1 4
12 48 m 1 1 9
13 35 f 1 1 2
14 58 m 1 1 4
15 40 m 1 1 3
16 19 m 1 1 4
17 79 m 0 0 3
18 51 m 1 1 5
19 57 m 1 1 8
20 51 m 0 1 8
21 48 m 1 1 3
22 48 m 1 1 5
23 66 m 1 1 8
24 71 m 1 0 2
25 75 f 0 0 7
26 2 f 1 1 0
27 65 f 1 0 16
28 42 f 1 0 3
29 54 m 1 0 2
30 43 m 1 1 3
31 4 m 1 1 3
32 52 m 1 1 8
;
data hernio_uv;
length dist $7;
set hernio;
response = (leave=1);
dist = "Binary";
output;
response = los;
dist = "Poisson";
output;
keep patient age OKstatus response dist;
run;
proc glimmix data=hernio_uv(where=(dist="Binary"));
model response(event='1') = age OKStatus / s dist=binary;
run;
proc glimmix data=hernio_uv(where=(dist="Poisson"));
model response = age OKStatus / s dist=Poisson;
run;
proc glimmix data=hernio_uv;
class dist;
model response(event='1') = dist dist*age dist*OKstatus /
noint s dist=byobs(dist);
run;
proc glimmix data=hernio_uv;
class patient dist;
model response(event='1') = dist dist*age dist*OKstatus /
noint s dist=byobs(dist);
random int / subject=patient;
run;
proc glimmix data=hernio_uv;
class patient dist;
model response(event='1') = dist dist*age dist*OKstatus /
noint s dist=byobs(dist);
random _residual_ / subject=patient type=chol;
run;