Categorical Data Analysis: Chapter 16
options nodate nonumber ps=200 ls=80 formdlim=' ';
data bicycle;
input type $ helmet $ count;
datalines;
Mountain Yes 34
Mountain No 32
Other Yes 10
Other No 24
;
run;
proc catmod;
weight count;
model type*helmet=_response_ / noresponse noiter noparm;
loglin type|helmet;
run;
proc catmod;
weight count;
model type*helmet=_response_ / noprofile noresponse noiter noparm;
loglin type helmet;
run;
proc freq order=data;
weight count;
tables type*helmet / nopercent norow chisq;
run;
data melanoma;
input type $ site $ count;
datalines;
Hutchinson's Head&Neck 22
Hutchinson's Trunk 2
Hutchinson's Extremities 10
Superficial Head&Neck 16
Superficial Trunk 54
Superficial Extremities 115
Nodular Head&Neck 19
Nodular Trunk 33
Nodular Extremities 73
Indeterminate Head&Neck 11
Indeterminate Trunk 17
Indeterminate Extremities 28
;
run;
proc catmod;
weight count;
model type*site=_response_ / noresponse noiter noparm;
loglin type site;
run; quit;
ods select Type3;
proc genmod;
class type site;
model count=type|site / link=log dist=poisson type3;
run;
data satisfac;
input managmnt $ supervis $ worker $ count;
datalines;
Bad Low Low 103
Bad Low High 87
Bad High Low 32
Bad High High 42
Good Low Low 59
Good Low High 109
Good High Low 78
Good High High 205
;
proc catmod order=data;
weight count;
model managmnt*supervis*worker=_response_
/ noresponse noiter noparm;
loglin managmnt|supervis|worker;
run;
proc catmod order=data;
weight count;
model managmnt*supervis*worker=_response_
/ noprofile noresponse noiter p=freq;
loglin managmnt|supervis managmnt|worker supervis|worker;
run;
proc catmod order=data;
weight count;
model managmnt*supervis*worker=_response_
/ noprofile noresponse noiter noparm;
loglin managmnt|supervis managmnt|worker;
proc catmod order=data;
weight count;
model managmnt*supervis*worker=_response_
/ noprofile noresponse noiter noparm;
loglin managmnt|supervis supervis|worker;
proc catmod order=data;
weight count;
model managmnt*supervis*worker=_response_
/ noprofile noresponse noiter noparm;
loglin managmnt|worker supervis|worker;
run;
data cancer;
input news $ radio $ reading $ lectures $ knowledg $ count;
datalines;
Yes Yes Yes Yes Good 23
Yes Yes Yes Yes Poor 8
Yes Yes Yes No Good 102
Yes Yes Yes No Poor 67
Yes Yes No Yes Good 8
Yes Yes No Yes Poor 4
Yes Yes No No Good 35
Yes Yes No No Poor 59
Yes No Yes Yes Good 27
Yes No Yes Yes Poor 18
Yes No Yes No Good 201
Yes No Yes No Poor 177
Yes No No Yes Good 7
Yes No No Yes Poor 6
Yes No No No Good 75
Yes No No No Poor 156
No Yes Yes Yes Good 1
No Yes Yes Yes Poor 3
No Yes Yes No Good 16
No Yes Yes No Poor 16
No Yes No Yes Good 4
No Yes No Yes Poor 3
No Yes No No Good 13
No Yes No No Poor 50
No No Yes Yes Good 3
No No Yes Yes Poor 8
No No Yes No Good 67
No No Yes No Poor 83
No No No Yes Good 2
No No No Yes Poor 10
No No No No Good 84
No No No No Poor 393
;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noresponse noiter noparm;
loglin news|radio|reading|lectures news|radio|reading|knowledg
news|radio|lectures|knowledg news|reading|lectures|knowledg
radio|reading|lectures|knowledg;
run;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noprofile noresponse noiter noparm;
loglin news|radio|reading news|radio|lectures
news|radio|knowledg news|reading|lectures
news|reading|knowledg news|lectures|knowledg
radio|reading|lectures radio|reading|knowledg
radio|lectures|knowledg reading|lectures|knowledg;
run;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noprofile noresponse noiter noparm;
loglin news|radio radio|reading
radio|lectures radio|knowledg
news|reading|knowledg news|lectures|knowledg
reading|lectures|knowledg;
run;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noprofile noresponse noiter noparm;
loglin news|radio radio|lectures
radio|knowledg news|reading|knowledg
news|lectures|knowledg reading|lectures|knowledg;
run;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noprofile noresponse noiter noparm;
loglin news|radio radio|lectures
radio|knowledg reading|knowledg
news|knowledg lectures|knowledg
news*reading(knowledg='Good')
news*reading(knowledg='Poor')
news*lectures(knowledg='Good')
news*lectures(knowledg='Poor')
reading*lectures(knowledg='Good')
reading*lectures(knowledg='Poor');
run;
proc catmod order=data;
weight count;
model news*radio*reading*lectures*knowledg=_response_
/ noprofile noresponse noiter;
loglin news|radio radio|lectures
radio|knowledg reading|knowledg
news|knowledg lectures|knowledg
news*reading(knowledg='Good')
news*reading(knowledg='Poor')
news*lectures(knowledg='Good')
reading*lectures(knowledg='Poor');
run;
proc catmod data=satisfac order=data;
weight count;
model worker=managmnt supervis
/ noprofile noresponse noiter p=freq;
run;
Statistics and Operations Research