dccfit-methods: function: DCC-GARCH Fit

Description Usage Arguments Details Value Note Author(s) Examples

Description

Method for creating a DCC-GARCH fit object.

Usage

1
2
3
4
dccfit(spec, data, out.sample = 0, solver = "solnp", solver.control = list(), 
fit.control = list(eval.se = TRUE, stationarity = TRUE, scale = TRUE),
parallel = FALSE, parallel.control = list(pkg = c("multicore", "snowfall"), cores = 2), 
fit = NULL, VAR.fit = NULL, ...)

Arguments

spec

A DCCspec object created by calling ‘dccspec’.

data

A multivariate data object as ‘matrix’ or ‘data.frame’.

out.sample

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

solver

Either “nlminb” or “solnp” .

solver.control

Control arguments list passed to optimizer.

fit.control

Control arguments passed to the fitting routine. The ‘eval.se’ option determines whether standard errors are calculated (see details below). The ‘stationarity’ option is for the univariate stage GARCH fitting routine, whilst for the second stage DCC this is be design imposed. The ‘scale’ option is also for the first stage univariate GARCH fitting routine.

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.

fit

(optional) A previously estimated univariate uGARCHmultifit object (see details).

VAR.fit

(optional) A previously estimated VAR list returned from calling the varxfilter function.

...

.

Details

The 2-step DCC estimation fits a GARCH-Normal model to the univariate data and then proceeds to estimate the second step based on the chosen multivariate distribution. Because of this 2-step approach, standard errors are expensive to calculate and therefore the use of parallel functionality, built into both the fitting and standard error calculation routines is key. The switch to turn off the calculation of standard errors through the ‘fit.control’ option could be quite useful in rolling estimation such as in the dccroll routine.
The optional ‘fit’ argument allows to pass your own uGARCHmultifit object instead of having the routine estimate it. This is very useful in cases of multiple use of the same fit and problems in convergence which might require a more hands on approach to the univariate fitting stage. However, it is up to the user to ensure consistency between the ‘fit’ and supplied ‘spec’. Also note that the ‘dccfit’ method will assign to the global environment the uGARCHmultifit once that is estimated in order to allow the routine to be restarted should something go wrong (it should show up as ‘.fitlist’).

Value

A DCCfit object containing details of the DCC-GARCH fit.

Note

There is no check on the VAR.fit list passed to the method so particular care should be exercised so that the same data used in the fitting routine is also used in the VAR filter routine. The ability to pass this list of the pre-calculated VAR model is particularly useful when comparing different models (such as copula GARCH, GOGARCH etc) using the same dataset and VAR method. Though the classical VAR estimation is very fast and may not require this extra step, the robust method is slow and therefore benefits from calculating this only once.

Author(s)

Alexios Ghalanos

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
## Not run: 
data(dji30ret)
Dat = dji30ret[, 1:4, drop = FALSE]
uspec1 = ugarchspec(mean.model = list(armaOrder = c(1,0)), variance.model = list(model = "apARCH"), 
			distribution.model = "norm")
uspec2 = ugarchspec(mean.model = list(armaOrder = c(2,0)), variance.model = list(model = "gjrGARCH"), 
			distribution.model = "norm")
uspec3 = ugarchspec(mean.model = list(armaOrder = c(0,0)), variance.model = list(model = "sGARCH"), 
			distribution.model = "norm")
uspec4 = ugarchspec(mean.model = list(armaOrder = c(1,0)), variance.model = list(model = "sGARCH",
					garchOrder = c(2, 1)), 
			distribution.model = "norm")
uspec = c( uspec1, uspec2, uspec3, uspec4 )
spec = dccspec(uspec = multispec( uspec ), dccOrder = c(1,1), distribution = "mvlaplace")
# fit the model
fit = dccfit(data = Dat, spec = spec, out.sample = 100, solver = "solnp", 
fit.control = list(scale = TRUE, eval.se = TRUE))
# show the fit
fit
# plot(fit)

## End(Not run)

rgarch documentation built on May 2, 2019, 5:22 p.m.