R'de GARCH Modelleri
Kris Boudt
Professor of finance and econometrics


ugarchroll nesnesine uygulanan quantile() yöntemi.ugarchspec(): Kullanılacak GARCH modelini belirtin
garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
ugarchroll(): GARCH modelini yuvarlanan örneklerde tahmin edin
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500,
refit.window = "moving", refit.every = 100)
quantile(): Tahmin edilen çeyreği hesaplayın
garchVaR <- quantile(garchroll, probs = 0.05)
Başka bir kayıp olasılığı seçebilirsiniz: %1 ve %2,5 de yaygındır
actual <- xts(as.data.frame(garchroll)$Realized, time(garchVaR))
VaRplot(alpha = 0.05, actual = actual, VaR = garchVaR)

Gerçek getiri, tahmin edilen riske maruz değerden küçük olduğunda bir VaR aşılımı oluşur: $ R_t \ < {VaR}_t$.
VaR aşılım sıklığına VaR kapsamı denir.
# S&P 500 getirileri ve %5 olasılık düzeyi için kapsam hesabı
mean(actual < garchVaR)
0.05159143
distribution.model = "std", distribution.model = "sstd" yerine:
garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "std")
Yuvarlanan tahmin ve %5 VaR öngörüsü:
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500,
refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # 0.05783233 döndürür
variance.model = list(model = "sGARCH")
şunun yerine
variance.model = list(model = "gjrGARCH"):
garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "sGARCH"),
distribution.model = "std")
Yuvarlanan tahmin ve %5 VaR öngörüsü:
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500,
refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # 0.06074475 döndürür
refit.every = 1000
şunun yerine
refit.every = 100:
garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "sGARCH"),
distribution.model = "std")
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500,
refit.window = "moving", refit.every = 1000)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # 0.06199293 döndürür
R'de GARCH Modelleri