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

1 | ```
tgFOBI(x, lags = 0: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 mutually independent, 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*.

`tgFOBI`

recovers then based on `x`

the underlying independent time series *S* by estimating the *r* unmixing matrices
*W_1, ..., 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 = 1*, the method reduces to gFOBI and the function calls `gFOBI`

.

If `lags = 0`

the method reduces to `tFOBI`

.

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., (2016), Blind source separation of tensor-valued time series, *submitted*, **???**, ???–???.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ```
library("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)
MD(tgfobi$W[[2]] %x% tgfobi$W[[1]], A2 %x% A1)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.