時間序列

如何在 R 中估計 Engle 的非對稱 DCC 模型?

  • August 10, 2016

我有一個 $ N x d $ 標準化殘差矩陣,我想估計參數 $ \alpha $ , $ \beta $ 和 $ \gamma $ 通常動態條件相關模型(Engle, 2002) 的不對稱版本(Cappiello, Engle, Sheppard, 2006 ):

$$ 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}’ $$ $$ R_{ij,t}=\frac{Q_{ij,t}}{ \sqrt{Q_{ii,t}Q_{jj,t}}} $$ 在哪裡 $ Q_t $ 是一個代理程序, $ R_t $ 相關矩陣, $ z_t $ 帶有向量的矩陣 $ [z_1, …, z_d] $ , $ n_t $ = $ I_{{z_t<0}}z_t $ 不對稱創新,以及 $ \bar{N}=E[n_t n_t’]=T^{-1}\sum_{t=1}^T n_tn_t’ $ .

我想將樣本上的**“經驗”共變異數矩陣設置為****起始值**,即作為估計的滯後代理 $ Q_2 $ , IE

$$ Cov(z)=Q_1 $$ 並作為“真正的”無條件共變異數矩陣,即 $$ Cov(z)=\bar{Q} $$ 並估計如何 $ Q_{t+1} $ 預測取決於過去 $ Q_t $ 和過去的認識 $ z_tz_t’ $ . **問題:**如何在 R 中實現這樣的估計過程而不必指定單獨的 GARCH 模型?我已經有了標準化的殘差,因此我不需要單變數 GARCH。

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

#specify garch specification (the given parameters come from previous analysis)
models &lt;- 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 &lt;- list()
for (i in 1:6){
 filter[[i]]=ugarchfilter(models[[i]],Dat[,i])
}

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

假設st.res我正在處理的矩陣是,我將如何繼續估計所需的參數?如果有人能解釋如何用給定的數據估計 aDCC 參數,我將不勝感激。

R 中的“rmgarch”包需要在可以擬合 DCC(或不對稱 DCC,aDCC)之前指定單變數 GARCH 模型。解決方法是指定基本上“什麼都不做”的模型,例如 GARCH模型 $ \alpha=0.00001 $ 和 $ \beta=0.99999 $ 和以無條件變異數為目標的變異數。這些模型將產生大致恆定的條件變異數,因此它們的影響可以忽略不計。我以前做過,效果很好。

引用自:https://quant.stackexchange.com/questions/28161