SAS Institute. The Power to Know

FOCUS AREAS

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