ugarchfit-methods {rugarch}R Documentation

function: Univariate GARCH Fitting

Description

Method for fitting a variety of univariate GARCH models.

Usage

ugarchfit(spec, data, out.sample = 0, solver = "solnp", solver.control = list(), 
fit.control = list(stationarity = 1, fixed.se = 0, scale = 0), ...)

Arguments

data

A univariate data object. Can be a numeric vector, matrix, data.frame, zoo, xts, timeSeries, ts or irts object.

spec

A univariate GARCH spec object of class uGARCHspec.

out.sample

A positive integer indicating the number of periods before the last to keep for out of sample forecasting (see details).

solver

One of either “nlminb”, “solnp”, “lbfgs”, “gosolnp” or “nloptr”.

solver.control

Control arguments list passed to optimizer.

fit.control

Control arguments passed to the fitting routine. Stationarity explicitly imposes the variance stationarity constraint during optimization. The fixed.se argument controls whether standard errors should be calculated for those parameters which were fixed (through the fixed.pars argument of the ugarchspec function). The scale parameter controls whether the data should be scaled before being submitted to the optimizer.

...

.

Details

The GARCH optimization routine first calculates a set of feasible starting points which are used to initiate the GARCH recursion. The main part of the likelihood calculation is performed in C-code for speed.
The out.sample option is provided in order to carry out forecast performance testing against actual data. A minimum of 5 data points are required for these tests. If the out.sample option is positive, then the routine will fit only N - out.sample (where N is the total data length) data points, leaving out.sample points for forecasting and testing using the forecast performance measures. In the ugarchforecast routine the n.ahead may also be greater than the out.sample number resulting in a combination of out of sample data points matched against actual data and some without, which the forecast performance tests will ignore.
The “gosolnp” solver allows for the initialization of multiple restarts of the solnp solver with randomly generated parameters (see documentation in the Rsolnp-package for details of the strategy used). The solver.control list then accepts the following additional (to the solnp) arguments: “n.restarts” is the number of solver restarts required (defaults to 1), “parallel” and “parallel.control” for use of the parallel functionality, “rseed” is the seed to initialize the random number generator, and “n.sim” is the number of simulated parameter vectors to generate per n.restarts.

Value

A uGARCHfit object containing details of the GARCH fit.

Note

The nloptr solver takes the following options in the solver.control list:

ftol_rel function value relative tolerance default: 1e-8
xtol_rel parameter value relative tolerance default: 1e-6
maxeval maximum function evaluations default: 25000
print_level trace level default: 1
solver the nloptr solver to use default: 1 (‘

SBPLX’

).

The solver option for nloptr has 10 different choices (1:10), which are 1:‘COBYLA’, 2:‘BOBYQA’, 3:‘PRAXIS’, 4:‘NELDERMEAD’, 5:‘SBPLX’, 6:‘AUGLAG’+‘COBYLA’, 7:‘AUGLAG’+‘BOBYQA’, 8:‘AUGLAG’+‘PRAXIS’, 9:‘AUGLAG’+‘NELDERMEAD’ and 10:‘AUGLAG’+‘SBPLX’. As always, your mileage will vary and care should be taken on the choice of solver, tuning parameters etc. If you do use this solver try 9 or 10 first.

Author(s)

Alexios Ghalanos

See Also

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

Examples

# Basic GARCH(1,1) Spec
data(dmbp)
spec = ugarchspec()
fit = ugarchfit(data = dmbp[,1], spec = spec)
fit
coef(fit)
head(as.data.frame(fit))
#plot(fit,which="all")
# in order to use fpm (forecast performance measure function)
# you need to select a subsample of the data:
spec = ugarchspec()
fit = ugarchfit(data = dmbp[,1], spec = spec, out.sample=100)
forc = ugarchforecast(fit, n.ahead=100)
# this means that 100 data points are left from the end with which to
# make inference on the forecasts
fpm(forc)

[Package rugarch version 1.0-10 Index]