ugarchroll(spec, data, n.ahead = 1, forecast.length = 500,
n.start = NULL, refit.every = 25, refit.window = c("recursive", "moving"),
window.size = NULL, solver = "hybrid", fit.control = list(),
solver.control = list(), calculate.VaR = TRUE, VaR.alpha = c(0.01, 0.05),
cluster = NULL, keep.coef = TRUE, ...)
makeCluster
from the parallel
package. If it is not NULL, then this will be used for parallel estimation
of the refits (remember to stop the cluster on completion).uGARCHroll
.refit.every
determines every how many periods the model is
re-estimated. Given a dataset of length N, it is possible to choose either
how many periods from the end to use for out of sample forecasting (using the
forecast.length option), or the starting point for initializing the rolling
forecast (and using all the data after that for the out of sample forecast).
Only rolling 1-ahead forecasts are supported spanning the dataset, which should
be useful for backtesting models. Anything more complicated should be wrapped by
the user by making use of the underlying functions in the package.
The function has 2 main methods for viewing the data, a standard plot method and
a report methods (see class uGARCHroll
for details on
how to use these methods).
In case of no-convergence in some of all the windows, a new method called
resume
now allows to pass the returned (non-converged) object with
new solver and control parameters to be re-estimated (only the non-converged
windows are re-estimated).
Parallel functionality is now based entirely on the parallel package, and it is
up to the user to pass a cluster object, and then stop it once the routine is
completed.ugarchspec
, fitting ugarchfit
,
filtering ugarchfilter
, forecasting ugarchforecast
,
simulation ugarchsim
, parameter distribution and uncertainty
ugarchdistribution
, bootstrap forecast ugarchboot
.data(sp500ret)
spec = ugarchspec(distribution.model = "std")
mod = ugarchroll(spec, data = sp500ret, n.ahead = 1,
n.start = 1000, refit.every = 100, refit.window = "moving",
solver = "hybrid", fit.control = list(),
calculate.VaR = TRUE, VaR.alpha = c(0.01, 0.025, 0.05),
keep.coef = TRUE)
report(sp500.bktest, type="VaR", VaR.alpha = 0.01, conf.level = 0.95)
report(sp500.bktest, type="fpm")
Run the code above in your browser using DataLab