cgarchfit-methods: function: Copula-GARCH Fit

Description Usage Arguments Details Value Note Author(s) Examples

Description

Method for creating a Copula-GARCH fit object.

Usage

1
2
3
4
cgarchfit(spec, data, spd.control = list(lower = 0.1, upper = 0.9, type = "pwm", kernel = "epanech"), 
fit.control = list(eval.se = TRUE, trace = TRUE, stationarity = TRUE), solver = "solnp", 
solver.control = list(), out.sample = 0, parallel = FALSE, 
parallel.control = list(pkg = c("multicore", "snowfall"), cores = 2), fit = NULL, VAR.fit = NULL, ...)

Arguments

spec

A cGARCHspec object created by calling ‘cgarchspec’.

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”, “solnp”, “gosolnp” or “lbfgs”.

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 ‘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.

spd.control

If the spd transformation was chosen in the spec, the spd.control passes its arguments to the spd fit routine.

...

.

Details

The Copula-GARCH models implemented can either be time-varying of DCC variety else static with a fixed correlation matrix. The multivariate Normal and Student distributions are used in the construction of the copulas, and 3 transformation methods are available (parametric, semi-parametric, and empirical). For the semi-parametric case (spd), the ‘spd’ package of the author is available to download from r-forge and fits a gaussian kernel in the interior and gpd distribution for the tails (see package for more details). Finally, the static copula allows for the estimation of the correlation matrix either by ML or Kendall method for the multivariate Student, whilst the “ML” method in the the case of the multivariate Normal can be used when standard errors are required and ‘eval.se’ is turned on in the fit.control arguments. For the static Student Copula with Kendall method, irrespective of the solver chosen (which is used for the univariate fits), the “L-BFGS-B” solver from the stat optim function is used since the problem involves the single shape parameter for which it has been found that optim does better in such unidimensional cases. This may be changed in the future to increase flexibility.
Note that the ‘cgarchfit’ 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 cGARCHfit object containing details of the Copula-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 DCC GARCH, GO GARCH 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
## Not run: 
data(dji30ret)
Dat = dji30ret[, 1:3, drop = FALSE]
# Copula-Student (non time varying - Max Likelihood Estimation of Rho)
uspec = ugarchspec(mean.model = list(armaOrder = c(1,0)), variance.model = list(model = "sGARCH"), 
distribution.model = "std")
spec = cgarchspec(uspec = multispec( replicate(3, uspec) ), VAR = TRUE, VAR.opt = list(lag = 1, lag.max = 4, 
lag.criterion = c("AIC", "HQ", "SC", "FPE"), external.regressors = NULL), 
dccOrder = c(1,1), distribution.model = list(copula = c("mvt"), method = c("ML"),
time.varying = FALSE, transformation = "parametric"), start.pars = list(), fixed.pars = list())	
fit1 = cgarchfit(spec, data = Dat, spd.control = list(lower = 0.1, upper = 0.9, type = "pwm", 
kernel = "epanech"), fit.control = list(eval.se = TRUE, trace = TRUE), solver = "solnp")
fit1

## End(Not run)

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