如何在 R 中估計 Engle 的非對稱 DCC 模型?
我有一個 $ 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 <- 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]]) }
假設
st.res
我正在處理的矩陣是,我將如何繼續估計所需的參數?如果有人能解釋如何用給定的數據估計 aDCC 參數,我將不勝感激。
R 中的“rmgarch”包需要在可以擬合 DCC(或不對稱 DCC,aDCC)之前指定單變數 GARCH 模型。解決方法是指定基本上“什麼都不做”的模型,例如 GARCH模型 $ \alpha=0.00001 $ 和 $ \beta=0.99999 $ 和以無條件變異數為目標的變異數。這些模型將產生大致恆定的條件變異數,因此它們的影響可以忽略不計。我以前做過,效果很好。