Qualitative correlation or covariance kernel with one input and low-rank correlation.
q1LowRank(factor, rank = 2L, input = "x",
cov = c("corr", "homo", "hete"), intAsChar = TRUE)
An object with class "covQual"
with d = 1
qualitative
input.
A factor with the wanted levels for the covariance kernel object.
The wanted rank, which must be \(\geq 2\) and \(< m\) where \(m\) is the number of levels.
Name of (qualitative) input for the kernel.
Character telling what variance structure will be chosen: correlation with no variance parameter, homoscedastic with one variance parameter or heteroscedastic with \(m\) variance parameters.
Logical. If TRUE
(default), an integer-valued input will be
coerced into a character. Otherwise, it will be coerced into a factor.
The correlation structure involves \((r - 1)(m - r /2)\) parameters. The parameterization of Rapisarda et al is used: the correlation parameters are angles \(\theta_{i,j}\) corresponding to \(1 < i \leq r\) and \(1 \leq j < i\) or to \(r < i \leq m\) and \(1 \leq j < r\). The correlation matrix \(\mathbf{C}\) for the levels, with size \(m\), factors as \(\mathbf{C} = \mathbf{L}\mathbf{L}^\top\) where \(\mathbf{L}\) is a lower-triangular matrix with dimension \(m \times r\) with all its rows having unit Euclidean norm. Note that the diagonal elements of \(\mathbf{L}\) can be negative and correspondingly the angles \(\theta_{i,1}\) are taken in the interval \([0, 2\pi)\) for \(1 < i \leq r\). The matrix \(\mathbf{L}\) is not unique. As explained in Grubišić and Pietersz, the parameterization is surjective: any correlation with rank \(\leq r\) is obtained by choosing a suitable vector of parameters, but this vector is not unique.
Correlation kernels are needed in tensor products because the tensor product of two covariance kernels each with unknown variance would not be identifiable.
Francesco Rapisarda, Damanio Brigo, Fabio Mercurio (2007). "Parameterizing Correlations a Geometric Interpretation". IMA Journal of Management Mathematics, 18(1): 55-73.
Igor Grubišić, Raoul Pietersz (2007). "Efficient Rank Reduction of Correlation Matrices". Linear Algebra and its Applications, 422: 629-653.
The q1Symm
function to create a kernel object for the
full-rank case and corLevLowRank
for the correlation
function.
myFact <- factor(letters[1:8])
myCov <- q1LowRank(factor = myFact, rank = 3)
## corrplot
plot(myCov)
## find the rank using a pivoted Cholesky
chol(covMat(myCov), pivot = TRUE)
Run the code above in your browser using DataLab