ForeCA (version 0.2.4)

foreca.EM.one_weightvector: EM-like algorithm to estimate optimal ForeCA transformation

Description

foreca.EM.one_weightvector finds the optimal weightvector \(\mathbf{w}^*\) that gives the most forecastable signal \(y_t^* = \mathbf{U}_t \mathbf{w}^*\) using an EM-like algorithm (see References).

Usage

foreca.EM.one_weightvector(U, f.U = NULL, spectrum.control = list(),
  entropy.control = list(), algorithm.control = list(),
  init.weightvector = initialize_weightvector(num.series = ncol(U), method =
  "rnorm"), ...)

Arguments

U

a \(T \times K\) array with T observations from the \(K\)-dimensional whitened (whiten) time series \(\mathbf{U}_t\). Can be a matrix, data.frame, or a multivariate ts object.

f.U

multivariate spectrum of class 'mvspectrum' with normalize = TRUE.

spectrum.control

list; control settings for spectrum estimation. See complete_spectrum_control for details.

entropy.control

list; control settings for entropy estimation. See complete_entropy_control for details.

algorithm.control

list; control settings for any iterative ForeCA algorithm. See complete_algorithm_control for details.

init.weightvector

numeric; starting point \(\mathbf{w}_0\) for several iterative algorithms. By default it uses a (normalized) random vector from a standard Normal distribution (see initialize_weightvector).

...

other arguments passed to mvspectrum

Value

A list with useful quantities like the optimal weighvector, the corresponding signal, and its forecastability.

References

Goerg, G. M. (2013). “Forecastable Component Analysis”. Journal of Machine Learning Research (JMLR) W&CP 28 (2): 64-72, 2013. Available at jmlr.org/proceedings/papers/v28/goerg13.html.

See Also

foreca.one_weightvector, foreca.EM-aux

Examples

Run this code
# NOT RUN {
XX <- diff(log(EuStockMarkets)[100:200,]) * 100
one.weight <- foreca.EM.one_weightvector(whiten(XX)$U, 
                                         spectrum.control = 
                                            list(method = "wosa"))
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab