FOCUS AREAS

Categorical Data Analysis: Chapter 2


data respire;
   input treat $ outcome $ count;
   datalines;
placebo f 16
placebo u 48 
test    f 40 
test    u 20
;


proc freq;
   weight count;
   tables treat*outcome / chisq;
run;

data severe;
   input treat $ outcome $ count;
   datalines;
Test    f 10 
Test    u 2
Control f 2 
Control u 4 
;


proc freq order=data;
   weight count;
   tables treat*outcome / chisq nocol;
run; 

proc freq order=data;
   weight count;
   tables treat*outcome / chisq nocol;
   exact chisq;
run; 
 
data respire2; 
   input treat $ outcome $ count @@; 
   datalines;  
test    f 40 test    u 20 
placebo f 16 placebo u 48 
;


ods select RiskDiffCol1 Measures; 
proc freq order=data; 
   weight count; 
   tables treat*outcome / riskdiff (correct) measures; 
run;  

proc freq order=data; 
   weight count; 
   tables treat*outcome / riskdiff(cl=(wald mn) correct) measures; 
run;  

proc freq order=data data=severe;
   weight count;
   tables treat*outcome / riskdiff(cl=(wald newcombe exact) correct );
   exact riskdiff;
run;

data stress;
   input stress $ outcome $ count;
   datalines;
low  f 48 
low  u 12 
high f 96 
high u 94
;


proc freq order=data;
   weight count;
   tables stress*outcome / chisq measures nocol nopct;    
run; 

data respire;
   input treat $ outcome $ count;
   datalines;
test    yes  29 
test    no   16 
placebo yes  14 
placebo no   31
; 


proc freq order=data;
   weight count;
   tables treat*outcome / all nocol nopct;      
run; 

data severe;
   input treat $ outcome $ count;
   datalines;
Test    f 10 
Test    u 2
Control f 2 
Control u 4 
;


proc freq order=data;
   weight count;
   tables treat*outcome / nocol;
   exact or;
run; 

data screening; 
   input disease $ outcome $ count @@; 
   datalines;  
present  + 52 present -    8 
absent   + 20 absent  -  100 
;

 
proc freq data=screening order=data;
   weight count; 
   tables disease*outcome / riskdiff;
run; 

data approval;
   input hus_resp $ wif_resp $ count;
   datalines;
yes yes 20 
yes no   5
no yes  10
no no   10 
; 


ods select McNemarsTest;
proc freq order=data;
   weight count;
   tables hus_resp*wif_resp / agree;
run;

data vaccine2;  
   input Outcome $ Count @@; 
datalines;
fail 3 success 58  
;


ods select BinomialCLs; 
proc freq;
   weight count; 
   tables Outcome / binomial (exact); 
ods output BinomialCLs=BinomialCLs; 
run;

proc iml ;  
   Use BinomialCLs var{LowerCL UpperCL};
   read all into CL;  
   print CL; 
   q = { 3, 7500, 58 , 7250 }; 
   C= q[2]/q[4]; 
   P= q[1]/ (q[1] + q[3]);
   R= P/ ((1-P) *C) ; 
   CI= CL[1]/((1-CL[1])*C) || CL[2]/((1-CL[2])*C) ; 
   print r CI;
quit;