Fit an analysis of variance model by a call to lm for each stratum.
Usage
aov(formula, data = NULL, projections = FALSE, qr = TRUE,
contrasts = NULL, ...)
Arguments
formula
A formula specifying the model.
data
A data frame in which the variables specified in the
formula will be found. If missing, the variables are searched for in
the standard way.
projections
Logical flag: should the projections be returned?
qr
Logical flag: should the QR decomposition be returned?
contrasts
A list of contrasts to be used for some of the factors
in the formula. These are not used for any Error term, and
supplying contrasts for factors only in the Error term will give
a warning.
...
Arguments to be passed to lm, such as subset
or na.action. See ‘Details’ about weights.
Details
This provides a wrapper to lm for fitting linear models to
balanced or unbalanced experimental designs.
The main difference from lm is in the way print,
summary and so on handle the fit: this is expressed in the
traditional language of the analysis of variance rather than that of
linear models.
If the formula contains a single Error term, this is used to
specify error strata, and appropriate models are fitted within each
error stratum.
The formula can specify multiple responses.
Weights can be specified by a weights argument, but should not
be used with an Error term, and are incompletely supported
(e.g., not by model.tables).
Value
An object of class c("aov", "lm") or for multiple responses
of class c("maov", "aov", "mlm", "lm") or for multiple error
strata of class c("aovlist", "listof"). There are
print and summary methods available for these.
Note
aov is designed for balanced designs, and the results can be
hard to interpret without balance: beware that missing values in the
response(s) will likely lose the balance. If there are two or more
error strata, the methods used are statistically inefficient without
balance, and it may be better to use lme in
package nlme.
Balance can be checked with the replications function.
The default ‘contrasts’ in R are not orthogonal contrasts, and
aov and its helper functions will work better with such
contrasts: see the examples for how to select these.
Author(s)
The design was inspired by the S function of the same name described
in Chambers et al (1992).
References
Chambers, J. M., Freeny, A and Heiberger, R. M. (1992)
Analysis of variance; designed experiments.
Chapter 5 of Statistical Models in S
eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
## From Venables and Ripley (2002) p.165.
## Set orthogonal contrasts.
op <- options(contrasts = c("contr.helmert", "contr.poly"))
( npk.aov <- aov(yield ~ block + N*P*K, npk) )
summary(npk.aov)
coefficients(npk.aov)
## to show the effects of re-ordering terms contrast the two fits
aov(yield ~ block + N * P + K, npk)
aov(terms(yield ~ block + N * P + K, keep.order = TRUE), npk)
## as a test, not particularly sensible statistically
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
npk.aovE
summary(npk.aovE)
options(op) # reset to previous
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(stats)
> png(filename="/home/ddbj/snapshot/RGM3/R_rel/result/stats/aov.Rd_%03d_medium.png", width=480, height=480)
> ### Name: aov
> ### Title: Fit an Analysis of Variance Model
> ### Aliases: aov print.aov print.aovlist Error
> ### Keywords: models regression
>
> ### ** Examples
>
> ## From Venables and Ripley (2002) p.165.
>
> ## Set orthogonal contrasts.
> op <- options(contrasts = c("contr.helmert", "contr.poly"))
> ( npk.aov <- aov(yield ~ block + N*P*K, npk) )
Call:
aov(formula = yield ~ block + N * P * K, data = npk)
Terms:
block N P K N:P N:K P:K
Sum of Squares 343.2950 189.2817 8.4017 95.2017 21.2817 33.1350 0.4817
Deg. of Freedom 5 1 1 1 1 1 1
Residuals
Sum of Squares 185.2867
Deg. of Freedom 12
Residual standard error: 3.929447
1 out of 13 effects not estimable
Estimated effects are balanced
> ## No test:
> summary(npk.aov)
Df Sum Sq Mean Sq F value Pr(>F)
block 5 343.3 68.66 4.447 0.01594 *
N 1 189.3 189.28 12.259 0.00437 **
P 1 8.4 8.40 0.544 0.47490
K 1 95.2 95.20 6.166 0.02880 *
N:P 1 21.3 21.28 1.378 0.26317
N:K 1 33.1 33.14 2.146 0.16865
P:K 1 0.5 0.48 0.031 0.86275
Residuals 12 185.3 15.44
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> ## End(No test)
> coefficients(npk.aov)
(Intercept) block1 block2 block3 block4 block5
54.8750000 1.7125000 1.6791667 -1.8229167 -1.0137500 0.2950000
N1 P1 K1 N1:P1 N1:K1 P1:K1
2.8083333 -0.5916667 -1.9916667 -0.9416667 -1.1750000 0.1416667
>
> ## to show the effects of re-ordering terms contrast the two fits
> aov(yield ~ block + N * P + K, npk)
Call:
aov(formula = yield ~ block + N * P + K, data = npk)
Terms:
block N P K N:P Residuals
Sum of Squares 343.2950 189.2817 8.4017 95.2017 21.2817 218.9033
Deg. of Freedom 5 1 1 1 1 14
Residual standard error: 3.954232
Estimated effects are balanced
> aov(terms(yield ~ block + N * P + K, keep.order = TRUE), npk)
Call:
aov(formula = terms(yield ~ block + N * P + K, keep.order = TRUE),
data = npk)
Terms:
block N P N:P K Residuals
Sum of Squares 343.2950 189.2817 8.4017 21.2817 95.2017 218.9033
Deg. of Freedom 5 1 1 1 1 14
Residual standard error: 3.954232
Estimated effects are balanced
>
>
> ## as a test, not particularly sensible statistically
> npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
> npk.aovE
Call:
aov(formula = yield ~ N * P * K + Error(block), data = npk)
Grand Mean: 54.875
Stratum 1: block
Terms:
N:P:K Residuals
Sum of Squares 37.00167 306.29333
Deg. of Freedom 1 4
Residual standard error: 8.750619
Estimated effects are balanced
Stratum 2: Within
Terms:
N P K N:P N:K P:K
Sum of Squares 189.28167 8.40167 95.20167 21.28167 33.13500 0.48167
Deg. of Freedom 1 1 1 1 1 1
Residuals
Sum of Squares 185.28667
Deg. of Freedom 12
Residual standard error: 3.929447
Estimated effects are balanced
> summary(npk.aovE)
Error: block
Df Sum Sq Mean Sq F value Pr(>F)
N:P:K 1 37.0 37.00 0.483 0.525
Residuals 4 306.3 76.57
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
N 1 189.28 189.28 12.259 0.00437 **
P 1 8.40 8.40 0.544 0.47490
K 1 95.20 95.20 6.166 0.02880 *
N:P 1 21.28 21.28 1.378 0.26317
N:K 1 33.14 33.14 2.146 0.16865
P:K 1 0.48 0.48 0.031 0.86275
Residuals 12 185.29 15.44
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> options(op) # reset to previous
>
>
>
>
>
> dev.off()
null device
1
>