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.