Description Usage Arguments Details Value Author(s) References See Also Examples
Computes the tensorial SOBI for time series where at each time point a tensor of order r is observed.
1 | tSOBI(x, lags = 1:12, maxiter = 100, eps = 1e-06)
|
x |
Numeric array of an order at least two. It is assumed that the last dimension corresponds to the time. |
lags |
Vector of integers. Defines the lags used for the computations of the autocovariances. |
maxiter |
Maximum number of iterations. Passed on to |
eps |
Convergence tolerance. Passed on to |
It is assumed that S is a tensor (array) of size p_1 x p_2 x ... x p_r measured at time points 1, ..., T.
The assumption is that the elements of S are uncorrelated, centered and weakly stationary time series and are mixed from each mode
m by the mixing matrix A_m, m= 1, ..., r, yielding the observed time series X. In R the sample of X is saved as an array
of dimensions
p_1, p_2, ..., p_r, T.
tSOBI
recovers then based on x
the underlying uncorrelated time series S by estimating the r unmixing matrices
W_1, ..., W_r using the lagged joint autocovariances specified by lags
.
If x
is a matrix, that is, r = 1, the method reduces to SOBI and the function calls SOBI
.
A list with class 'tbss', inheriting from class 'bss', containing the following components:
S |
Array of the same size as x containing the estimated uncorrelated sources. |
W |
List containing all the unmixing matrices |
Xmu |
The data location. |
datatype |
Character string with value "ts". Relevant for |
Joni Virta
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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)
A1 <- matrix(rnorm(9), 3, 3)
A2 <- matrix(rnorm(4), 2, 2)
X <- tensorTransform(S, A1, 1)
X <- tensorTransform(X, A2, 2)
tsobi <- tSOBI(X)
MD(tsobi$W[[1]], A1)
MD(tsobi$W[[2]], A2)
tMD(tsobi$W, list(A1, A2))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.