Tests whether a Wishart-distributed covariance matrix (or transformation thereof) is proportional to a given matrix.

```
mauchly.test(object, ...)
# S3 method for mlm
mauchly.test(object, ...)
# S3 method for SSD
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

object of class `SSD`

or `mlm`

.

Sigma

matrix to be proportional to.

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.

…

arguments to be passed to or from other methods.

An object of class `"htest"`

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 `"mlm"`

and
`"SSD"`

.

The basic method is for objects of
class `SSD`

the method for `mlm`

objects just extracts the
SSD matrix and invokes the corresponding method with the same options
and arguments.

The `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
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`

).

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 `proj`

which
calculates projection matrices from design matrices or model formulas
and `Thin.row`

which removes linearly dependent rows from a
matrix until it has full row rank.

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)