anova.mlm {stats}R Documentation

Comparisons between multivariate linear models


Compute gereralized analysis of variance table for a list of multivariate linear models. At least two models must be given.


## S3 method for class 'mlm'
anova.mlm(object, ...,
   test = c("Pillai", "Wilks", "Hotelling-Lawley", "Roy", " Spherical"),
   Sigma = diag(nrow = p),
   T = Thin.row(proj(M) - proj(X)), M = diag(nrow = p), X = ~0,
   idata = data.frame(index = seq(length = p)))


object An object of class mlm
... Further objects of class mlm
test Choice of test statistic (se below)
Sigma (Only relevant if test=="Spherical"). Covariance matrix assumed proportional to Sigma
T Transformation matrix. By default computed from M and X
M Formula or matrix describing the outer projection (see below)
X Formula or matrix describing the inner projection (see below)
idata Data frame describing intra-block design


The anova.mlm method uses either a multivariate test statistic for the summary table, or a test based on sphericity assumptions (i.e. that the covariance is proportional to a given matrix).

For the multivariate test, Wilks' statistic is most popular in the literature, but the default Pillai-Bartlett statistic is recommended by Hand and Taylor (1987).

For the "Spherical" test, proportionality is usually with the identity matrix but a different matrix can be specified using Sigma). Corrections for asphericity known as the Greenhouse-Geisser, respectively Huynh-Feldt, epsilons are given and adjusted F tests are performed.

It is common to transform the observations prior to testing. This typically involves transformation to intra-block differences, but more complicated within-block designs can be encountered, making more elaborate transformations necessary. A transformation matrix T can be given directly or specified as the difference between two projections onto the spaces spanned by M and X, which in turn can be given as matrices or as model formulas with respect to idata (the tests will be invariant to parametrization of the quotient space M/X).

Similar to anova.lm all test statistics use the SSD matrix from the largest model considered as the (generalized) denominator.


An object of class "anova" inheriting from class "data.frame"


The Huynh-Feldt epsilon differs from that calculated by SAS (as of v. 8.2) except when the DF is equal to the number of observations minus one. This is believed to be a bug in SAS, not in R.


Hand, D. J. and Taylor, C. C. (1987) Multivariate Analysis of Variance and Repeated Measures. Chapman and Hall.

See Also



example(SSD) # Brings in the mlmfit and reacttime objects

mlmfit0 <- update(mlmfit,~0)

### Traditional tests of intrasubj. contrasts
## Using MANOVA techniques on contrasts:
anova(mlmfit, mlmfit0, X=~1)

## Assuming sphericity
anova(mlmfit, mlmfit0, X=~1, test="Spherical") 

### tests using intra-subject 3x2 design
idata <- data.frame(deg=gl(3,1,6,labels=c(0,4,8)),

anova(mlmfit, mlmfit0, X = ~ deg + noise, idata = idata, test = "Spherical")
anova(mlmfit, mlmfit0, M = ~ deg + noise, X = ~ noise, idata = idata,
          test="Spherical" )
anova(mlmfit, mlmfit0, M = ~ deg + noise, X = ~ deg, idata = idata,
          test="Spherical" )

### There seems to be a strong interaction in these data

[Package stats version 2.1.0 Index]