[R] type III ANOVA for a nested linear model

Carsten Jaeger carsten_jaeger at web.de
Wed Jul 11 14:37:41 CEST 2007


Hello Peter,

thanks for your help. I'm quite sure that I specified the right model.
Factor C is indeed nested within factor A. I think you were confused by
the numbering of C (1..11), and it is easier to understand when I code
it as you suggested (1,2,3 within each level of A, as in mydata1 [see
below]). However, it does not matter which numbering I choose for
carrying the analysis, as

anova(lm(resp ~ A * B + (C %in% A), mydata))
anova(lm(resp ~ A * B + (C %in% A), mydata1))

both give the same results (as at least I had expected because of the
nesting).

However, I found that Anova() from the car package only accepts the
second version. So,

Anova(lm(resp ~ A * B + (C %in% A), mydata)) does not work (giving an
error) but
Anova(lm(resp ~ A * B + (C %in% A), mydata1)) does.

This behaviour is rather confusing, or is there anything I'm missing?

Thanks for your help again, 

Carsten


R> mydata
      A     B      C resp
1     1     1      1 34.12
2     1     1      2 32.45
3     1     1      3 44.55
4     1     2      1 20.88
5     1     2      2 22.32
6     1     2      3 27.71
7     2     1      6 38.20
8     2     1      7 31.62
9     2     1      8 38.71
10    2     2      6 18.93
11    2     2      7 20.57
12    2     2      8 31.55
13    3     1      9 40.81
14    3     1     10 42.23
15    3     1     11 41.26
16    3     2      9 28.41
17    3     2     10 24.07
18    3     2     11 21.16

R> mydata1
      A     B      C resp
1     1     1      1 34.12
2     1     1      2 32.45
3     1     1      3 44.55
4     1     2      1 20.88
5     1     2      2 22.32
6     1     2      3 27.71
7     2     1      1 38.20
8     2     1      2 31.62
9     2     1      3 38.71
10    2     2      1 18.93
11    2     2      2 20.57
12    2     2      3 31.55
13    3     1      1 40.81
14    3     1      2 42.23
15    3     1      3 41.26
16    3     2      1 28.41
17    3     2      2 24.07
18    3     2      3 21.16


On Tue, 2007-07-10 at 13:54 +0200, Peter Dalgaard wrote:
> Carsten Jaeger wrote:
> > Hello,
> >
> > is it possible to obtain type III sums of squares for a nested model as
> > in the following:
> >
> > lmod <- lm(resp ~ A * B + (C %in% A), mydata))
> >
> > I have tried
> >
> > library(car)
> > Anova(lmod, type="III")
> >
> > but this gives me an error (and I also understand from the documentation
> > of Anova as well as from a previous request
> > (http://finzi.psych.upenn.edu/R/Rhelp02a/archive/64477.html) that it is
> > not possible to specify nested models with car's Anova).
> >
> > anova(lmod) works, of course.
> >
> > My data (given below) is balanced so I expect the results to be similar
> > for both type I and type III sums of squares. But are they *exactly* the
> > same? The editor of the journal which I'm sending my manuscript to
> > requests what he calls "conventional" type III tests and I'm not sure if
> >   
> > can convince him to accept my type I analysis.
> In balanced designs, type I-IV SSD's are all identical. However, I don't think the model does what I think you think it does. 
> 
> Notice that "nesting" is used with two diferent meanings, in R it would be that the codings of C only makes sense within levels of A - e.g. if they were numbered 1:3 within each group, but with C==1 when A==1 having nothing to do with C==1 when A==2.  SAS does something. er. else...
> 
> What I think you want is a model where C is a random terms so that main effects of A can be tested, like in
> 
> > summary(aov(resp ~ A * B + Error(C), dd))
> 
> Error: C
>           Df  Sum Sq Mean Sq F value Pr(>F)
> A          2  33.123  16.562  0.4981 0.6308
> Residuals  6 199.501  33.250
> 
> Error: Within
>           Df Sum Sq Mean Sq F value   Pr(>F)
> B          1 915.21  915.21 83.7846 9.57e-05 ***
> A:B        2  16.13    8.07  0.7384   0.5168
> Residuals  6  65.54   10.92
> ---
> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> 
> 
> (This is essentially the same structure as Martin Bleichner had earlier today, also @web.de. What is this? an epidemic? ;-))
> 
>



More information about the R-help mailing list