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

The FixNA (Shi et al., 2009) and FixNA2 (Matilainen et al., 2016) methods for blind source separation problem. It is used in a case of time series with stochastic volatility. These methods are alternatives to vSOBI method.

1 2 3 4 5 6 |

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

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

`eps` |
Convergence tolerance. |

`maxiter` |
Maximum number of iterations. |

`G` |
Function |

`method` |
Method to be used. Choices are |

`...` |
Further arguments to be passed to or from methods. |

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*. The algorithm for method FixNA finds an orthogonal matrix *U* by maximizing

*D_1(U) = sum_k(D_k1(U)) = sum_i(sum_k((1/(T - k))*sum_t[G(u_i' Y_t)*G(u_i' Y_(t + k))])) *

and the algorithm for method FixNA2

*D_2(U) = sum_k(D_k2(U))*

*D_2(U) = sum_k(D_k2(U)) = sum_k(sum_i(|(1/(T - k))*sum_t[G(u_i' Y_t)*G(u_i' Y_(t + k))] - (1/(T - k))^2*sum_t[G(u_i' Y_t)]*sum_t[G(u_i' Y_(t + k))]|)),*

where *i = 1, …, p*, *k = 1, …, K* and *t = 1, …, T*. For function *G(x)* the choices are *x^2* and log(cosh(*x*)).

The algorithm works iteratively starting with `diag(p)`

as an initial value for an orthogonal matrix *U = (u_1, u_2, …, u_p)'*.

Matrix *T_mik* is a partial derivative of *D_mk(U)*, for *m = 1, 2*, with respect to *u_i*.
Then *T_mk = (T_m1k, …, T_mpk)'*, where *p* is the number of columns in *Y*, and *T = sum(T_mk)*.
The update for the orthogonal matrix *U.new = (T_m T_m')^(-1/2)*T_m* is calculated at each iteration step. The algorithm stops when

*||U.new - U.old||*

is less than `eps`

.
The final unmixing matrix is then *W = U S^(-1/2)*.

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

Markus Matilainen

Hyvärinen, A. (2001), *Blind source separation by nonstationarity of variance: A cumulant-based approach*, IEEE Transactions on Neural Networks, 12(6): 1471-1474.

Matilainen, M., Miettinen, J., Nordhausen, K., Oja, H. and Taskinen, S. (2016), *ICA and Stochastic Volatility Models*, Proceedings of the XI International Conference on Computer Data Analysis and Modeling (CDAM'2016), 30–37.

Shi, Z., Jiang, Z. and Zhou, F. (2009), * Blind source separation with nonlinear autocorrelation
and non-gaussianity*, Journal of Computational and Applied Mathematics, 223(1): 908-915.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ```
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
# create a daily time series
X <- ts(cbind(s1, s2, s3) %*% t(A), end = c(2015, 338), frequency = 365.25)
res <- FixNA(X)
res
coef(res)
plot(res)
head(bss.components(res))
MD(res$W, A) # Minimum Distance Index, should be close to zero
``` |

tsBSS documentation built on May 29, 2017, 11:37 p.m.

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.