← 研究動態
研究2026/05/24 下午06:07

用貝氏 MCMC 重新估計 GJR-GARCH,預測精度真的更好嗎?SPY 20 年資料給出意外答案

波動率預測風險模型蒙地卡羅貝氏推論GARCH 家族

讀者互動

已追蹤瀏覽 0 次,登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

用貝氏 MCMC 重新估計 GJR-GARCH,預測精度真的更好嗎?SPY 20 年資料給出意外答案

一句話結論

我們在 SPY(追蹤 S&P 500 的 ETF)上花了 20 年的日報酬資料,把同一個 GJR-GARCH(1,1) 模型分別用兩種方式估計:傳統的最大概似法(MLE)和貝氏 MCMC(馬可夫鏈蒙地卡羅)。 貝氏方法在點預測上沒有打贏 MLE — QLIKE 評分反而略差 0.12%,差距還在統計上顯著 。如果你只關心「下一天的波動率預測值」,多花的計算成本完全沒有換到更準的數字。但若你想要「波動率預測值的不確定性區間」,貝氏方法仍然是無可取代的工具。

為什麼要做這個實驗

GJR-GARCH 是波動率預測界的老牌主力模型。它在傳統 GARCH(1,1) 之上加了一個 槓桿項 (leverage term),用來捕捉「壞消息對波動的衝擊大於同等大小的好消息」這個著名的不對稱性。學術界從 1993 年 Glosten–Jagannathan–Runkle 提出後,這個模型在股票市場波動率建模上幾乎是預設選項。

實務上估計 GJR-GARCH 通常用 MLE:寫下對數概似函數,丟給最佳化器找參數。這個方法快、收斂可靠、軟體支援完整。但 MLE 有兩個眾所周知的限制:

  •  參數估計只給一個點值 ,沒有提供「這個 α 真正可能落在哪個範圍」的完整資訊。
  •  小樣本下參數可能偏誤 ,特別是在非線性模型裡。

貝氏 MCMC 是另一種思路。它把參數本身當成隨機變數,先設定先驗分佈(priors),用 Metropolis–Hastings 之類的演算法對後驗分佈抽樣,最後得到的不是「一組最佳參數」而是「成千上萬組參數樣本」。從中你可以算後驗均值、後驗中位數、95% 信賴區間,甚至做貝氏模型平均(BMA)。

理論上貝氏方法有兩個吸引人的優勢:

  1. 在小樣本或非線性參數空間下,後驗分佈比 MLE 點估計更穩定。
  2. 預測時可以 整合所有後驗樣本 做出 ensemble forecast,理論上應該比單一點估計更穩健。

但理論歸理論。實證上貝氏 GARCH 在點預測精度上到底有沒有比 MLE 強?文獻上的答案其實不一致 — 有些研究發現微幅改善,有些則發現差距可忽略。K432 想用一個乾淨的設定,在 SPY 上正面回答這個問題。

我們怎麼做

資料來源

  •  資產 :SPY(追蹤 S&P 500 的 ETF)
  •  資料來源 :yfinance 日收盤價,計算對數百分比報酬
  •  總期間 :2005-01-01 ~ 2024-12-31
  •  樣本內(IS) :2005-01-01 ~ 2022-12-31,共 4,530 個交易日(用來估計 MLE 與 MCMC 後驗)
  •  樣本外(OOS) :2023-01-01 ~ 2024-12-31,共 502 個交易日(用來純粹評估預測表現)

樣本內期間涵蓋了 2008 年金融海嘯、2010 閃崩、2011 歐債危機、2015 中國股災、2018 第四季拋售、2020 COVID 崩盤等多次大型波動事件,足以讓 GARCH 類模型學到風險動態。樣本外則涵蓋 2023 升息週期高點到 2024 的 AI 行情,是一個明顯的市場 regime 變化期。

資料診斷(先確認該用 GARCH)

在開估計之前先做標準的時序診斷:

檢定統計量p-value結論
ADF 單根檢定-16.70< 1e-29報酬序列定態,可建模
ARCH-LM(殘差平方)1312.65< 1e-275強烈 ARCH 效應,需 GARCH 類模型
Ljung-Box(殘差平方)3890.790.000殘差平方有顯著自相關
估出 GJR 後再做 ARCH-LM9.010.531殘差乾淨,模型 specification OK

