[R-SIG-Finance] Estimating parameters of asymmetric dynamic conditional correlation (aDCC)

Sachin Kuruvithadam sacios at hotmail.it
Wed Jul 20 16:04:02 CEST 2016


I'm only interested in the second stage of the DCC estimation process, because I've already filtered the residuals from the original returns and obtained the standardized residuals from the first stage, which I then "transform" (that's why I can't use the full DCC model in the rmgarch package). Having these Txd data matrix (T=observations, d=dimension), I want to estimate the parameters of the aDCC as defined in "Asymmetric Dynamics in the Correlations of Global Equity and Bond Returns" (Cappiello, Engle & Sheppard, 2006), i.e.


Q_t = (1-\alpha-\beta)\bar{Q} - \gamma \bar{N} + \alpha z_{t-1}z_{t-1}' + \beta Q_{t-1} +\gamma n_{t-1}n_{t-1}'


where Q_t is a proxy process, R_t is the correlation matrix, z_t is a matrix with vectors (z_1,...,z_d), n_t=1_{z_t<0} z_t is the asymmetric innovation, and \bar{N}=E[n_t n_t'].


Here's an example to play with R:


#data for example
library(rmgarch)
data(dji30retw)
Dat = dji30retw[, 1:6, drop = FALSE]

#specify garch specification (the given parameters come from previous analysis)
models <- list()
for (i in 1:6){
models[[i]]=ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1),
                                            submodel = NULL, external.regressors = NULL, variance.targeting = TRUE),
                      mean.model = list(armaOrder = c(0,0), include.mean = FALSE, archm = FALSE,
                                        archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE),
                      distribution.model = "norm", start.pars = list(), fixed.pars = list(alpha1=8.81e-02,
                                                                                          beta1=9.41e-01 ,
                                                                                          gamma1=-8.46e-02,
                                                                                          omega=5.016982e-07))
}

#by filtering data with the specification, I create 1-step ahead volatility forecast
filter <- list()
for (i in 1:6){
  filter[[i]]=ugarchfilter(models[[i]],Dat[,i])
}

#standardized residuals (1141 x 6)
st.res <- matrix(ncol=6, nrow=1141)
for (i in 1:6){
  st.res[,i]=residuals(filter[[i]])/sigma(filter[[i]])
}


As I said I'm not really working with GARCH standardized residuals, but if someone can explain how to estimate the aDCC parameters with given data I'd appreciate it very much.


	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list