時間序列 - ARCH (GARCH)

ARCH (GARCH) 為時間序列分析中特別為金融交易數據打造的模型,針對金融資料的波動度 (volatility) 不一致性,進行波動度的預測。Robert Fry Engle 在 Econometrica 提出 ARCH 模型,在財務工程領域被廣泛使用,並於 2003 年到諾貝爾獎。而 GARCH 則是廣義的 ARCH 模型,這篇講解 GARCH 的精神並且使用 R 套件 urgarch 做示範。

GARCH 模型

GARCH(p,q) 模型的表示式:

r_t = c_1 + \Sigma_{i=1}^{R} \phi_j r_{t-i} + \Sigma_{j=1}^{M} \phi_i \epsilon_{t-j} +\epsilon_{t}

\epsilon_{t} = u_t \sqrt{h_t}

h_t = k +  \Sigma_{i=1}^{q} G_i h_{t-i} + \Sigma_{i}^{M} A_i \epsilon^{2}_{t-j}

基本上 GARCH 模型就是建立在 ARMA 模型上,並且對 \epsilon_{t}  = u_t \sqrt{h_t} 加上可預測性的假設。

R 套件: rugarch

R 有許多支援計算 garch 模型的套件,而小編推薦使用 rugarch 這個套件。事實上 GARCH 在財務工程領域上取得非常不錯的成績後,學者前仆後繼建立許許多多以 GARCH 為基礎的變形模型,讓模型更加貼近實際的金融交易資料。而 rugarch 包含的 GARCH 變形模型應該算最豐富的套件之一,故推薦這個套件提供大家使用。

R 實作

接下來為 rugarch 的 R 實作練習,小編使用 rugarch 自帶的 sp500ret 資料集,為 S&P 500 從 1987-03-10~2009-01-30 的 Close price log return。

install.packages("rugarch")
require(rugarch)

data(sp500ret)
spec 
show(spec)
fit = ugarchfit(spec, sp500ret[1:1000, , drop = FALSE], solver = 'hybrid')
plot(fit, which = "all")

garch_example

結論

GARCH 對連續資料做波動度 (volatility ) 隨落後資訊期數變化的彈性預測,讓時間序列模型更能有效地預測金融商品或金融市場的風險值,隨著學者們對 GARCH 給予更廣泛貼近實際金融交易情況的假設,讓 GARCH 有一系列的家族,像是 iGARCH, eGARCH, GARCH-M 等等的變化型,投資人不仿挑選一個模型,並且來練習預測,並且控制自己商品的風險。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s