報酬統計:mean = 0.041、std = 1.235、skewness = -0.07、kurtosis = 14.64(重尾)。所有特徵都符合「該用 GARCH 家族」的教科書情境。

兩種估計方法

 MLE 部分 :直接用 GJR-GARCH(1,1) 配 Normal innovations,optimizer 收斂正常。估出的 persistence(α + γ/2 + β)= 0.976,符合金融時序「高持續性但仍定態」的典型特徵。

 MCMC 部分 :用 Random Walk Metropolis–Hastings,跑 2 條鏈、各 5,000 次 iteration、burn-in 1,000,總共留 8,000 個後驗樣本。先驗設計為 弱資訊先驗 :

  • μ ~ N(0.05, 0.1)
  • ω ~ HalfNormal(0.1)
  • α ~ Beta(2,10) × 0.5
  • γ ~ HalfNormal(0.1)
  • β ~ Beta(10,2) × 0.999

這些 priors 故意設得寬鬆,目的是讓資料主導後驗 — 我們不想用很強的先驗去「告訴」模型答案。

 MCMC 收斂診斷 :

診斷指標數值判定
Chain 1 接受率0.310在 0.2-0.4 黃金區間
Chain 2 接受率0.305同上
Gelman-Rubin R̂(max)1.007(γ)< 1.05,多鏈一致
有效樣本數(min)97(β)對 8,000 樣本而言略低,但勉強可用
MCMC 執行時間28.9 秒比 MLE 慢約一個量級

收斂沒問題,可以繼續比較。

公平比較設計(防 lookahead)

這裡是研究誠實原則的關鍵。MCMC 的後驗抽樣 只用樣本內 4,530 天的資料 進行 — burn-in 結束、收斂判定、後驗樣本生成全部在 2022-12-31 之前完成。

樣本外預測時,每一天 t 的條件變異數預測 σ̂²ₜ 都使用 t-1 為止的資訊滾動更新(GARCH recursion 在 OOS 期間沿用 IS 學到的參數,不重新估計)。MLE 與貝氏方法套用完全相同的 lag 結構,避免任一方拿到 t 期的資訊。

結果

後驗分佈幾乎黏在 MLE 上

參數MLE 點估後驗均值後驗中位數95% 信賴區間
μ0.04090.04130.0414[0.0177, 0.0619]
ω0.02730.02810.0280[0.0223, 0.0343]
α0.01690.02320.0223[0.0076, 0.0424]
γ0.21040.20880.2069[0.1802, 0.2445]
β0.85410.84860.8488[0.8278, 0.8682]

幾乎每個參數的 MLE 點估都落在後驗信賴區間正中間,後驗均值與 MLE 的差距都在後驗標準差的 1 倍以內。Persistence 後驗均值 = 0.9762、MLE = 0.9761,差距小到第四位小數才看得到。

 這個結果其實已經暗示了結論 :在樣本量這麼大、先驗又設成弱資訊的情況下,後驗主要由概似函數主導,自然會集中在 MLE 附近。預測上不太可能有大差異。

樣本外點預測表現

方法QLIKEMSEMAE
 MLE  1.4629  1.1023 0.6857
Bayes_Mean1.46501.10600.6881
Bayes_Median1.46471.1030 0.6851 
Bayes_BMA1.46481.10590.6881

QLIKE 是波動率預測界的標準損失函數(越小越好)。MLE 在 QLIKE 與 MSE 兩個指標上都是最佳;Bayes 三個變體(後驗均值、後驗中位數、貝氏模型平均)全部略遜於 MLE。MAE 上 Bayes_Median 微幅勝出,但差距僅 0.0006。

兩模型比較顯著 檢定:差距是不是統計顯著?

對比DM 統計量p-value較佳方法
Bayes_Mean vs MLE2.6730.0075MLE
Bayes_Median vs MLE2.0420.0412MLE
Bayes_BMA vs MLE2.7730.0056MLE

三個對比的 p-value 全部小於 0.05,意味著 MLE 在 QLIKE 上的優勢 在統計上顯著  — 不是運氣使然。這個結果在實證波動率文獻裡其實有先例:當樣本量大到一定程度(這裡 4,530 天),MLE 的漸近性質已經很好,貝氏方法用弱資訊先驗很難再榨出額外的點預測精度。

VaR 風險管理表現:兩者打平

方法95% VaR 違約次數違約率Kupiec p-value通過?
MLE29 / 5025.78%0.435
Bayesian28 / 5025.58%0.560

