The m-Mode Covariance Matrix

Description

Estimates the m-mode covariance matrix from an array of array-valued observations.

Usage

1
mModeCovariance(x, m, center = TRUE)

Arguments

x

Array of order higher than two with the last dimension corresponding to the sampling units.

m

The mode with respect to which the covariance matrix is to be computed.

center

Logical, indicating whether the observations should be centered prior to computing the covariance matrix. Default is TRUE.

Details

The m-mode covariance matrix provides a higher order analogy for the ordinary covariance matrix of a random vector and is computed for a random tensor X of size p_1 x p_2 x ... x p_r as Cov_m(X) = E(X(m) X(m)^T)/(p_1 ... p_(m-1) p_(m+1) ... p_r), where X(m) is the centered m-flattening of X. The algorithm computes the estimate of this based on the sample x.

Value

The m-mode covariance matrix of x having the size p_m x p_m.

Author(s)

Joni Virta

References

Virta, J., Li, B., Nordhausen, K. and Oja, H., (2016), Independent component analysis for tensor-valued data, submitted, ???, ???–???. Preprint available on ArXiv http://arxiv.org/abs/1602.00879.

See Also

mModeAutoCovariance

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## Generate sample data.
n <- 100
x <- t(cbind(rnorm(n, mean = 0),
             rnorm(n, mean = 1),
             rnorm(n, mean = 2),
             rnorm(n, mean = 3),
             rnorm(n, mean = 4),
             rnorm(n, mean = 5)))
             
dim(x) <- c(3, 2, n)

# The m-mode covariance matrices of the first and second modes
mModeCovariance(x, 1)
mModeCovariance(x, 2)