mModeAutoCovariance {tensorBSS}R Documentation

The m-Mode Autocovariance Matrix

Description

Estimates the m-mode autocovariance matrix from an array of array-valued observations with the specified lag.

Usage

mModeAutoCovariance(x, m, lag, center = TRUE, normalize = 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 autocovariance matrix is to be computed.

lag

The lag with respect to which the autocovariance matrix is to be computed.

center

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

normalize

Logical, indicating whether the resulting matrix is divided by p_1 ... p_{m-1} p_{m+1} ... p_r or not. Default is TRUE.

Details

The m-mode autocovariance matrix provides a higher order analogy for the ordinary autocovariance matrix of a random vector and is computed for a random tensor X_t of size p_1 \times p_2 \times \ldots \times p_r as Cov_{m \tau}(X_t) = E(X_t^{(m)} X_{t+\tau}^{(m)T})/(p_1 \ldots p_{m-1} p_{m+1} \ldots p_r), where X_t^{(m)} is the centered m-flattening of X_t and \tau is the desired lag. The algorithm computes the estimate of this based on the sample x.

Value

The m-mode autocovariance matrix of x with respect to lag having the size p_m \times p_m.

Author(s)

Joni Virta

References

Virta, J. and Nordhausen, K., (2017), Blind source separation of tensor-valued time series, Signal Processing, 141, 204-216, doi: 10.1016/j.sigpro.2017.06.008

See Also

mModeCovariance

Examples

n <- 1000
S <- t(cbind(as.vector(arima.sim(n = n, list(ar = 0.9))),
             as.vector(arima.sim(n = n, list(ar = -0.9))),
             as.vector(arima.sim(n = n, list(ma = c(0.5, -0.5)))),
             as.vector(arima.sim(n = n, list(ar = c(-0.5, -0.3)))),
             as.vector(arima.sim(n = n, list(ar = c(0.5, -0.3, 0.1, -0.1), ma=c(0.7, -0.3)))),
             as.vector(arima.sim(n = n, list(ar = c(-0.7, 0.1), ma = c(0.9, 0.3, 0.1, -0.1))))))
dim(S) <- c(3, 2, n)

mModeAutoCovariance(S, m = 1, lag = 1)
mModeAutoCovariance(S, m = 1, lag = 4)

[Package tensorBSS version 0.3.8 Index]