R

用 GARCH 估計 VaR 的問題

  • May 12, 2016

我目前正在嘗試弄清楚如何使用 R 中的 rugarch 包來估計風險價值。我得出了一個結果,但這似乎有點過分。這是我的程式碼:

install.packages("PerformanceAnalytics")
install.packages("fGarch")
install.packages("rugarch")
library(fGarch)
library(PerformanceAnalytics)
library(rugarch)

#Daten runterladen
db<- get.hist.quote(instrument = "DB",  start = "2005-11-21",
                 quote = "AdjClose")
sys<- get.hist.quote(instrument = "^STOXX50E",  start = "2005-11-21",
                 quote = "AdjClose")
#Returns
retdb<-diff(log(db))
retsys<-diff(log(sys))
#GARCH-Modell spezifizieren
spec2 = ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,     1), 
                                    submodel = NULL, 
                                    external.regressors = NULL, 
                                    variance.targeting = FALSE),
              mean.model=list(armaOrder=c(1,0)),
              distribution.model="sstd"
              )
#GARCH-Modell fitten
fit<-ugarchfit(spec=spec2,
     data=retdb)
fit2<-ugarchfit(spec=spec2,
          data=retsys)

#var berechnen
var1<-quantile(fit,0.99)
var1sys<-quantile(fit2,0.99)
#plot var
plot(var1)
lines(var1sys,col="red")

這是我得到的圖像(紅色–> Eurostoxx VaR,黑色–> DB VaR):

VaR 德意志銀行 vs. VaR Euro Stoxx

而且,老實說,無論這是否合理,我都缺乏經驗……

在此先感謝,理查德

1)您正在計算“實際”VaR,因為您沒有預測它以查看您的VaR模型是否能夠估計它,而您只是在計算“已經發生”的VaR。要獲得波動率預測(樣本內或樣本外),您可以使用“ugarchforecast”函式。

2)我認為您在分佈的錯誤一側估計了 VaR:您採用 0.99 分位數而不是 0.01 分位數。

  1. 一個更有意義的情節是你的回報系列連同各自的 VaR:在那裡,你可以用眼睛看到它的表現。

4)計算您的 VaR 的失敗次數(返回過程超過您 VaR 的次數)並將其除以觀察次數,以獲得失敗率:它應該接近 0.01(更一般地說,接近所需的覆蓋率水平,比如你的 0.01;其他常見的水平有 0.005、0.05 或 0.1)

5)還有很多其他的測試可以檢查你的模型是否在 VaR 估計中是好的:動態分位數測試、條件和無條件覆蓋測試;其他措施是各種損失函式(例如,公司損失函式),用於比較各種模型的性能。在本工作論文中,您可以找到計算 VaR 的各種技術(也包括 GARCH)與眾多測試和比較方法之間的比較。

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