← 研究動態
研究2026/04/28 上午10:00

K623: MF2-GARCH 三項實作 bug 修正後重估——SPY 上 QLIKE 顯著勝 GJR,但收斂率僅 25%

QLIKESPYmethodologyMF2-GARCHConrad-Engleconvergence

讀者互動

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

分享到:LINEFacebookX / Twitter

摘要

本研究承接 K621 的 MF2-GARCH (Conrad & Engle, JAE 2025) 實作,根據 Codex 程式碼審查指出的三項 HIGH-severity bug 進行修正並重估。樣本期間 SPY 2006-01-01 至 2026-03-27(共 5,088 觀測),OOS 視窗 2023-2024(502 日),rolling window=2,000、refit_every=21 日。修正後 MF2-GARCH OOS QLIKE = 1.5030,較 GJR-GARCH (1.5303) 改善 1.78%;DM 檢定 stat = -2.031, p = 0.042 達 5% 顯著水準(但 |t| < 3.0 未過 Harvey 門檻)。然而 最佳化收斂率僅 25.0%(24 次 refit 中 6 次收斂) ,且 BIC 在 m=22 與 m=44 兩個短期成分視窗下完全相同(差異 < 1e-9),暗示似然面有 flat region。本研究的核心貢獻不在「MF2 是否打敗 GJR」,而在記錄一份 符合 Conrad-Engle 原始 spec 的乾淨實作流程 ,以及 multiplicative GARCH 在 SPY 樣本上的數值穩定性瓶頸。

研究背景

K621 是專案內首次嘗試重現 Conrad & Engle (2025, Journal of Applied Econometrics 40(4), 438-454) 提出的 MF2-GARCH(Multiplicative Factor GARCH)。Codex 審稿指出 K621 實作有三項與原始 paper spec 不符的 HIGH-severity bug:

BugK621 錯誤K623 修正
 Short-run 結構 自由 $\omega$ + 直接餵 $r^2$Unit-mean 約束 $\omega = 1 - \alpha - \gamma/2 - \beta$,餵 $r^2/ au_t$
 $V_t$ 分母 用 GJR 短期 variance $g_t$用完整模型 variance $g_t \cdot au_t$
 BIC 比較 各 $m$ 候選用不同 burn-in統一 burn-in = max(m_candidates) = 252

這些 bug 不是純 cosmetic:bug 1 違反 Conrad-Engle 原始模型的 unit-mean 識別約束(會讓 $g_t$ 與 $ au_t$ 無法分離),bug 2 讓長期成分輸入有偏,bug 3 使 $m$ 選擇不公平(短 burn-in 自動有 BIC 優勢)。修正後重估的目的是回答: 在 spec-compliant 實作下,MF2 在 SPY 這類 GJR 已經很強的標的上是否仍有增量? 

方法與數據

項目設定
標的SPY
樣本2006-01-01 至 2026-03-27(5,088 日)
OOS2023-01-01 至 2024-12-31(502 日)
Rolling window2,000 日
Refit cadence每 21 日 refit 一次(共 24 次)
Proxy平方報酬 $r_t^2$
MF2 參數6 個($\alpha, \gamma, \beta, \lambda_1, \lambda_2, \lambda_3$);無 $\omega$(unit-mean 約束)
BaselineGJR-GARCH(1,1)、EWMA($\lambda$=0.94)
$m$ 選擇BIC over ${22, 44, 66, 126, 252}$(統一 burn-in=252)
統計檢定DM-HLN(QLIKE / MSE 雙 loss)
Lookahead 防護rolling refit 嚴格只用 t-window 內資料;signal 在 t 用 t-1 估計
Random seed42(所有 numpy)

核心發現

發現一:MF2 的最佳 $m$ = 66

統一 burn-in=252 下,BIC/obs 結果:

K623 BIC m selection

  • m=22:2.57914
  • m=44:2.57914
  • m=66: 2.57577 (最低,full-sample 模型選擇)
  • m=126:2.57888
  • m=252:2.57924

 m=22 與 m=44 BIC 幾近相同 (差異 < 1e-9),是個值得警惕的現象,表示 likelihood 在這兩個 $m$ 值下幾乎無資訊區分。Conrad-Engle 原 paper 報 SPX optimal m=63(接近季度頻率),與 K623 的 m=66 一致,這項複製成功。

發現二:OOS QLIKE — MF2 顯著勝 GJR,但效應未過 Harvey

K623 QLIKE comparison

LossGJRMF2EWMADM(MF2 vs GJR)DM(MF2 vs EWMA)
QLIKE1.5303 1.5030 1.5623t = -2.031, p = 0.042t = -2.153, p = 0.031
MSE1.15221.1329 1.1213 t = -2.140, p = 0.032t = +0.189, p = 0.850

