The gJADE (generalized Joint Approximate Diagonalization of Eigenmatrices) method for blind source separation of 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.
gJADE(X, …)# S3 method for default
gJADE(X, k = 0:12, eps = 1e-06, maxiter = 100, method = c("frjd", "rjd"),
na.action = na.fail, weight = NULL, ordered = FALSE,
acfk = NULL, original = TRUE, alpha = 0.05, …)
# S3 method for ts
gJADE(X, …)
# S3 method for xts
gJADE(X, …)
# S3 method for zoo
gJADE(X, …)
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
.
Convergence tolerance.
The maximum number of iterations.
A function which indicates what should happen when the data contain 'NA's. Default is to fail.
A vector of length k to give weight to the different matrices in joint diagonalization. If NULL, all matrices have equal weight.
Whether to order components according to their volatility. Default is FALSE
.
A vector of lags to be used in testing the presence of serial autocorrelation. Applicable only if ordered = TRUE
.
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
.
Alpha level for linear correlation detection. Default is 0.05.
Further arguments to be passed to or from methods.
A list of class 'bssvol', inheriting from class 'bss', containing the following components:
The estimated unmixing matrix. If ordered = TRUE
, the rows are ordered according to the order of the components.
The vector of the used lags.
The estimated 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 original = FALSE
, the sources with linear autocorrelation are replaced by their ARMA residuals.
The mean vector of X
.
The ordered original estimated sources as time series object standardized to have mean 0 and unit variances. Returned only if original = FALSE
.
The ARMA fits for the components with linear autocorrelation.
A logical vector. Is TRUE if ARMA fit was done to the corresponding component.
The value of the modified Ljung-Box test statistic for each component.
p-value based on the modified Ljung-Box test statistic for each component.
The value of the volatility clustering test statistic.
p-value based on the volatility clustering test statistic.
Assume that a \(p\)-variate \({\bf Y}\) with \(T\) observations is whitened, i.e. \({\bf Y}={\bf S}^{-1/2}({\bf X}_t - \frac{1}{T}\sum_{t=1}^T {\bf X}_{t})\), for \(t = 1, \ldots, T\), where \({\bf S}\) is the sample covariance matrix of \({\bf X}\). The matrix \({\bf \widehat{C}}^{ij}_k({\bf Y})\) is of the form
$${\bf \widehat{C}}^{ij}_k({\bf Y}) = {\bf \widehat{B}}^{ij}_k({\bf Y}) - {\bf S}_k({\bf Y}) ({\bf E}^{ij} + {\bf E}^{ji}) {\bf S}_k({\bf Y})' - \textrm{trace}({\bf E}^{ij}) {\bf I}_p,$$
for \(i, j = 1, \ldots, p\), where \({\bf S}_k({\bf Y})\) is the lagged sample covariance matrix of \({\bf Y}\) for lag \(k = 1, \ldots, K\), \({\bf E}^{ij}\) is a matrix where element \((i,j)\) equals to 1 and all other elements are 0, \({\bf I}_p\) is an identity matrix of order \(p\) and \({\bf \widehat{B}}^{ij}_k({\bf Y})\) is as in gFOBI
.
The algorithm finds an orthogonal matrix \({\bf U}\) by maximizing $$\sum_{i = 1}^p \sum_{j = 1}^p \sum_{k = 0}^K ||diag({\bf U \widehat{C}}^{ij}_k({\bf Y}) {\bf U}')||^2.$$ where \(k = 1, \ldots, K\). The final unmixing matrix is then \({\bf W} = {\bf US}^{-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
.
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
# NOT RUN {
if(require("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
}
# }
Run the code above in your browser using DataLab