# [R] Between-group variance from ANOVA

S Ellison S.Ellison at LGCGroup.com
Wed Jul 25 16:41:46 CEST 2012

```
> > I'm trying also to understand how to get the between-group variance
> > out of a one-way ANOVA, but I'm beginning to think that in a sense,
> > the variance does not exist.  Emma said:
> >
> > *The model is response(i,j)= group(i)+ error(i,j)*
> >
> > Yes, if by group(i) you mean intercept + coefficient[i].
> >
> > *we assume that group~N(0,P^2) and error~N(0,sigma^2) *
> >
> > Only the error is assumed to be a random variable.  Group
> is a fixed
> > effect, not a random variable, and therefore it has no
> variance associated with it.
> > The model does not predict a variance for it.  One could
> compute the
> > variance of the coefficients and call this a group variance, but it
> > seems to me that isn't the right way to think about it.

The classical calculations in a one way anova table make no assumptions about the origin or distribution of the between-group differences. Nor does the F test commonly applied (because the F test assumes the null hypothesis, which is that there is no group effect - so we don't need to make assumptions about it to calculate a p-value).

For one way anova you are therefore free to think of the between group effects, if hypothesised to be present, as fixed or random. If the experiment tests controlled changes it usually makes more sense to think of them as fixed, and one tends to worry about the size of individual effects; If you're thinking of them as drawn randomly from a larger population of possible effects (ie random) it is usually sensible to calculate a variance.

The classical calcuilations of the between-group variance are given in practically every textbook on the topic. For a slightly more modern take on it you'd probably go for REML solutions which you can get from lme in the nlme package, among others. To do that, assuming data y with a grouping factor g, you would do something like
library(nlme)
l <- lme(y~1, random=~1|g)
summary(l) #for the whole picture
VarCorr(l) #for just variances

... and that will give you estimates of within- and between-group variance components

S Ellison

*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}

```