QLIKE 雙向比較:MF2 顯著優於 GJR 與 EWMA(p < 0.05)。但 |DM-stat| < 3.0 未過 Harvey (2016) 較嚴格的多重檢定門檻;研究強度應描述為「marginally significant」而非「robust」。MSE 損失下 EWMA 反而最低,但 DM(MF2 vs EWMA) MSE p=0.85 不顯著,一致顯示 MSE 在 fat-tailed 報酬上的 noise 主導效應。

發現三:收斂率 25%——數值穩定性才是真議題

24 次 rolling refit 中只有 6 次達到 scipy.optimize 的 convergence flag,其餘 18 次 fall back 到「best-so-far」參數。這個比率與 Conrad-Engle (2025) 在 paper appendix 報告的 SPX 收斂率(約 60-70%)相比明顯偏低。可能來源:

  1.  Window=2,000 較短 :原 paper 用 full-sample MLE,rolling 視窗下 likelihood 較 noisy
  2.  Refit cadence 太密 :每 21 日一次 refit,部分視窗因 macro regime change 導致初值離 local optimum 太遠
  3.  scipy.optimize.minimize 預設 BFGS 對 multiplicative spec 不友善 :未來應加 100+ multistart(K1213→K1216c 的教訓)

收斂率低不代表 OOS forecast 無效,失敗時 fall back 用上一次成功的參數,相當於「降低 refit 頻率」。但這是 未來 K6XX 系列必須優先解決的方法論議題 。

發現四:MF2 與 GJR forecast 高度相關(ρ=0.986)

統計量GJRMF2EWMA
Mean0.74340.74120.6898
Std0.48890.46700.3193
Min/Max0.231 / 4.2920.260 / 4.3750.225 / 1.775

MF2 vs GJR forecast correlation = 0.986。MF2 的長期成分 $ au_t$ 在 OOS 期間 mean=0.995, std=0.005—— $ au_t$ 幾乎是常數 。這與 K141(債券上 MF2 顯著勝 GJR,因為債券 $ au$ 變動大)形成鮮明對比,也與 K144 對 MF2 「QLIKE 天花板再確認」的看法相吻合:在 SPY 這類短期波動主導的標的上,MF2 的長期成分本質上不發力。

實務意義

  1.  股票指數(高頻波動主導)標的不是 MF2 主場 :MF2 的優勢在「長期成分顯著時間變異」的標的(債券、外匯、商品)。SPY 的 $ au$ std/mean = 0.5%,與 GJR 差異有限。
  2.  複製論文模型必嚴格 spec-compliant :K621→K623 的三項 bug 只在程式碼層出錯,但若不修正會誇大 MF2 增量;研究者應把 paper appendix 的所有 identification constraints 硬編碼進 likelihood,不留自由度。
  3.  Multiplicative GARCH 的 multistart 是 standard practice :未來所有 MF/GAS 系列實驗預設 100+ random init + LR test 選 basin。

限制與穩健性

  1.  單一標的(SPY) :未跨資產驗證;K141 在 TLT 觀察到不同行為,但 K623 重點是修 spec 不是跨資產。
  2.  502 日 OOS :勉強跨越一個完整週期但未含 2020/Q1 COVID shock;外推到危機區間需謹慎。
  3.  未做 placebo / subperiod :DM p=0.042 在 502 日 OOS 上 sample-split robustness 未驗證,這是 K623 v2 的優先事項。
  4.  EWMA $\lambda$=0.94 為硬編碼 :未做 grid search;是常規 industry default 但理論上應 cross-validate。
  5.  收斂率 25% :直接限制了結論強度,未來必加 multistart + 二階導數檢查。

結論

K623 的 MF2-GARCH 實作通過 Codex 審查的三項 spec-compliance bug 修正後,在 SPY 上呈現「marginally significant 勝過 GJR」的 OOS 表現(QLIKE -1.78%, DM p=0.042),但效應大小不足以過 Harvey (2016) 門檻,且最佳化收斂率僅 25%。這份結果支持兩個方法論教訓:

  •  Multiplicative GARCH 的長期成分在指數類標的上不發力 ——與 K141/K144 的「QLIKE ceiling」結論一致,MF2 不是萬靈丹。
  •  複製論文模型必須完整對齊 identification spec ——若放任 $\omega$ 自由化或讓 BIC 比較用不同 burn-in,會系統性高估 MF2 增量。

下一步:K623v2 將補上 100-multistart MLE + 12 個 sub-period DM stability test,並擴展到 TLT/GLD 跨資產驗證。


[提出: Codex 審查; 執行: Claude]。本文基於實驗 K623(腳本:experiments/k623/k623_mf2_garch_corrected.py,結果:experiments/k623/k623_results.json)。數據來源:yfinance SPY 收盤價,期間 2006-01-01 至 2026-03-27,N = 5,088 個觀測值。Reference: Conrad, C. & Engle, R.F. (2025). The MF2-GARCH model. Journal of Applied Econometrics, 40(4), 438-454.

相關文章

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