Estimating corrected DCC-GARCH model

Share:

Description

This function estimates a corrected Dynamic Conditional Correlation GARCH model.

Usage

1
2
3
4
5
estimateCDCC(inia = NULL, iniA = NULL, iniB = NULL, ini.dcc = NULL, 
      data, model="diagonal", ...)

## S3 method for class 'cdcc'
print(x, ...)

Arguments

inia

a vector of initial values in the GARCH part.

iniA

a square or diagonal matrix of initial values for the ARCH parameter matrix in the GARCH part.

iniB

a square or diagonal matrix of initial values for the GARCH parameter matrix in the GARCH part.

ini.dcc

a vector of length 2 initial parameters for the cDCC part.

data

a data frame or a matrix object containing the variables.

model

a chacacter string setting the GARCH part of the model.

x

an object of class "cdcc".

...

optional arguments. Currently not in use.

Details

This function estimates a corrected Dynamic Conditional Correlation (cDCC-) GARCH model of Aielli (2013), which is a modification of the original DCC-GARCH model of Engle (2002).

The extractor function summary() is available for a "cdcc" class object displaying a table with estimates and inferencial statistics, information criterion and some diagnostic results of the standardized residuals. See summary.cdcc for details.

Estimation of the model is carried out in two steps. The optimization in both steps is implemented by solnp function in Rsolnp package and its outcome is save ‘as is’ in a list component f.stage and s.stage, respectively.

solnp uses a sequencial quadratic programming (SQP) technique to optimize the objective function. See the manual and the references therein for details. During the optimization, positivity and stationarity restrictions are imposed on the parameters.

Rsonlp has a function called gosolnp that generates initial starting values randomly. A logical argument random controlls which function to use in the optimization. The default is random = FALSE meaning that solnp of Rsolnp is used. If random = TRUE, gosolnp is used. It should be noted that optimization takes longer time and may not always be successful when gosolnp is used.

Value

This function returns an S3 class object "cdcc" that is a list with the following components.

f.stage

an output of the first stage optimization from Rsolnp.

s.stage

an output of the second stage optimization from Rsolnp.

model

a chacacter string setting the GARCH part of the model.

method

the optimization method used.

initial

a list with the initial parameter vectors/matrices. The included components are a, A, B, and dcc.par.

data

the original data matrix. Returned as a zoo object.

CDCC

a matrix of the conditional correlations. Each row corresponds to vec(R_t). Returned as a zoo object.

h

a matrix of the conditional variances. Each row corresponds to h_t. Returned as a zoo object.

z

a matrix of the standardized residuals. Each row corresponds to z_t. Returned as a zoo object.

References

Aielli, G.P. (2013), “Dynamic Conditional Correlation: On Properties and Estimation.” Journal of Business and Economic Statistics 31, 282–299.

Engle, R.F. (2002), “Dynamic Conditional Correlation: A Simple Class of Multivariate Generalized Autoregressive Conditional Heteroskedasticity Models.” Journal of Business and Economic Statistics 20, 339–350.

See Also

summary.cdcc, simulateCDCC, plot.cdcc, optim

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
## Not run: 
ndim <- 3
nobs <- 3000

## Setting parameters in the DCC part
a <- 0.05
b <- 0.8

## Setting a correlation matrix
Q <- diag(0, ndim)
Q[lower.tri(Q)] <- c(0.8, 0.3, 0.1)
Q <- Q + t(Q)
diag(Q) <- 1

## setting parameters in the GARCH part
a0 <- c(0.05, 0.07, 0.1)
A <- matrix(c(0.06, 0.0, 0.0, 0.07, 0.08, 0.002, 0.003, 0.0, 0.06), 
    ndim, ndim)
B <- matrix(c(0.75, 0.09, 0.03, 0.001, 0.81, 0.003, 0.001, 0.008, 0.84), 
    ndim, ndim)

## Simulating data
sim.data <- simulateCDCC(a, b, Q, a0, diag(diag(A)), diag(diag(B)), nobs)

## Estimating a cDCC model
garch_cdcc <- estimateCDCC(inia=a0, iniA=diag(diag(A)), iniB=diag(diag(B)), 
    ini.dcc=c(a, b), data=sim.data$eps, model="diagonal")

## Summarizing the results
summary_garch_cdcc <- summary(garch_cdcc)

## Plotting items
plot(garch_cdcc, item="correlation")   # for dynamic conditional correlations
plot(garch_cdcc, item="volatility")    # for volatility (square root of conditional variance)
plot(garch_cdcc, item="std.residuals") # for satandardized residuals
plot(garch_cdcc, item="return")        # for return (original data)

## End(Not run)