[R] Manually calculating values from aov() result

Ebert,Timothy Aaron tebert @end|ng |rom u||@edu
Wed Aug 7 15:09:28 CEST 2024


In proc glm, SAS will give both type I and type III sums of squares. You can get type II if you ask. Other procedures in SAS have different output as defaults.

Introductory textbooks may only cover type I SS. It is easy to calculate and gets the idea across. In application one of the problems is that a researcher could reanalyze the data to get an outcome of their choice because the order in which variables appear in the model influences their type I SS.
A + B + A*B + C + A*C + B*C + A*B*C
B + C + A + A*B + A*C + B*C + A*B*C

Each variable (or interaction) can have a different type I SS and that can change the perception of which elements of the model are significant or not. Type III SS will give the same SS values for either model.

Tim

-----Original Message-----
From: R-help <r-help-bounces using r-project.org> On Behalf Of Brian Smith
Sent: Wednesday, August 7, 2024 8:28 AM
To: Duncan Murdoch <murdoch.duncan using gmail.com>
Cc: r-help using r-project.org
Subject: Re: [R] Manually calculating values from aov() result

[External Email]

Hi,

Thanks for this information. Is there any way to force R to use Type-1 SS? I think most textbooks use this only.

Thanks and regards,

On Wed, 7 Aug 2024 at 17:00, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
>
> On 2024-08-07 6:06 a.m., Brian Smith wrote:
> > Hi,
> >
> > I have performed ANOVA as below
> >
> > dat = data.frame(
> > 'A' = c(-0.3960025, -0.3492880, -1.5893792, -1.4579074, -4.9214873,
> > -0.8575018, -2.5551363, -0.9366557, -1.4307489, -0.3943704), 'B' =
> > c(2,1,2,2,1,2,2,2,2,2), 'C' = c(0,1,1,1,1,1,1,0,1,1))
> >
> > summary(aov(A ~ B * C, dat))
> >
> > However now I also tried to calculate SSE for factor C
> >
> > Mean = sapply(split(dat, dat$C), function(x) mean(x$A)) N =
> > sapply(split(dat, dat$C), function(x) dim(x)[1])
> >
> > N[1] * (Mean[1] - mean(dat$A))^2 + N[2] * (Mean[2] - mean(dat$A))^2
> > #1.691
> >
> > But in ANOVA table the sum-square for C is reported as 0.77.
> >
> > Could you please help how exactly this C = 0.77 is obtained from
> > aov()
>
> Your design isn't balanced, so there are several ways to calculate the
> SS for C.  What you have calculated looks like the "Type I SS" in SAS
> notation, if I remember correctly, assuming that C enters the model
> before B.  That's not what R uses; I think it is Type II SS.
>
> For some details about this, see
> https://mcfr/
> omnz.wordpress.com%2F2011%2F03%2F02%2Fanova-type-iiiiii-ss-explained%2
> F&data=05%7C02%7Ctebert%40ufl.edu%7C21219670c5d541da503d08dcb6dc6c08%7
> C0d4da0f84a314d76ace60a62331e1b84%7C0%7C0%7C638586305046428793%7CUnkno
> wn%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL
> CJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=HIGCrSH46P%2B1Y0cXUAfZ7DMCCORvtWaiRGC
> crokr4Rs%3D&reserved=0
>

______________________________________________
R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.r-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list