# [R] Doing partial-f test for stepwise regression

rolf at math.unb.ca rolf at math.unb.ca
Sun Apr 1 16:06:26 CEST 2007

```Petr Klasterecky <klaster at karlin.mff.cuni.cz> wrote:

>
>  >>>
> When given a sequence of objects, 'anova' tests the models against
>       one another in the order specified.
> <<<

One perfectly reasonable response to ``what about'' is
that it is not *at all* clear as to what the statement
in the help page actually means.

> Generally you almost never fit a full model (including all possible
> interactions etc) - no one can interpret such complicated models.

This assertion is certainly open to some dispute.

> Anova gives you a comparison between a broader model (the first
> argument to anova) and its submodel(s).

As I read the above statement, it seems you've got
it exactly backwards.  Broader model == full model,
submodel = model under the null hypothesis, is it
not so?

You should actually specify the ``reduced'' model (the model
under the null hypothesis) first, and the full model second.
E.g.:

> y <- runif(20)
> x1 <- runif(20)
> x2 <- runif(20)
> x3 <- runif(20)
> f1 <- lm(y~x1+x2+x3)
> f2 <- lm(y~x1)
> anova(f1,f2)
Analysis of Variance Table

Model 1: y ~ x1 + x2 + x3
Model 2: y ~ x1
Res.Df      RSS Df Sum of Sq      F Pr(>F)
1     16  0.93225
2     18  1.07998 -2  -0.14774 1.2678 0.3083

Doing it your way --- full model first --- gives a
negative sum of squares.  And negative degrees of
freedom for the effect being tested.

Not that it really matters --- the anova() function
gives you the same F statistic and p-value either way.
And the negative SS is a dead giveaway that something
is a bit skew-wiff.

cheers,

Rolf Turner
rolf at math.unb.ca

```