← 研究動態
研究2026/03/22 下午11:18

XGBoost + SHAP 波動率預測實驗:ML 無法擊敗 GARCH,但揭示 VIX 主導地位

SPYexperimentmlxgboostshapinterpretabilityvix-sufficiency

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。

研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。

訂閱研究摘要

研究摘要與新文章,不轉售、不寄廣告,隨時可退訂。

摘要

[提出: 用戶(面向 G: ML 可解釋性), 執行: Claude]

本實驗測試 XGBoost 能否擊敗 GJR-GARCH 預測 SPY 22 天前瞻實現波動率,並使用 SHAP(SHapley Additive exPlanations)解析哪些特徵最重要。結論: XGBoost 無法顯著擊敗 GJR-GARCH (DM p=0.606),但 SHAP 揭示了有價值的特徵重要性結構。


實驗設計

  •  目標變數 :22 天前瞻年化實現波動率(SPY)
  •  訓練期 :2006-07-17 至 2021-12-31(3,894 天)
  •  測試期 :2022-01-03 至 2026-02-18(1,035 天)
  •  特徵數 :25 個(價格、VIX、技術指標、日曆、跨資產)
  •  時間序列分割 :嚴格按時間順序,無 shuffle

特徵分類

類別特徵數量
VIX 相關VIX 水平、變化率、Z-score、VIX/VIX3M 比率、VIX-RV spread6
實現波動率5/10/22/63 日 RV、短長比率6
報酬率5/10/22/63 日報酬4
技術指標RSI(14)、MACD、布林通道寬度3
日曆星期幾、月份、距 FOMC 天數3
跨資產GLD/TLT/EEM 5 日報酬3

結果

模型比較

模型MSER²QLIKE
Linear Regression0.004620.267-2.529
XGBoost(預設)0.005860.071-2.457
 XGBoost(調參)  0.00453  0.282 -2.575
 GJR-GARCH 0.005440.137 -2.599 

XGBoost 調參後最佳參數:n_estimators=200, max_depth=5, learning_rate=0.01, subsample=0.7, colsample_bytree=0.7, min_child_weight=10(偏向保守/正則化)。

Diebold-Mariano 檢定

比較DM 統計量p 值結論
XGBoost(tuned) vs Linear-1.4500.147無顯著差異
XGBoost(tuned) vs GJR0.5160.606無顯著差異
Linear vs GJR1.4920.136無顯著差異

 GJR-GARCH 的 QLIKE 仍然最低 (-2.599),但三者之間均無統計顯著差異。


SHAP 特徵重要性(核心價值)

個別特徵排名

排名特徵SHAP 貢獻佔比
1 VIX 0.0162 29.3% 
2ret_63d0.007313.2%
3vix_vix3m_ratio0.00549.7%
4rv_22d0.00427.6%
5rv_10d0.00356.3%
6rv_63d0.00346.1%
7month0.00305.5%
8vix_zscore0.00254.6%

VIX 單一特徵就貢獻了近  30%  的預測重要性,遠超第二名(63 日報酬 13.2%)。

特徵群組重要性

群組SHAP 佔比解讀
 VIX 相關  46.2% 近半數預測能力來自 VIX 家族
 實現波動率  25.1% 歷史波動率是第二大來源
報酬率16.1%主要來自 63 日動量
日曆6.8%月份效應意外地不可忽略
技術指標3.1%幾乎無用
跨資產2.8%幾乎無用

 波動率資訊(VIX + RV)合計佔 71.3%  —— 確認了「VIX 充分統計量」假說。


核心發現

1. XGBoost 無法顯著擊敗 GJR-GARCH(再次確認 Branco 2024)

即使給 XGBoost 25 個精心設計的特徵(包含跨資產、技術指標、日曆效應),調參後的 QLIKE 也只達到 -2.575,仍不如 GJR-GARCH 的 -2.599。DM 檢定 p=0.606,遠不顯著。

 解讀 :波動率的主要動態結構(均值回復、槓桿效應、叢聚性)已被 GARCH 族模型良好捕捉。非線性 ML 模型在此基礎上的邊際改善微乎其微。

2. VIX 是壓倒性的最重要特徵

SHAP 分析清楚顯示 VIX 單獨貢獻 29.3%,VIX 家族合計 46.2%。這從 ML 可解釋性的角度獨立驗證了我們先前在 J3/J4/J8 中反覆確認的結論: VIX 是月度以下波動率預測的充分統計量 。

3. 技術指標和跨資產信號幾乎無用

RSI、MACD、布林通道合計僅 3.1%。GLD/TLT/EEM 報酬合計僅 2.8%。這些特徵對波動率預測的邊際貢獻可以忽略不計。

4. 月份效應值得注意

「month」特徵排名第 7(5.5%),暗示波動率存在季節性模式(如 9-10 月通常波動較高)。這不常被 GARCH 模型捕捉,可能是未來研究方向。

5. 預設 XGBoost 嚴重過擬合

預設參數(max_depth=6, n_estimators=500, lr=0.1)的 R² 僅 0.071,遠低於線性回歸的 0.267。調參後(更保守:max_depth=5, lr=0.01, min_child_weight=10)改善到 0.282。教訓: 波動率預測中 ML 模型需要強正則化 。


對研究系統的啟示

  1.  停止追求 ML 預測突破 :XGBoost(25 特徵)無法擊敗 GJR-GARCH(3 參數),確認複雜度上限。K45 文獻 + 本實驗自主驗證。
  2.  SHAP 可以用於特徵篩選 :如果未來測試新特徵(如 VVIX、SKEW),SHAP 可以量化其邊際貢獻。
  3.  VIX 充分統計量再次確認 :第 13 次獨立驗證(J3/J4/J8 + 本實驗 SHAP)。
  4.  月份效應值得探索 :可能的 seasonal volatility targeting 策略方向。

相關文章

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

📄
VIX 越高、衝擊越被「吸收」?比例式衝擊倍數的分母陷阱與門檻效應
VIX 已經很高時,再來一次 VIX 大跳,SPY 的反應會不會變小?常見的量法是「衝擊倍數」(shock amplification ratio,SAR):衝擊日的 |r| 除以平日的 |r|。這個倍數確實隨前一日 VIX 升高而下降,於是很容易讀成「高波動環境會吸收衝擊」。本文檢驗這個讀法在三個地方站不站得住:分母、門檻,以及外生衝擊。 資料是 SPY 與 VIX 日資料,2006-01-05…
→
📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→