Documentation Example 1 for PROC FMM
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: fmmex01 */
/* TITLE: Documentation Example 1 for PROC FMM */
/* Binomial cluster model */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: Correlated binomial data */
/* Beta-binomial distribution */
/* PROCS: FMM */
/* DATA: Ossification data, Morel and Neerchal (1997) */
/* */
/* SUPPORT: Dave Kessler */
/* REF: Morel, J.G. and Neerchal, N.K. (1997), */
/* Clustered Binary Logistic Regression in Teratology */
/* Data Using a Finite Mixture Distribution, */
/* Statistics in Medicine, 16, 2843--2853 */
/* MISC: */
/****************************************************************/
data ossi;
length tx $8;
input tx$ n @@;
do i=1 to n;
input y m @@;
output;
end;
drop i;
datalines;
Control 18 8 8 9 9 7 9 0 5 3 3 5 8 9 10 5 8 5 8 1 6 0 5
8 8 9 10 5 5 4 7 9 10 6 6 3 5
Control 17 8 9 7 10 10 10 1 6 6 6 1 9 8 9 6 7 5 5 7 9
2 5 5 6 2 8 1 8 0 2 7 8 5 7
PHT 19 1 9 4 9 3 7 4 7 0 7 0 4 1 8 1 7 2 7 2 8 1 7
0 2 3 10 3 7 2 7 0 8 0 8 1 10 1 1
TCPO 16 0 5 7 10 4 4 8 11 6 10 6 9 3 4 2 8 0 6 0 9
3 6 2 9 7 9 1 10 8 8 6 9
PHT+TCPO 11 2 2 0 7 1 8 7 8 0 10 0 4 0 6 0 7 6 6 1 6 1 7
;
data ossi;
set ossi;
array xx{3} x1-x3;
do i=1 to 3; xx{i}=0; end;
pht = 0;
tcpo = 0;
if (tx='TCPO') then do;
xx{1} = 1;
tcpo = 100;
end; else if (tx='PHT') then do;
xx{2} = 1;
pht = 60;
end; else if (tx='PHT+TCPO') then do;
pht = 60;
tcpo = 100;
xx{1} = 1; xx{2} = 1; xx{3}=1;
end;
run;
proc fmm data=ossi;
class pht tcpo;
model y/m = / dist=binomcluster;
probmodel pht tcpo pht*tcpo;
run;
proc fmm data=ossi;
class pht tcpo;
model y/m = pht tcpo pht*tcpo / dist=binomcluster;
probmodel pht tcpo pht*tcpo;
run;
proc fmm data=ossi;
model y/m = x1-x3 / dist=binomcluster;
probmodel x1-x3;
run;
proc fmm data=ossi;
model y/m = x1-x3 / dist=binomial;
run;
proc fmm data=ossi;
model y/m = x1-x3 / dist=betabinomial;
run;