gFOBI {tsBSS} | R Documentation |
Generalized FOBI
Description
The gFOBI (generalized Fourth Order Blind Identification) method for blind source separation of time series with stochastic volatility. The method is a generalization of FOBI, which is a method designed for iid data.
Usage
gFOBI(X, ...)
## Default S3 method:
gFOBI(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 class 'ts'
gFOBI(X, ...)
## S3 method for class 'xts'
gFOBI(X, ...)
## S3 method for class 'zoo'
gFOBI(X, ...)
Arguments
X |
A numeric matrix or a multivariate time series object of class |
k |
A vector of lags. It can be any non-negative integer, or a vector consisting of them. Default is |
eps |
Convergence tolerance. |
maxiter |
The maximum number of iterations. |
method |
The method to use for the joint diagonalization. The options are |
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 |
acfk |
A vector of lags to be used in testing the presence of serial autocorrelation. Applicable only if |
original |
Whether to return the original components or their residuals based on ARMA fit. Default is |
alpha |
Alpha level for linear correlation detection. Default is 0.05. |
... |
Further arguments to be passed to or from methods. |
Details
Assume that a -variate
with
observations is whitened, i.e.
, for
,
where
is the sample covariance matrix of
. Algorithm first calculates
where , and then
for .
The algorithm finds an orthogonal matrix by maximizing
The final unmixing matrix is then .
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 of class 'bssvol', inheriting from class 'bss', containing the following components:
W |
The estimated unmixing matrix. If |
k |
The vector of the used lags. |
S |
The estimated sources as time series object standardized to have mean 0 and unit variances. If |
MU |
The mean vector of |
If ordered = TRUE
, then also the following components included in the list:
Sraw |
The ordered original estimated sources as time series object standardized to have mean 0 and unit variances. Returned only if |
fits |
The ARMA fits for the components with linear autocorrelation. |
armaeff |
A logical vector. Is TRUE 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)
Markus Matilainen, Klaus Nordhausen
References
Cardoso, J.-F. (1989), Source Separation Using Higher Order Moments, in: Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, 2109–2112.
Matilainen, M., Nordhausen, K. and Oja, H. (2015), New Independent Component Analysis Tools for Time Series, Statistics & Probability Letters, 105, 80–87.
See Also
FOBI
, frjd
, lbtest
, auto.arima
Examples
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 <- gFOBI(X)
res
coef(res)
plot(res)
head(bss.components(res))
MD(res$W, A) # Minimum Distance Index, should be close to zero
}