tgFOBI {tensorBSS}R Documentation

gFOBI for Tensor-Valued Time Series

Description

Computes the tensorial gFOBI for time series where at each time point a tensor of order rr is observed.

Usage

tgFOBI(x, lags = 0:12, maxiter = 100, eps = 1e-06)

Arguments

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 rjd.

eps

Convergence tolerance. Passed on to rjd.

Details

It is assumed that SS is a tensor (array) of size p1×p2××prp_1 \times p_2 \times \ldots \times p_r measured at time points 1,,T1, \ldots, T. The assumption is that the elements of SS are mutually independent, centered and weakly stationary time series and are mixed from each mode mm by the mixing matrix AmA_m, m=1,,rm = 1, \ldots, r, yielding the observed time series XX. In R the sample of XX is saved as an array of dimensions p1,p2,,pr,Tp_1, p_2, \ldots, p_r, T.

tgFOBI recovers then based on x the underlying independent time series SS by estimating the rr unmixing matrices W1,,WrW_1, \ldots, W_r using the lagged fourth joint moments specified by lags. This reliance on higher order moments makes the method especially suited for stochastic volatility models.

If x is a matrix, that is, r=1r = 1, the method reduces to gFOBI and the function calls gFOBI.

If lags = 0 the method reduces to tFOBI.

Value

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 plot.tbss.

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

gFOBI, rjd, tFOBI

Examples

if(require("stochvol")){
  n <- 1000
  S <- t(cbind(svsim(n, mu = -10, phi = 0.98, sigma = 0.2, nu = Inf)$y,
               svsim(n, mu = -5, phi = -0.98, sigma = 0.2, nu = 10)$y,
               svsim(n, mu = -10, phi = 0.70, sigma = 0.7, nu = Inf)$y,
               svsim(n, mu = -5, phi = -0.70, sigma = 0.7, nu = 10)$y,
               svsim(n, mu = -9, phi = 0.20, sigma = 0.01, nu = Inf)$y,
               svsim(n, mu = -9, phi = -0.20, sigma = 0.01, nu = 10)$y))
  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)
  
  tgfobi <- tgFOBI(X)
  
  MD(tgfobi$W[[1]], A1)
  MD(tgfobi$W[[2]], A2) 
  tMD(tgfobi$W, list(A1, A2))
}

[Package tensorBSS version 0.3.8 Index]