Description Usage Arguments Details Value Author(s) References See Also Examples

The gFOBI method for blind source separation problem. It is designed for time series with stochastic volatility. The method is a generalization of FOBI, which is a method designed for iid data.

1 2 3 4 5 6 7 8 |

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

`...` |
Other arguments passed on to |

Assume that a *p*-variate *Y* with *T* observations is whitened, i.e. *Y = S^(-1/2)*(X_t - (1/T)*sum_t(X_t))*, for *t = 1, …, T*,
where *S* is the 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)*.

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`

.

A list with class 'bssvol' (inherits from class 'bss') containing the following components:

`W ` |
The estimated unmixing matrix. |

`k ` |
The vector of the used lags. |

`S ` |
The estimated sources as time series object standardized to have mean 0 and unit variances. If |

If `ordered = TRUE`

, then also the following components included in the list:

`fits ` |
The ARMA fits for the components with linear autocorrelation. |

`armaeff ` |
A logical vector. Has value 1 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. |

Markus Matilainen, Klaus Nordhausen

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.

`FOBI`

, `frjd`

, `lbtest`

, `auto.arima`

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

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.