FOCUS AREAS

Categorical Data Analysis: Chapter 6

  

   options nodate nonumber ps=200 ls=80 formdlim=' ';

   data operate;
      input hospital trt $ severity $ wt @@;
      datalines;
   1 v+d none 23    1 v+d slight  7    1 v+d moderate 2
   1 v+a none 23    1 v+a slight 10    1 v+a moderate 5
   1 v+h none 20    1 v+h slight 13    1 v+h moderate 5
   1 gre none 24    1 gre slight 10    1 gre moderate 6
   2 v+d none 18    2 v+d slight  6    2 v+d moderate 1
   2 v+a none 18    2 v+a slight  6    2 v+a moderate 2
   2 v+h none 13    2 v+h slight 13    2 v+h moderate 2
   2 gre none  9    2 gre slight 15    2 gre moderate 2
   3 v+d none  8    3 v+d slight  6    3 v+d moderate 3
   3 v+a none 12    3 v+a slight  4    3 v+a moderate 4
   3 v+h none 11    3 v+h slight  6    3 v+h moderate 2
   3 gre none  7    3 gre slight  7    3 gre moderate 4
   4 v+d none 12    4 v+d slight  9    4 v+d moderate 1
   4 v+a none 15    4 v+a slight  3    4 v+a moderate 2
   4 v+h none 14    4 v+h slight  8    4 v+h moderate 3
   4 gre none 13    4 gre slight  6    4 gre moderate 4
   ;
   proc freq order=data;
      weight wt;
      tables hospital*trt*severity / cmh;
      tables hospital*trt*severity / cmh scores=modridit;
   run;

   data shoulder;
      input area $ location $ size $ usage $ count @@;
      datalines;
   coast    urban large  no 174 coast    urban large  yes 69 
   coast    urban medium no 134 coast    urban medium yes 56 
   coast    urban small  no 150 coast    urban small  yes 54 
   coast    rural large  no  52 coast    rural large  yes 14 
   coast    rural medium no  31 coast    rural medium yes 14 
   coast    rural small  no  25 coast    rural small  yes 17 
   piedmont urban large  no 127 piedmont urban large  yes 62 
   piedmont urban medium no  94 piedmont urban medium yes 63 
   piedmont urban small  no 112 piedmont urban small  yes 93 
   piedmont rural large  no  35 piedmont rural large  yes 29 
   piedmont rural medium no  32 piedmont rural medium yes 30 
   piedmont rural small  no  46 piedmont rural small  yes 34 
   mountain urban large  no 111 mountain urban large  yes 26 
   mountain urban medium no 120 mountain urban medium yes 47 
   mountain urban small  no 145 mountain urban small  yes 68 
   mountain rural large  no  62 mountain rural large  yes 31 
   mountain rural medium no  44 mountain rural medium yes 32 
   mountain rural small  no  85 mountain rural small  yes 43 
   ;
   proc freq;
      weight count;
      tables size*usage / chisq;
      tables area*location*size*usage / cmh scores=modridit;
      tables area*size*usage / noprint cmh scores=modridit; 
      tables location*size*usage / noprint cmh scores=modridit;
   run;

   data school;
      input school program $ style $ count @@; 
      datalines;
   1 regular  self 10  1 regular  team 17 1 regular class   26
   1 after    self  5  1 after    team 12 1 after   class   50 
   2 regular  self 21  2 regular  team 17 2 regular class   26
   2 after    self 16  2 after    team 12 2 after   class   36 
   3 regular  self 15  3 regular  team 15 3 regular class   16
   3 after    self 12  3 after    team 12 3 after   class   20 
   ; 
   proc freq; 
      weight count;
      tables school*program*style / cmh chisq measures;
   run;  

   data pump;
      input subject time $ response $ @@;
      datalines; 
    1 before no   1 after no   2 before no   2 after no 
    3 before no   3 after no   4 before no   4 after no 
    5 before no   5 after no   6 before no   6 after no  
    7 before no   7 after no   8 before no   8 after no 
    9 before no   9 after no  10 before no  10 after no
   11 before no  11 after no  12 before no  12 after no  
   13 before no  13 after no  14 before no  14 after no
   15 before no  15 after no  16 before no  16 after no
   17 before no  17 after no  18 before no  18 after no  
   19 before no  19 after no  20 before no  20 after no
   21 before no  21 after no  22 before no  22 after no
   23 before no  23 after no  24 before no  24 after no  
   25 before no  25 after no  26 before no  26 after no
   27 before no  27 after no  28 before no  28 after no 
   29 before no  29 after no  30 before no  30 after no  
   31 before no  31 after no  32 before no  32 after no
   33 before no  33 after no  34 before no  34 after no
   35 before no  35 after no  36 before no  36 after no
   37 before no  37 after no  38 before no  38 after no
   39 before no  39 after no  40 before no  40 after no
   41 before no  41 after no  42 before no  42 after no  
   43 before no  43 after no  44 before no  44 after no
   45 before no  45 after no  46 before no  46 after no
   47 before no  47 after no  48 before no  48 after no  
   49 before no  49 after yes 50 before no  50 after yes
   51 before no  51 after yes 52 before no  52 after yes
   53 before no  53 after yes 54 before no  54 after yes 
   55 before no  55 after yes 56 before no  56 after yes
   57 before no  57 after yes 58 before no  58 after yes
   59 before no  59 after yes 60 before no  60 after yes 
   61 before no  61 after yes 62 before no  62 after yes
   63 before no  63 after yes 64 before yes 64 after no
   65 before yes 65 after no  66 before yes 66 after no 
   67 before yes 67 after no  68 before yes 68 after no 
   69 before yes 69 after yes 70 before yes 70 after yes
   71 before yes 71 after yes 72 before yes 72 after yes
   73 before yes 73 after yes 74 before yes 74 after yes 
   75 before yes 75 after yes 76 before yes 76 after yes
   77 before yes 77 after yes 78 before yes 78 after yes
   79 before yes 79 after yes 80 before yes 80 after yes 
   81 before yes 81 after yes 82 before yes 82 after yes
   83 before yes 83 after yes 84 before yes 84 after yes
   85 before yes 85 after yes 86 before yes 86 after yes 
   87 before yes 87 after yes 
   ;

   proc freq;
      tables subject*time*response/ noprint cmh out=freqtab;
   run;

   data shoes;
      input before $ after $ count ;
      datalines;
   yes yes 19 
   yes no  5
   no yes  15
   no no   48 
   ; 
   proc freq;
      weight count;
      tables before*after / agree;
   run;

   data drug;
      input druga $ drugb $ drugc $ count;
      datalines;
   F F F  6
   F F U 16
   F U F  2
   F U U  4
   U F F  2
   U F U  4
   U U F  6
   U U U  6
   ;
   data drug2; set drug;
      keep patient drug response;
      retain patient 0;
      do i=1 to count;
      patient=patient+1;
      drug='A';  response=druga;  output;
      drug='B';  response=drugb;  output;
      drug='C';  response=drugc;  output;
      end;
   proc freq;
      tables patient*drug*response / noprint cmh;
   run;

   data cold;
      keep id day drainage;
      input id day1-day4;
      day=1; drainage=day1; output;
      day=2; drainage=day2; output;
      day=3; drainage=day3; output;
      day=4; drainage=day4; output;
      datalines;
    1 1 1 2 2
    2 0 0 0 0
    3 1 1 1 1
    4 1 1 1 1
    5 0 2 2 0
    6 2 0 0 0
    7 2 2 1 2
    8 1 1 1 0
    9 3 2 1 1
   10 2 2 2 3
   11 1 0 1 1
   12 2 3 2 2
   13 1 3 2 1
   14 2 1 1 1
   15 2 3 3 3
   16 2 1 1 1
   17 1 1 1 1
   18 2 2 2 2
   19 3 1 1 1
   20 1 1 2 1
   21 2 1 1 2
   22 2 2 2 2
   23 1 1 1 1
   24 2 2 3 1
   25 2 0 0 0
   26 1 1 1 1
   27 0 1 1 0
   28 1 1 1 1
   29 1 1 1 0
   30 3 3 3 3
   ;
   proc freq;
      tables id*day*drainage / cmh noprint;
      tables id*day*drainage / cmh noprint scores=rank;
   run;

   data animals;
      keep id pulse severity;
      input id sev2 sev4 sev6 sev8 sev10;
      pulse=2;  severity=sev2;  output;
      pulse=4;  severity=sev4;  output;
      pulse=6;  severity=sev6;  output;
      pulse=8;  severity=sev8;  output;
      pulse=10; severity=sev10; output;
      datalines;
    6 0 0 5 0 3
    7 0 3 3 4 5
    8 0 3 4 3 2
    9 2 2 3 0 4
   10 0 0 4 4 3
   12 0 0 0 4 4
   13 0 4 4 4 0
   15 0 4 0 0 0
   16 0 3 0 1 1
   17 . . 0 1 0
   19 0 0 1 1 0
   20 . 0 0 2 2
   21 0 0 2 3 3
   22 . 0 0 3 0
   ;
   proc freq;
      tables id*pulse*severity / noprint cmh;
      tables id*pulse*severity / noprint cmh2 scores=rank;
      tables id*pulse*severity / noprint cmh2 scores=ridit;
      tables id*pulse*severity / noprint cmh2 scores=modridit;
   run;

   proc freq data=animals;
      where id notin(17,20,22);
      tables id*pulse*severity / noprint cmh;
      tables id*pulse*severity / noprint cmh scores=rank;
   run;

   data ph_vmax;
      keep subject ph vmax;
      input subject vmax1-vmax4;
      ph=6.5;  vmax=vmax1;  output;
      ph=6.9;  vmax=vmax2;  output;
      ph=7.4;  vmax=vmax3;  output;
      ph=7.9;  vmax=vmax4;  output;
      datalines;
    1  .  284 310 326
    2  .   .  261 292
    3  .  213 224 240
    4  .  222 235 247
    5  .   .  270 286
    6  .   .  210 218
    7  .  216 234 237
    8  .  236 273 283
    9 220 249 270 281
   10 166 218 244  . 
   11 227 258 282 286
   12 216  .  284  . 
   13  .   .  257 284
   14 204 234 268  . 
   15  .   .  258 267
   16  .  193 224 235
   17 185 222 252 263
   18  .  238 301 300
   19  .  198 240  . 
   20  .  235 255  . 
   21  .  216 238  . 
   22  .  197 212 219
   23  .  234 238  . 
   24  .   .  295 281
   25  .   .  261 272
   ;
   proc freq;
      tables subject*ph*vmax / noprint cmh2;
      tables subject*ph*vmax / noprint cmh2 scores=modridit;
   run;


Statistics and Operations Research