[R] Odd anova(lm()) order phenomenon, looking for an explanation

Andrew Robinson A.Robinson at ms.unimelb.edu.au
Mon Apr 3 13:06:31 CEST 2006

```Thanks to Berwin and Peter for their replies.  The following code
clarifies what's going on in Peter's example.  I shall upodate my
intuition!

x1 <- runif(100,8,10)
x2 <- x1^2

y <- (x1-9)^2+rnorm(100,sd=.1)

opar <- par(mfrow=c(2,2), las=1)
plot(x1, y, main="x1 Only")
plot(residuals(lm(x1~x2)), residuals(lm(y~x2)),
plot(x2, y, main="x2 Only")
plot(residuals(lm(x2~x1)), residuals(lm(y~x1)),
par(opar)

## Using Lattice graphics

require(lattice)

cloud(y ~ x1 * x2)

## Using RGL graphics (with brute force scaling)

require(rgl)

rgl.clear("all")
rgl.bg(sphere = TRUE, color = c("black", "green"),
lit = FALSE, size=2, alpha=0.2, back = "lines")
rgl.light()
rgl.bbox()

x1 <- runif(100,8,10) * 10
x2 <- (x1/10)^2

esty <- ((x1/10-9)^2 + rnorm(100,sd=.1)) * 20

rgl.spheres(x1, esty, x2,
specular="green",
texture=system.file("textures/bump_dust.png",package="rgl"),
texmipmap=T, texminfilter="linear.mipmap.linear")

Cheers

Andrew

On Fri, Mar 31, 2006 at 12:09:14PM +0200, Peter Dalgaard wrote:
> Berwin A Turlach <berwin at maths.uwa.edu.au> writes:
>
> > Don't know if the following example, which shows the same behaviour,
> > leads to any insight.
> >
> > > n <- 100
> > > x1 <- runif(n, -1,1)
> > > x2 <- runif(n, -1,1)
> > > y <- x1*x1*x2 + rnorm(n, sd=0.05)
> > > y <- y - mean(y)
> > > anova(lm(y~x1+x2))
>
> Here's another (paraphrased from the Pixel data in nlme, which have
> similar behaviour)
>
> x1 <- runif(100,8,10)
> x2 <- x1^2
> y <- (x1 - 9)^2 + rnorm(100, sd=.1)
> plot(x1, y)
> anova(lm(y ~ x1 + x2))
> anova(lm(y ~ x2 + x1))
> summary(lm(y ~ x1))
> summary(lm(y ~ x2))
> summary(lm(y ~ x1 + x2))
>
>
> --
>    O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
>   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
>  (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907

--
Andrew Robinson
Department of Mathematics and Statistics            Tel: +61-3-8344-9763
University of Melbourne, VIC 3010 Australia         Fax: +61-3-8344-4599
Email: a.robinson at ms.unimelb.edu.au         http://www.ms.unimelb.edu.au

```