aov {stats} | R Documentation

## Fit an Analysis of Variance Model

### Description

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.

### See Also

`lm`, `summary.aov`, `replications`, `alias`, `proj`, `model.tables`, `TukeyHSD`

### 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) )
    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

[Package stats version 3.3.2 Index]