Skip to content

anova and intercept

5 messages · Gabor Grothendieck, Peter Dalgaard, Greg Snow

#
Suppose we want to perform a paired test using the sleep data frame
with anova in R.  Then this works and gives the same p value as
t.test(extra ~ group, sleep, paired = TRUE, var.equal = TRUE)

   ones <- rep(1, 10)
   anova(lm(diff(extra, 10) ~ ones + 0, sleep)

This gives output but does not give an F test at all.

   ones <- rep(1, 10)
   anova(lm(diff(extra, 10) ~ 1, sleep)

Maybe there should be some way to force an F test to be produced for
the intercept in anova for consistency with t.test so that the second
code can be used.
#
My usual advice on getting nonstandard F tests out of anova() is to fit the models explicitly and compare. 

So how about this?

fit1 <- lm(diff(extra,10) ~ 1, sleep)
fit0 <- update(fit1, ~ -1)
anova(fit0, fit1)

-pd

  
    
#
Good idea.
On Mon, Dec 26, 2022 at 12:59 PM peter dalgaard <pdalgd at gmail.com> wrote:

  
    
#
Why compute the  differences manually when `aov` can do paired
comparisons on this data as is:

summary(aov(extra ~ factor(group) + Error(ID), data=sleep ))

gives the same F and P values

On Tue, Dec 27, 2022 at 3:32 AM Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:

  
    
#
Yes, that works fine too. It likely depends on what you want to show and to whom. The audience might be ready to see the equivalence between t-tests and anova(lm(...)) but not yet prepared for variance components.

- Peter