ugarchboot-methods {rugarch} | R Documentation |
Method for forecasting the GARCH density based on a bootstrap procedures (see details and references).
ugarchboot(fitORspec, data = NULL, method = c("Partial", "Full"), n.ahead = 10, n.bootfit = 100, n.bootpred = 500, out.sample = 0, rseed = NA, solver = "solnp", solver.control = list(), fit.control = list(), external.forecasts = list(mregfor = NULL, vregfor = NULL), parallel = FALSE, parallel.control = list(pkg = c("multicore", "snowfall"), cores = 2))
fitORspec |
Either a univariate GARCH fit object of class |
data |
Required if a specification rather than a fit object is supplied. |
method |
Either the full or partial bootstrap (see note). |
n.ahead |
The forecast horizon. |
n.bootfit |
The number of simulation based re-fits used to generate the parameter distribution (i.e the parameter uncertainty). Not relevant for the “Partial” method. |
n.bootpred |
The number of bootstrap replications per parameter distribution per n.ahead forecasts used to generate the predictive density. If this is for the partial method, simply the number of random samples from the empirical distribution to generate per n.ahead. |
out.sample |
Optional. If a specification object is supplied, indicates how many data points to keep for out of sample testing. |
rseed |
A vector of seeds to initialize the random number generator for the resampling with replacement method (if supplied should be equal to n.bootfit + n.bootpred). |
solver |
One of either “nlminb” or “solnp”. |
solver.control |
Control arguments list passed to optimizer. |
fit.control |
Control arguments passed to the fitting routine (as in the |
external.forecasts |
A list with forecasts for the external regressors in the mean and/or variance equations if specified. |
parallel |
Whether to make use of parallel processing on multicore systems. |
parallel.control |
The parallel control options including the type of package for performing the parallel calculations (‘multicore’ for non-windows O/S and ‘snowfall’ for all O/S), and the number of cores to make use of. |
... |
. |
There are two main sources of uncertainty about n.ahead forecasting from GARCH
models, namely that arising from the form of the predictive density and due to
parameter estimation. The bootstrap method considered here, is based on
resampling innovations from the empirical distribution of the fitted GARCH model
to generate future realizations of the series and sigma. The “full” method,
based on the referenced paper by Pascual et al, takes into account parameter
uncertainty by building a simulated distribution of the parameters through
simulation and refitting. This process, while more accurate, is very time
consuming which is why the parallel option (as in the ugarchdistribution
is available and recommended). The “partial” method, only considers
distribution uncertainty and while faster, will not generate prediction
intervals for the sigma 1-ahead forecast for which only the parameter
uncertainty is relevant in GARCH type models.
A uGARCHboot
object containing details of the GARCH
bootstrapped forecast density.
Alexios Ghalanos
Pascual, L., Romo, J. and Ruiz, E. 2004, Bootstrap predictive inference for
ARIMA processes, Journal of Time Series Analysis.
Pascual, L., Romo, J. and Ruiz, E. 2006, Bootstrap prediction for returns and
volatilities in GARCH models, Computational Statistics and Data Analysis.
For specification ugarchspec
, fitting ugarchfit
,
filtering ugarchfilter
, forecasting ugarchforecast
,
simulation ugarchsim
, rolling forecast and estimation ugarchroll
,
parameter distribution and uncertainty ugarchdistribution
.
## Not run: data(dji30ret) spec = ugarchspec(variance.model=list(model="gjrGARCH", garchOrder=c(1,1)), mean.model=list(armaOrder=c(1,1), arfima=FALSE, include.mean=TRUE, archm = FALSE, archpow = 1), distribution.model="std") ctrl = list(tol = 1e-7, delta = 1e-9) fit = ugarchfit(data=dji30ret[, "BA", drop = FALSE], out.sample = 0, spec = spec, solver = "solnp", solver.control = ctrl, fit.control = list(scale = 1)) bootpred = ugarchboot(fit, method = "Partial", n.ahead = 120, n.bootpred = 2000) bootpred # as.data.frame(bootpred, which = "sigma", type = "q", qtile = c(0.01, 0.05)) ## End(Not run)