# gJADE: Generalized JADE In tsBSS: Blind Source Separation and Supervised Dimension Reduction for Time Series

## Description

The gJADE method for blind source separation problem. It is designed for time series with stochastic volatility. The method is a generalization of JADE, which is a method for blind source separation problem using only marginal information.

## Usage

 ```1 2 3 4 5 6 7 8``` ```gJADE(X, ...) ## Default S3 method: gJADE(X, k = 0:12, eps = 1e-06, maxiter = 100, method = "frjd", na.action = na.fail, weight = NULL, ordered = FALSE, acfk = NULL, original = TRUE, ...) ## S3 method for class 'ts' gJADE(X, ...) ```

## Arguments

 `X` A numeric matrix or a multivariate time series object of class `ts`. Missing values are not allowed. `k` A vector of lags. It can be any non-negative integer, or a vector consisting of them. Default is `0:12`. If k = 0, this method reduces to `JADE`. `eps` Convergence tolerance. `maxiter` The maximum number of iterations. `method` The method to use for the joint diagonalization. The options are `rjd` and `frjd`. Default is `frjd`. `na.action` A function which indicates what should happen when the data contain 'NA's. Default is to fail. `weight` A vector of length k to give weight to the different matrices in joint diagonalization. If NULL, all matrices have equal weight. `ordered` Whether to order components according to their volatility. Default is `FALSE`. `acfk` A vector of lags to be used in testing the presence of serial autocorrelation. Applicable only if `ordered = TRUE`. `original` Whether to return the original components or their residuals based on ARMA fit. Default is `TRUE`, i.e. the original components are returned. Applicable only if `ordered = TRUE`. `...` Other arguments passed on to `auto.arima` function.

## Details

Assume that a p-variate Y with T observations is whitened, i.e. Y = S^(-1/2)*(X_t - (1/T)*sum_t(X_t)), for t = 1, …, T, where S is the sample covariance matrix of X. The matrix C^ij_k(Y) is of the form

C^ij_k(Y) = B^ij_k(Y) - S_k(Y) (E^ij + E^ji) S_k(Y)' - trace(E^ij)*I,

for i, j = 1, …, p, where S_k(Y) is the lagged sample covariance matrix of Y for lag k = 1, …, K, E^ij is a matrix where element (i,j) equals to 1 and all other elements are 0, I is an identity matrix of order p and B^ij_k(Y) is as in `gFOBI`.

The algorithm finds an orthogonal matrix U by maximizing

sum_i(sum_j (sum_k (||diag(U C^ij_k(Y) U')||^2))),

where k = 1, …, K. The final unmixing matrix is then W = U S^(-1/2).

For `ordered = TRUE` the function orders the sources according to their volatility. First a possible linear autocorrelation is removed using `auto.arima`. Then a squared autocorrelation test is performed for the sources (or for their residuals, when linear correlation is present). The sources are then put in a decreasing order according to the value of the test statistic of the squared autocorrelation test. For more information, see `lbtest`.

## Value

A list with class 'bssvol' (inherits from class 'bss') containing the following components:

 `W ` The estimated unmixing matrix. `k ` The vector of the used lags. `S ` The etimated sources as time series object standardized to have mean 0 and unit variances. If `ordered = TRUE`, then components are ordered according to their volatility.

If `ordered = TRUE`, then also the following components included in the list:

 `fits ` The ARMA fits for the components with linear autocorrelation. `armaeff ` A logical vector. Has value 1 if ARMA fit was done to the corresponding component. `linTS ` The value of the modified Ljung-Box test statistic for each component. `linP ` P-value based on the modified Ljung-Box test statistic for each component. `volTS ` The value of the volatility clustering test statistic. `volP ` P-value based on the volatility clustering test statistic.

## Author(s)

Klaus Nordhausen, Markus Matilainen

## References

Cardoso, J.-F., Souloumiac, A., (1993). Blind Beamforming for Non-Gaussian Signals, in: IEE-Proceedings-F, volume 140, pp. 362–370.

Matilainen, M., Nordhausen, K. and Oja, H. (2015), New Independent Component Analysis Tools for Time Series, Statistics & Probability Letters, 105, 80–87.

`frjd`, `JADE`, `gFOBI`, `lbtest`, `auto.arima`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```library(stochvol) n <- 10000 A <- matrix(rnorm(9), 3, 3) # simulate SV models s1 <- svsim(n, mu = -10, phi = 0.8, sigma = 0.1)\$y s2 <- svsim(n, mu = -10, phi = 0.9, sigma = 0.2)\$y s3 <- svsim(n, mu = -10, phi = 0.95, sigma = 0.4)\$y X <- cbind(s1, s2, s3) %*% t(A) res <- gJADE(X) res coef(res) plot(res) head(bss.components(res)) MD(res\$W, A) # Minimum Distance Index, should be close to zero ```