covStruct
is a formal argument of HLCor
, also handled by fitme
and corrHLfit
, that allows one to specify the correlation structure for different types of random effects, It is an alternative to other ad hoc formal arguments such as corrMatrix
or adjMatrix
. It replaces the deprecated function Predictor(...)
which has served as an interface for specifying the design matrices for random effects in early versions of spaMM
.
It is assumed that the design matrices for the random effects take the form ZL or ZAL where the L factor can be determined from the covStruct
argument (or from the model formula; see Details), the Z factor is determined from the model formula, and the optional A factor is given by the optional "AMatrices"
attribute of covStruct
.
covStruct
is a list
of matrices with names specifying the type of matrix considered: covStruct=list(corrMatrix=<some matrix>)
or covStruct=list(adjMatrix=<some matrix>)
, where the “corrMatrix” or “adjMatrix” labels are used to specify the type of information provided (accordingly, the names can be repeated: covStruct=list(corrMatrix=<.>,corrMatrix=<.>)
).
The covariance structure of a corrMatrix(1|<grouping factor>)
formula term can be specified in two ways (see Examples): either by a correlation matrix factor (covStruct=list(corrMatrix=<some matrix>)
), or by a precision matrix factor Q such that the covariance factor is \(\lambda\)Q\(^{-1}\), using the type name "precision"
: covStruct=list(precision=<some matrix>)
. In this case, an algorithm efficient for sparse precision matrices is used to fit the model.
The function as_precision
can be used to perform the conversion from correlation information to precision factor (using a crude solve() that may not always be efficient).
NULL
list members may be necessary, e.g.
covStruct=list(corrMatrix=<.>,"2"=NULL,corrMatrix=<.>)
)
when correlations matrices are required only for the first and third random effect.
"AMatrices"
is a list of matrices. The names of elements of the list does not matter, but the ith A
matrix, and its row names, should match the ith Z matrix, and its column names. This implies that NULL
list members may be necessary, as for the covStruct
list.