[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:

> And what about to read the help page ?anova ...?
>  >>>
> 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.

         > 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.


                                        Rolf Turner
                                        rolf at math.unb.ca

More information about the R-help mailing list