# 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

1 2 3 4 5 6 |

### Arguments

`X` |
Numeric matrix or multivariate time series object of class |

`k` |
Vector of lags. Lag can be any non-negative integer, or a vector consisting of them. Default is |

`eps` |
Convergence tolerance. |

`maxiter` |
Maximum number of iterations. |

`method` |
Method to use for the joint diagonalization, options are |

`...` |
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

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 <- gFOBI(X)
res
coef(res)
plot(res)
head(bss.components(res))
MD(res$W, A) # Minimum Distance Index, should be close to zero
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.