K816v2:GJR Bug 修正後 ML Ceiling 第 6 次確認——DM 從 2.96 跌至 0.64
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
[提出: 用戶, 執行: Claude]
摘要
K816 實驗(GARCH-Informed Neural Network,GINN)初版得出 DM 統計量 2.96,距 Harvey (2016) 的嚴格門檻 t>3.0 只差 0.04。然而 Codex 代碼審查發現 GJR state propagation 存在嚴重 bug——GJR 基準線被系統性劣化 8.56%。修正後(K816v2),DM 統計量從 2.96 驟降至 0.64, ML 模型對 GJR-GARCH 的所謂「優勢」完全消失 。這是本系統第 6 次確認 ML ceiling。
研究背景
波動率預測領域長期存在一個核心問題:機器學習能否打敗傳統的 GARCH 家族模型?
我們在 K426(Temporal Fusion Transformer)、K784(Hybrid EGARCH-NN)、K797(純 MLP + QLIKE 損失修正)、K816 初版(GINN)中,每次都發現 ML 模型的表現與 GARCH 基準無法拉開統計顯著差距。
K816 採用了更精巧的架構: GINN(GARCH-Informed Neural Network) ,將 GJR-GARCH 估計的條件波動率作為物理先驗(physics-informed prior)輸入神經網路,期望結合參數模型的結構性約束與神經網路的非線性學習能力。初版結果令人期待——DM=2.96,幾乎通過 Harvey 門檻。
然後 Codex 審查了代碼。
Bug 分析:GJR State Propagation 錯誤
| 元素 | 問題描述 |
|---|---|
| 資產 | SPY |
| 期間 | 2005-01-04 ~ 2025-12-30(N=5281) |
| OOS | 2023-01-03 ~ 2024-12-31(N=502) |
| 架構 | GJR-GARCH + Pure MLP + GINN + GINN-VIX |
| Refit | 每 63 個交易日,共 8 次 |
| 損失函數 | QLIKE(Patton 2011 proxy-robust) |
Bug 描述 :K816 的 GJR baseline 在每個 63 天 refit 區塊中,第一天使用正確的 h_last_train,但第 2-63 天卻讀取 conditional_volatility 陣列(只涵蓋訓練期),導致 GJR 的 h_t 在整個 OOS 區塊中使用過時(stale)的狀態值。
影響範圍 :
- GJR baseline 的預測被系統性劣化(QLIKE 從 1.4652 膨脹至 1.6023,惡化 8.56% )
- GINN/GINN-VIX 的輸入特徵
$\sigma^2$_{GJR,t-1}同樣使用了過時的 h,但影響較小(僅 -0.28%)
修正方式 :K816v2 採用 day-by-day recursion:
h_t = $\omega$ + ($\alpha$ + $\gamma$·I_{r<0}) · r²_{t-1} + $\beta$ · h_{t-1}
在每個 OOS 日更新 h_running,確保 GJR 狀態正確傳播。
修正前後對比:Bug 的量化影響

關鍵數字 :
| 模型 | K816 QLIKE | K816v2 QLIKE | 變化 |
|---|---|---|---|
| GJR-GARCH | 1.6023 | 1.4652 | -8.56%(修正後改善) |
| GINN-VIX | 1.4544 | 1.4504 | -0.28%(微幅改善) |
| DM(GJR vs GINN-VIX) | 2.96 (假突破) | 0.64 (無顯著差異) | -2.32 |
這個結果清楚呈現了 bug 的性質:GJR baseline 的預測因過時 h 而大幅劣化,讓 GINN-VIX 看起來有顯著優勢。修正 bug 後,基準線回到正常水準,ML 模型的「優勢」立刻消失。
K816v2 完整結果:四模型比較

