2
$\begingroup$

I am modelling the volatility spillover between SP500 and the USD/CNY from 2008 to 2018 with a DCC-GARCH(1,1) model as follows:

# univariate normal GARCH(1,1) for each series
garch11.spec = ugarchspec(mean.model = list(armaOrder = c(0,0)), 
                          variance.model = list(garchOrder = c(1,1), 
                                                model = "sGARCH"), 
                          distribution.model = "norm")

# dcc specification - GARCH(1,1) for conditional correlations
dcc.garch11.spec = dccspec(uspec = multispec( replicate(2, garch11.spec) ), 
                           dccOrder = c(1,1), 
                           distribution = "mvnorm")
dcc.garch11.spec

dcc.fit = dccfit(dcc.garch11.spec, data = SP_FX)
dcc.fit

I obtain the residuals:

resid = residuals(dcc.fit)/sd(residuals(dcc.fit))

And test with Ljung-Box:

    > Box.test(resid[,1],lag=1,type="Ljung-Box")

    Box-Ljung test

data:  resid[, 1]
X-squared = 2469.8, df = 1, p-value < 2.2e-16


> Box.test(resid[,2],lag=1,type="Ljung-Box")

    Box-Ljung test

data:  resid[, 2]
X-squared = 11.298, df = 1, p-value = 0.000776

These results are not that encouraging, the null hypothesis is rejected in both cases at a 1% significance level. The results of the DCC-GARCH(1,1) are:

Optimal Parameters
-----------------------------------
                   Estimate  Std. Error    t value Pr(>|t|)
[usdollar].mu     -6.550942    0.008495 -771.16107 0.000000
[usdollar].omega   0.000171    0.000067    2.55112 0.010738
[usdollar].alpha1  0.646702    0.093376    6.92579 0.000000
[usdollar].beta1   0.352295    0.095610    3.68469 0.000229
[sp500].mu        -0.000795    0.000144   -5.52138 0.000000
[sp500].omega      0.000002    0.000001    1.74663 0.080702
[sp500].alpha1     0.159949    0.020985    7.62191 0.000000
[sp500].beta1      0.827351    0.020548   40.26497 0.000000
[Joint]dcca1       0.001306    0.001895    0.68899 0.490827
[Joint]dccb1       0.994451    0.002769  359.07387 0.000000

Information Criteria
---------------------

Akaike       -5.7121
Bayes        -5.6863
Shibata      -5.7122
Hannan-Quinn -5.7027

My question consists of two parts.

  1. If I understand correctly, the Li-Mak test should be used in multivariate cases (see for example: Difference between Ljung Box and McLeod Li Test?). Is there a function within the rmgarch package in R that could run these tests?
  2. As for the test itself, is it (based on the results at hand now) safe to presume that the DCC model fails at modelling the volatility spillovers?
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.