UCLA Academic Technology Services HomeServicesClassesContactJobs
Help the Stat Consulting Group by giving a gift             
Loading

SAS FAQ:
Why are Type III p-values different from the estimate p-values in PROC GLM?

When running a model in PROC GLM with an interaction term, if you indicate the ss3 option you will likely see p-values for the same variable in the Type III Sum of Squares output that are different from the p-values in the Estimate output.  The code below uses the elemapi2 dataset

proc glm data="c:\sasreg\elemapi2";
  class mealcat;
  model api00=some_col mealcat some_col*mealcat /solution ss3;
run;
quit;

Source                     DF    Type III SS    Mean Square   F Value   Pr > F
some_col                    1      36366.366      36366.366      7.70   0.0058
mealcat                     2    2012065.492    1006032.746    212.95   <.0001
some_col*mealcat            2      97468.169      48734.084     10.32   <.0001


                                             Standard
Parameter                  Estimate             Error    t Value    Pr > |t|
Intercept               480.9461176 B     12.13062708      39.65      <.0001
some_col                  1.6599700 B      0.75190859       2.21      0.0278
mealcat          1      344.9475807 B     17.05743173      20.22      <.0001
mealcat          2      105.9176024 B     18.75449819       5.65      <.0001
mealcat          3        0.0000000 B       .                .         .
some_col*mealcat 1       -2.6073085 B      0.89604354      -2.91      0.0038
some_col*mealcat 2        0.5336362 B      0.92720142       0.58      0.5653
some_col*mealcat 3        0.0000000 B       .                .         .

We can see that the p-value for some_col in the Type III SS section is 0.0058, while the same variable has a p-value of 0.0278 in the Estimate section. The reason that these two differ is that they correspond to two different tests due to the interaction term. The Type III SS section tests the overall effect of some_col while the Estimate section tests the simple effect of some_col when mealcat is at the level of the reference group.

To make this clear, we can look at the SAS code that reproduces the Type III SS test using the estimate statement:

proc glm data=ats.elemapi2;
  class mealcat ;
  model api00= mealcat some_col mealcat*some_col /solution ss3;
  estimate "overall effect" some_col 3 some_col*mealcat 1 1 1 /divisor=3; 
run; 
quit;

Source                      DF     Type III SS     Mean Square    F Value    Pr > F

mealcat                      2     2012065.492     1006032.746     212.95    <.0001
some_col                     1       36366.366       36366.366       7.70    0.0058
some_col*mealcat             2       97468.169       48734.084      10.32    <.0001


                                            Standard
Parameter                   Estimate           Error    t Value    Pr > |t|
overall effect            0.96874585      0.34916249       2.77      0.0058

                                             Standard
Parameter                  Estimate             Error    t Value    Pr > |t|

Intercept               480.9461176 B     12.13062708      39.65      <.0001
mealcat          1      344.9475807 B     17.05743173      20.22      <.0001
mealcat          2      105.9176024 B     18.75449819       5.65      <.0001
mealcat          3        0.0000000 B       .                .         .
some_col                  1.6599700 B      0.75190859       2.21      0.0278
some_col*mealcat 1       -2.6073085 B      0.89604354      -2.91      0.0038
some_col*mealcat 2        0.5336362 B      0.92720142       0.58      0.5653
some_col*mealcat 3        0.0000000 B       .                .         .

Here is a more mathematical way of looking at this.  Our model has the following structure:

api00 = b_0 + b_1*mealcat_1 + b_2*mealcat_2 + b_3*some_col + b_4*mealcat_1*some_col + b_5*mealcat_2*some_col

The p-value of .0278 corresponds to the test of b_3 = 0. The null hypothesis here is that the effect of some_col is zero when mealcat = 3. The p-value of .0058 corresponds to the test of (b_3 + (b_3 + b_4) + (b_3 + b_5)) /3 = 0. That is the overall effect of some_col across all levels of mealcat.


How to cite this page

Report an error on this page or leave a comment

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California