The gFOBI method for blind source separation problem. It is used in case 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 = "frjd", ...)
## S3 method for class 'ts'
gFOBI(X, ...)
Arguments
X
Numeric matrix or multivariate time series object of class ts. Missing values are not allowed.
k
Vector of lags. Lag can be any non-negative integer, or a vector consisting of them. Default is 0:12. If k = 0, this method reduces to FOBI.
eps
Convergence tolerance.
maxiter
Maximum number of iterations.
method
Method to use for the joint diagonalization, options are rjd and frjd. Default is frjd.
...
Other arguments passed on to chosen joint diagonalization method.
Details
Assume that Y has p columns and it is whitened, i.e. Y = S^(-1/2)*(X - (1/T)*sum_t(X_(ti))), where S is a sample covariance matrix of X. Algorithm first calculates
The algorithm finds an orthogonal matrix U by maximizing
sum(||diag(U B_k(Y) U')||^2).
The final unmixing matrix is then W = U S^(-1/2).
Value
A list with class 'bss' containing the following components:
W
The estimated unmixing matrix.
k
The vector of the used lags.
S
Estimated sources as time series object standardized to have mean 0 and unit variances.
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
Examples
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 <- gFOBI(X)
res
coef(res)
plot(res)
head(bss.components(res))
MD(res$W, A) # Minimum Distance Index, should be close to zero