| 模型 | QLIKE | vs GJR | Spearman $\rho$ | DM vs GJR | Harvey 通過 |
|---|---|---|---|---|---|
| GJR-GARCH | 1.4652 | — | 0.2187 | — | — |
| Pure MLP | 1.4626 | -0.17% | 0.2212 | 0.097 | ❌ |
| GINN | 1.4845 | +1.32% | 0.1786 | -1.996 | ❌ |
| GINN-VIX | 1.4504 | -1.01% | 0.2473 | 0.643 | ❌ |
結論 :
- GINN-VIX 有最低的 QLIKE,但 DM=0.64 遠低於 Harvey 門檻 t>3.0
- 純 GJR 輸入的 GINN 甚至 比 GJR baseline 還差 (QLIKE +1.32%),顯示物理先驗在正確實作後反而增加雜訊
- 只有 VIX 作為額外輸入(GINN-VIX)才能讓神經網路有邊際改善,但差距不顯著
- 任何 NN 模型都未能在 Harvey 嚴格門檻下打敗 GJR
ML Ceiling 第 6 次確認
| 實驗 | 架構 | 結論 |
|---|---|---|
| K426 | Temporal Fusion Transformer | NULL(超時,效率問題) |
| K784 | Hybrid EGARCH-NN | NULL(DM 不顯著) |
| K797 | Pure MLP + QLIKE loss | NULL(QLIKE loss 修正後仍無優勢) |
| K787 | GARCH-NN 組合 | NULL(組合無改善) |
| K816 | GINN(有 bug) | 假突破 (DM=2.96,bug 導致) |
| K816v2 | GINN(修正版) | NULL (DM=0.64) |
六次實驗指向同一個結論:在日頻數據(r² 作為 $\sigma^2$ proxy)上,神經網路無法顯著超越 GJR-GARCH。這並非因為模型設計不夠好,而是 r² proxy 本身的雜訊太高 (Hansen & Lunde, 2005),讓任何細微的預測改進都淹沒在 proxy 雜訊中。
為什麼 Codex 審查是關鍵
K816 的案例展示了一個典型的「假突破」路徑:
- 設計看似精巧的模型(GINN)
- 得到接近顯著的結果(DM=2.96≈3.0)
- 如果跳過代碼審查 → 直接發表「ML 接近打敗 GARCH」的結論
- 代碼審查發現 bug → 修正後 DM=0.64 → 結論完全逆轉
根據我們的研究歷史, 93 個實驗中 8 個(8.6%)在 Codex 審查後被推翻 ,且全部是因為跳過了「寫代碼後先 Codex 審、再跑實驗」這一步驟。K816 是第 9 個案例。
局限性
- 單一資產 :只測試 SPY,其他資產(特別是波動性更高的市場)結果可能不同
- OOS 樣本有限 :502 個 OOS 觀測值,DM test 功效受限
- 架構選擇 :只測試 2×32 feedforward MLP,未測試 Transformer 或注意力機制
- r² proxy :日頻 r² 是 $\sigma^2$ 的極度嘈雜估計,若有日內 RV 資料,結果可能不同
結論
K816v2 通過修正 GJR state propagation bug,消除了 K816 初版中 8.56% 的基準線劣化。修正後,GINN-VIX 對 GJR-GARCH 的 DM 統計量從 2.96 降至 0.64,完全未達 Harvey (2016) 嚴格門檻(t>3.0)。這是本研究系統第 6 次確認「日頻 ML 波動率預測的 QLIKE ceiling」—— 神經網路在現有日頻數據條件下無法顯著超越傳統 GARCH 。
本文基於實驗 K816v2(腳本:experiments/k816v2_ginn_fixed.py,結果:experiments/k816v2_ginn_fixed_results.json)。 數據來源:yfinance SPY + ^VIX,期間:2005-2025,OOS 樣本:502 個觀測值。
參考文獻:Bali, Karabulut & Zhao (2024) GINN, arXiv:2410.00288;Patton (2011) J.Econometrics;Hansen & Lunde (2005) JFE;Harvey et al. (2016) t>3.0 門檻。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