anova.mlm
Comparisons between Multivariate Linear Models
Compute a (generalized) analysis of variance table for one or more multivariate linear models.
 Keywords
 multivariate, models, regression
Usage
"anova"(object, ..., test = c("Pillai", "Wilks", "HotellingLawley", "Roy", "Spherical"), Sigma = diag(nrow = p), T = Thin.row(proj(M)  proj(X)), M = diag(nrow = p), X = ~0, idata = data.frame(index = seq_len(p)), tol = 1e7)
Arguments
 object
 an object of class
"mlm"
.  ...
 further objects of class
"mlm"
.  test
 choice of test statistic (see below). Can be abbreviated.
 Sigma
 (only relevant if
test == "Spherical"
). Covariance matrix assumed proportional toSigma
.  T
 transformation matrix. By default computed from
M
andX
.  M
 formula or matrix describing the outer projection (see below).
 X
 formula or matrix describing the inner projection (see below).
 idata
 data frame describing intrablock design.
 tol
 tolerance to be used in deciding if the residuals are
rankdeficient: see
qr
.
Details
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 PillaiBartlett statistic is
recommended by Hand and Taylor (1987). See
summary.manova
for further details.
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 GreenhouseGeisser,
respectively HuynhFeldt, epsilons are given and adjusted $F$ tests are
performed.
It is common to transform the observations prior to testing. This
typically involves
transformation to intrablock differences, but more complicated
withinblock 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
).
As with anova.lm
, all test statistics use the SSD matrix from
the largest model considered as the (generalized) denominator.
Contrary to other anova
methods, the intercept is not excluded
from the display in the singlemodel case. When contrast
transformations are involved, it often makes good sense to test for a
zero intercept.
Value

An object of class
"anova"
inheriting from class "data.frame"
Note
The HuynhFeldt epsilon differs from that calculated by SAS (as of v.\ifelse{latex}{\out{~}}{ } 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.
References
Hand, D. J. and Taylor, C. C. (1987) Multivariate Analysis of Variance and Repeated Measures. Chapman and Hall.
See Also
Examples
library(stats)
require(graphics)
utils::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 intrasubject 3x2 design
idata < data.frame(deg = gl(3, 1, 6, labels = c(0, 4, 8)),
noise = gl(2, 3, 6, labels = c("A", "P")))
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" )
f < factor(rep(1:2, 5)) # bogus, just for illustration
mlmfit2 < update(mlmfit, ~f)
anova(mlmfit2, mlmfit, mlmfit0, X = ~1, test = "Spherical")
anova(mlmfit2, X = ~1, test = "Spherical")
# onemodel form, eqiv. to previous
### There seems to be a strong interaction in these data
plot(colMeans(reacttime))