*** Logistic regression for ordinal factors; *** Concept of saturated model; *** Table 4.2 (Categorical Data Analysis by Agresti, 2nd edition); data snoring; input snore $ hd $ count; datalines; N YES 24 N NO 1355 O YES 35 O NO 603 AD YES 21 AD NO 192 D YES 30 D NO 224 ; ** Assign scores to the response categories; data snoring1; set snoring; if snore='N' then score=0; if snore='O' then score=2; if snore='AD' then score=4; if snore='D' then score=5; run; ** Fit different links; proc genmod data=snoring1 descending; freq count; ** Saturated model fits each individual person; model hd=score/ dist=bin link=idenity p r obstats; run; proc genmod data=snoring1 descending; freq count; model hd=score/ dist=bin link=logit p r obstats; run; proc genmod data=snoring1 descending; freq count; model hd=score/ dist=bin link=probit p r obstats; run; data snoring2; input snore $ no_hd total; datalines; N 24 1379 O 35 638 AD 21 213 D 30 254 ; data snoring2; set snoring2; if snore='N' then score=0; if snore='O' then score=2; if snore='AD' then score=4; if snore='D' then score=5; run; ** Saturated model fits each cell frequency; proc genmod data=snoring2 descending; class snore; model no_hd/total=snore/ dist=bin link=logit; run; ** linear association; proc genmod data=snoring2 descending; class snore; model no_hd/total=score/ dist=bin link=logit; run; ** no assoication or say independent; proc genmod data=snoring2 descending; class snore; model no_hd/total= / dist=bin link=logit; run;