天天看點

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

在這篇文章中,我們将學習一種在價格序列中建立波動性模型的标準方法,即廣義自回歸條件異方差(GARCH)模型。

價格波動的 GARCH 模型的思想是利用誤差結構的近期實作來預測誤差結構的未來實作。更簡單地說,我們經常看到在高波動性或低波動性時期的聚類,是以我們可以利用近期的波動性來預測近期未來的波動性。

我們将使用SPY價格來說明波動率的模型。下面的圖顯示了SPY收益率。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
  1.  colnames(SPYRet) <- c('SPY')
  2.  SPYRet <- tidy(SPYRet)
  3.  ggplot(SPYRet) +
  4.  geom_line() +
  5.  labs(title = "SPY收益率"
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

這篇文章的首要目标是對價格收益序列的變化的平均值和方差進行模組化。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

接下來,我們将通過兩種常用的方式來顯示收益率的變化方差。這些是繪制價格收益的絕對值。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

或價格收益的平方

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

這兩種情況都是有意義的,因為方差總是一個正數,并且受到偏離平均值的影響。當然這是在我們知道收益序列的平均值為0的情況下。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

在價格資料中,百分比回報率的平均值幾乎都非常接近于0。 如果平均回報率非零,那麼我們可以直接繪制

  1.  add_column( value^2, abs(value))
  2.  ggplot(SPYRet) +
  3.  geom_line() +
  4.  labs(title = "SPY絕對收益值"
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
  1.  ggplot(Ret, aes(y = SquaredReturns) +
  2.  geom_line() +
  3.  labs(title = "SPY平方收益率"
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

波動率的GARCH模型

普通的(GARCH模型有很多變體)GARCH模型如下。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

第一行是為均值模組化的方程。這裡沒有ARMA效應,但如果你發現它們很重要,可以很容易地把它們放進去。隻有一個截距和一個誤差項。接下來的三行将更多的結構放在誤差項上,

第二行為什麼我們要把兩個項相乘來得到ϵt?

要看到這一點,重要的是要牢記這裡的目标。我們正在尋找一個能給我們帶來rSPYt變化方差的模型

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

是以,如果基本收益模型是

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

接下來的步驟依賴于随機變量方差的屬性。具體來說,如果

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

是以,如果我們得到一個εt的模型

考慮GARCH模型中的第二行。

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

請注意 σtσ2ϵ2

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

最後一行是由于

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

估計GARCH模型

下面的代碼使用rugarch R包來估計GARCH(p = 1, q = 1)模型。請注意,p和q表示σ2tϵ2t的滞後數。

第一條指令要求它用model = "sGARCH "指定一個普通的GARCH。它要求它使用ARMA(1, 1)作為收益模型,即armaOrder = c(1, 1), include.mean = TRUE。我們要求它使用N(0,1),distribution.model="norm",模型輸出顯示在 "最優參數 "下。mu、ar1和ma1系數來自均值模型(ARMA(1,1)),omega、alpha1和beta1是來自 

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
  1.  garchspec(variance.m = list(model = "sGARCH", mean.m= list(armaOrder = c(1, 1)
  2.   dist = "norm")
  3.  garchfit
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率

現在讓我們用這個估計的模型來産生滾動預測,即

拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率
  1.  forecast(spec, n.ahead = 1, n.roll = 2499, out = 2500)
  2.  plot(forecast)
拓端資料tecdat|R語言時間序列GARCH模型分析股市波動率