Last data update: 2014.03.03

R: Generalized FOBI
gFOBIR Documentation

Generalized FOBI

Description

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

B^ij_k(Y) = (1/(T - k))*sum[Y_(t + k) Y_t' E^ij Y_t Y_(t + k)'],

where t = 1, …, T, and then

B_k(Y) = sum(B^ii_k(Y)),

for i = 1, …, p.

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

Results