Mauchly's Test of Sphericity
Tests whether a Wishart-distributed covariance matrix (or transformation thereof) is proportional to a given matrix.
mauchly.test(object, ...) "mauchly.test"(object, ...) "mauchly.test"(object, Sigma = diag(nrow = p), T = Thin.row(proj(M) - proj(X)), M = diag(nrow = p), X = ~0, idata = data.frame(index = seq_len(p)), ...)
- object of class
- matrix to be proportional to.
- transformation matrix. By default computed from
- formula or matrix describing the outer projection (see below).
- formula or matrix describing the inner projection (see below).
- data frame describing intra-block design.
- arguments to be passed to or from other methods.
Mauchly's test test for whether a covariance matrix can be assumed to be proportional to a given matrix.
This is a generic function with methods for classes
The basic method is for objects of
SSD the method for
mlm objects just extracts the
SSD matrix and invokes the corresponding method with the same options
T argument is used 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
T can be given directly or specified as
the difference between two projections onto the spaces spanned by
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
The common use of this test is in repeated measurements designs, with
X = ~1. This is almost, but not quite the same as testing for
compound symmetry in the untransformed covariance matrix.
Notice that the defaults involve
p, which is calculated
internally as the dimension of the SSD matrix, and a couple of hidden
functions in the stats namespace, namely
calculates projection matrices from design matrices or model formulas
Thin.row which removes linearly dependent rows from a
matrix until it has full row rank.
The p-value differs slightly from that of SAS because a second order term is included in the asymptotic approximation in R.
T. W. Anderson (1958). An Introduction to Multivariate Statistical Analysis. Wiley.
utils::example(SSD) # Brings in the mlmfit and reacttime objects ### traditional test of intrasubj. contrasts mauchly.test(mlmfit, X = ~1) ### tests using intra-subject 3x2 design idata <- data.frame(deg = gl(3, 1, 6, labels = c(0,4,8)), noise = gl(2, 3, 6, labels = c("A","P"))) mauchly.test(mlmfit, X = ~ deg + noise, idata = idata) mauchly.test(mlmfit, M = ~ deg + noise, X = ~ noise, idata = idata)