[R] model simplification in repeated anova

Richard M. Heiberger rmh at temple.edu
Mon Jan 15 18:39:09 CET 2007


## My previous response included only half the file.

## This is based on ?aov

## From Venables and Ripley (2002) p.165.
data(npk, package="MASS")

## as a test, not particularly sensible statistically
npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)

np.k.aovE <- aov(yield ~  N*P+K + Error(block), npk)

anova(np.k.aovE, npk.aovE)  ## doesn't work, as query noted

## Compare these two
summary(npk.aovE)
summary(np.k.aovE)
## The block stratum has the same total in both summaries.
## In this example, the two suppressed interactions are last and
## both are not significant.

## In order to use anova(model.1, model.2), it is necessary to
## rewrite the SAME models without the Error function.
## Use terms( , keep.order=TRUE) and the dummy variables that were
## generated in the multi-stratum model.

npk.proj <- proj(npk.aovE)
npk.x <- npk.proj$block[,"N:P:K"]

npk.aov <- aov(terms(yield ~  npk.x + block + N+P+K+N:P+N:K+P:K, keep.order=TRUE), npk)

np.k.aov <- aov(terms(yield ~  block + N+P+K+N:P, keep.order=TRUE), npk)

summary(npk.aov)
summary(np.k.aov)

anova(npk.aov, np.k.aov)



More information about the R-help mailing list