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 |
normalize |
Logical, indicating whether the resulting matrix is divided by |
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 of size
as
, where
is the centered
-flattening of
and
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 .
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
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)