Learn R Programming

rugarch (version 1.0-3)

ugarchboot-methods: function: Univariate GARCH Forecast via Bootstrap

Description

Method for forecasting the GARCH density based on a bootstrap procedures (see details and references).

Usage

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

Arguments

fitORspec
Either a univariate GARCH fit object of class uGARCHfit or alternatively a univariate GARCH specification object of class uGARCHspec with valid parameters supplied via the
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.a
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 ugarchfit method).
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.
...
.

Value

  • A uGARCHboot object containing details of the GARCH bootstrapped forecast density.

Details

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.

References

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.

See Also

For specification ugarchspec, fitting ugarchfit, filtering ugarchfilter, forecasting ugarchforecast, simulation ugarchsim, rolling forecast and estimation ugarchroll, parameter distribution and uncertainty ugarchdistribution.

Examples

Run this code
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))

Run the code above in your browser using DataLab