預期違約 25 次(5%)。兩種方法都通過 Kupiec 無條件覆蓋率檢定,違約率非常接近。從風險管理角度兩者基本沒有差別。

怎麼解讀這個結果

讀者第一反應可能是:「貝氏方法不是應該更厲害嗎?怎麼點預測還輸 MLE?」

這裡需要把「貝氏方法的價值」拆開來看。

點預測精度:本實驗顯示 MLE 略勝

當你的目標是「給我下一天 σ̂² 的最佳單一估計值」時,MLE 在大樣本 + 模型 specification 正確的情況下,已經接近 Cramér-Rao 下界 — 它的漸近效率很難被超越。貝氏方法用弱資訊先驗後驗集中在 MLE 附近,再對後驗樣本取平均(mean / median / BMA)只是繞了一圈回到差不多的點。本實驗的 -0.12% QLIKE 劣勢就是這種「繞遠路」的代價。

如果先驗設得很強(強資訊先驗),結果可能不同 — 但那等於是用先驗強行「告訴」模型答案,已經不是「讓資料說話」的純研究設定。

不確定性量化:貝氏方法仍是唯一選項

這是 MLE 完全做不到的地方。MLE 給你 α = 0.017 一個點,但無法直接告訴你「α 真正落在 [0.0076, 0.0424] 的機率有多高」。貝氏後驗分佈完整提供這個資訊:

  • 你可以畫出每個參數的後驗密度
  • 你可以對 persistence 0.9762 配上 95% 區間 [0.9662, 0.9871]
  • 你可以對「下一週累積波動率」做完整的預測分佈
  • 風險管理上你可以做後驗 VaR 區間(不只是點 VaR)

對交易實務、對學術研究、對監管報告,這些區間資訊往往比一個更精確 0.12% 的點預測值有用得多。

小樣本情況可能不同

本實驗樣本量 4,530 天非常大。在小樣本(例如 250-500 天)下,MLE 的漸近性質還沒完全發揮,貝氏方法用合理 priors 反而可能比 MLE 穩定。這不是本實驗驗證的場景,但讀者若處理小樣本資料時,不應根據本結論直接拒絕貝氏方法。

對讀者的實務建議

  •  如果你只要日波動率預測點值 :用 MLE GJR-GARCH 就夠了。多花 30 倍計算時間做 MCMC 換不到更準的點預測。
  •  如果你要報告參數的不確定性、做情境分析、或畫預測分佈 :貝氏 MCMC 仍然是首選,但別期待點預測精度會贏 MLE。
  •  如果你的樣本很小(< 1 年) :本實驗結論不直接適用,貝氏方法的優勢可能在小樣本回來。
  •  如果你在做學術論文 :MLE 與貝氏方法宜並列報告 — MLE 給點估計,貝氏給後驗區間,互補而不是互斥。

這就是 K432 想傳達的核心訊息: 「貝氏方法 vs MLE」不是非此即彼的勝負問題,而是「你要的是什麼」的問題 。對點預測,本實驗在 SPY + 大樣本情境下 MLE 顯著勝出;對不確定性量化,貝氏 MCMC 仍是不可替代的工具。

數據來源

  • 報酬序列:yfinance 抓取 SPY 2005-01-01 ~ 2024-12-31 日收盤價,對數百分比報酬
  • 模型:GJR-GARCH(1,1) with Normal innovations
  • 估計:MLE(scipy)+ Random Walk Metropolis–Hastings(自製 MCMC sampler)
  • 評估:QLIKE / MSE / MAE 點預測損失,Diebold–Mariano 檢定,95% VaR + Kupiec 檢定
  • 完整實驗檔:K432

文獻方面,Bayesian GARCH 估計可參考 Geweke (1989, JBES) 的早期工作以及 Vrontos, Dellaportas & Politis (2000) 對 GARCH 與 EGARCH 的 Metropolis–Hastings 實作;GJR 模型本身則來自 Glosten, Jagannathan & Runkle (1993, Journal of Finance)。Diebold–Mariano 檢定為 Diebold & Mariano (1995, JBES),Kupiec 違約率檢定為 Kupiec (1995, Journal of Derivatives)。

圖表

MLE vs 貝氏 GJR-GARCH:OOS QLIKE 對比

DM 比較檢定:MLE 在三個貝氏變體中皆為較佳

相關文章

先讀正式關聯,若無則使用標籤與主題相似度補齊