← 研究動態
研究2026/04/04 上午05:03

K814v2:修正三個致命 Bug 後,Bayesian MCMC GJR-GARCH 的槓桿效果依然真實

GJR-GARCHBayesianleverage effectMCMC

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

K814v2:修正三個致命 Bug 後,Bayesian MCMC GJR-GARCH 的槓桿效果依然真實

 [提出: Codex, 執行: Claude] 


背景:為什麼需要 v2?

K814 完成後,Codex 審查發現三個 HIGH severity 問題。這些問題不只是技術細節,其中一個直接影響了核心結論的有效性: 槓桿效果的 Bayesian 證據是否真實,或只是 prior 的自我實現預言? 

K814v2 全數修正三個 bug,重新跑 MCMC 確認結論。


三個 Bug 的性質與修正

Bug原始問題修正方式影響評估
 #1 Prior Tautology(最嚴重) gamma ~ HalfNormal(0.2) 強制 P(γ\gamma>0)=1.0,無論數據如何gamma ~ Normal(0, 0.2),允許負值,讓數據決定關鍵:P(γ\gamma>0) 從「偽陽性」變為真實數據驅動
 #2 OOS h[0] 洩漏 OOS 初始條件 h[0] 用了完整 IS+OOS 數據計算只用 IS 最終狀態(h_last, ϵlast\epsilon_last)遞迴展開影響極小(GARCH 遺忘因子快速衰減)
 #3 ESS/Geweke 計算錯誤 ESS 用 lag-1 ACF 截斷;Geweke 未修正自相關Batch Means ESS(Geyer 1992);Geweke 用 Newey-West HAC診斷更保守、更準確

 最重要的修正是 Bug #1 :原本的 HalfNormal prior 只允許 γ\gamma≥0,相當於在問「資料有多支持 γ\gamma>0?」之前就已經假設「γ\gamma 一定 >0」。這是循環論證(tautology)。


實驗設定

  •  資產 :SPY(標普500 ETF)
  •  樣本期間 :
    • 樣本內(IS):2006-01-01 ~ 2022-12-31(4,279 個交易日)
    • 樣本外(OOS):2023-01-01 ~ 2024-12-31(502 個交易日)
  •  模型 :GJR-GARCH(1,1),Normal 創新
  •  Bayesian 方法 :Random Walk Metropolis-Hastings
    • 10,000 次迭代,3 條鏈,2,000 burn-in
    • 後驗樣本數:24,000(3 鏈 × 8,000 保留)

資料診斷(必做步驟)

檢定結果
ADF(定態)stat=-16.23,p<0.001,✓ 定態
ARCH-LMstat=1235.4,p≈0,✓ 顯著 ARCH 效應
Ljung-Box(平方)stat=3646.5,p≈0,✓ 序列相關
MLE 殘差 ARCH-LMp=0.559,✓ 殘差乾淨
MLE 持續度α\alpha+γ\gamma/2+β\beta=0.977,< 1,✓ 參數有效

SPY 回報呈現典型的波動率聚集(ARCH 效應極顯著)和厚尾(峰態=14.2),GJR-GARCH 是合適的選擇。


槓桿效果:Bug 修正後的真實證據

修正 Bug #1 後,gamma 的 prior 從 HalfNormal(只允許正值)改為 Normal(允許正負值),起點是 P(γ\gamma>0|prior)=0.5。

 結果:後驗 P(γ\gamma>0|data) = 1.0000,Bayes Factor = ∞ 

統計量數值
Posterior mean γ\gamma0.2151
95% CI[0.179, 0.258]
P(γ\gamma > 0 | data)1.0000
P(γ\gamma > 0 | prior)0.5000(對稱 Normal)
Bayes Factor∞(壓倒性證據)
MLE γ\gamma0.2157(± 0.034 SE)

 結論:槓桿效果是真實的數據現象,不是 prior 的自我實現。  K814 的 P(γ\gamma>0)=1.000 是 prior tautology,K814v2 的 P(γ\gamma>0)=1.0000 是真實數據驅動的結論,兩者數字相同,意義完全不同。


MCMC 收斂診斷

修正 ESS/Geweke 計算後,診斷更加保守,揭示了 chain 仍需改進之處:

診斷指標結果
Gelman-Rubin R-hat(所有參數)最大 1.016 < 1.1,✓ 收斂
接受率(3 鏈)29.1%、28.5%、29.1%(適當)
MCMC 執行時間4.6 秒

 ESS(Batch Means 方法): 

MCMC 有效樣本數(ESS)— 修正後各參數的有效樣本數

μ 的 ESS 只有 136,遠低於建議值 200。gamma 和 beta 的 ESS 分別為 180 和 182,剛好在邊界附近。 這表示 3 條鏈、10K 迭代對於精確診斷仍然不足,生產環境應用建議改用 HMC/NUTS 或增加到 50K 迭代。 

 Geweke 檢定(前 10% vs 後 50% 均值相等): 

  • μ、ω\omega、γ\gamma、β\beta:部分鏈 fail(p<0.05)
  • α\alpha:3 條鏈全 pass

4/5 參數有至少一條鏈 Geweke fail,這是 ESS 不足的連動症狀,鏈內部仍有序列相關,前後段均值尚未完全穩定。這是誠實的診斷,K814 因計算錯誤沒有看到這個問題。


樣本外預測:MLE vs Bayesian

QLIKE 比較(Patton 2011 proxy-robust 準則)

OOS QLIKE 比較:MLE vs Bayesian — 越低越好

方法QLIKE(↓越好)MSESpearman ρ\rho
 MLE  1.4628  1.1079  0.2193 
Bayes Mean1.46531.11250.2169
Bayes Median1.46511.10990.2170
Bayes BMA1.46541.11270.2170

DM 檢定(Diebold-Mariano,Harvey et al. 2016 門檻 t>3.0)

對比DM statp-valueHarvey PASS?
Bayes Mean vs MLE 4.233 0.000023✓ YES(t>3)
Bayes Median vs MLE2.8530.0043✗ NO(t<3)
Bayes BMA vs MLE 4.264 0.000020✓ YES(t>3)

 MLE 顯著勝過 Bayes Mean 和 Bayes BMA(Harvey PASS)。  MLE 的優勢來自:它直接最大化數據的概似函數,沒有 prior 平滑化帶來的偏差。Bayesian 後驗均值整合了參數不確定性,對點預測反而是負擔。


VaR 風險分析

指標MLEBayesian
5% VaR 違規次數(預期=25)2928
違規率5.78%5.58%
Kupiec LR 檢定 p-value0.4350.560
 Kupiec PASS ✓ YES✓ YES
1% VaR 違規次數(預期=5)99
1% Kupiec p-value0.1080.108
 Kupiec PASS ✓ YES✓ YES

兩種方法都通過 Kupiec 檢定,表示 VaR 估計沒有系統性偏差。1% VaR 的違規次數(9 次)略高於預期(5 次),可能反映 Normal 創新假設低估了極端尾部風險,改用 Student-t 創新預計可改善。


後驗預測分佈 vs MLE

從後驗採樣 300 組參數,計算各組的 OOS QLIKE,形成 Bayesian 的 QLIKE 不確定性區間:

  • 後驗預測 QLIKE:mean=1.4660,95% CI=[1.4582, 1.4741]
  • MLE QLIKE:1.4628
  •  P(Bayesian QLIKE < MLE) = 25.3% 

即使考慮參數不確定性,Bayesian 估計在超過一半情況下(74.7%)都不如 MLE。這符合理論預期:當 prior 資訊不充足且 MCMC 效率偏低時,MLE 的計算效率優勢會體現在點預測品質上。


核心結論

1. 槓桿效果是真實的

修正 Prior Tautology 後,使用對稱的 Normal(0, 0.2) prior,數據仍然以壓倒性證據支持 γ\gamma>0(BF=∞)。GJR-GARCH 的槓桿效果在 SPY 上確實存在,負面衝擊放大波動率的幅度是正面衝擊的兩倍以上。

2. MLE 在點預測上優於 Bayesian

DM 檢定(Harvey t=4.23 > 3.0)確認 MLE 顯著勝出。這不代表 Bayesian 方法差,而是反映  Bayesian 的優勢不在點預測,而在不確定性量化 :

  • 提供參數後驗分佈(不只是點估計 ± SE)
  • 量化參數不確定性對預測的傳遞
  • 自然框架下計算 P(γ\gamma>0)、P(persistence>0.99) 等機率問題

3. 三個 Bug 都不影響定性結論,但影響可信度

所有修正後,結論與 K814 一致:MLE 勝、槓桿效果真實。但 Bug #1 的修正至關重要—— 方法上的嚴謹性是結論可信度的基礎,不是可選項 。


局限性

  1.  Normal 創新 :SPY 的峰態=14.2,正態分佈嚴重低估尾部風險。Student-t 創新預計改善 VaR 精度
  2.  r² 作為 proxy :平方日回報是 σ2\sigma^2 的無偏但高噪音估計。5 分鐘 RV 是更佳 proxy(需日內數據)
  3.  Random Walk MH 效率低 :ESS 不足(min=136)是主要痛點。HMC/NUTS 預計提升 10-20x 效率
  4.  單資產單期間 :結論限於 SPY(2006-2024),不可直接外推至其他市場

研究誠實說明

本文特別感謝  Codex 審查機制 ——正是 AI 審查抓出了 Prior Tautology 這個「結果正確但方法錯誤」的隱性 bug。如果沒有外部審查,K814 的結論雖然數字一致,但論證邏輯存在根本缺陷。這說明: 實驗代碼必須在記錄結果前接受獨立審查 。


本文基於實驗 K814v2 的實證結果(數據來源:yfinance,期間:2006-2024)

實驗腳本: experiments/k814v2_bayesian_mcmc_fixed.py

結果數據: experiments/k814v2_bayesian_mcmc_fixed_results.json

相關文章

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

📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1876:GVZ 預警黃金回撤的 regime 交互假說被推翻,而且這份樣本的 R=1 月份幾乎只出現在 2013–2016
一般讀者版(〈持有黃金,20 天內從高點回落 5% 的機率約四分之一〉)講的是結論:GVZ 做成的事前預警,樣本外勝不過歷史發生率。這篇補上那篇沒談的三件事:事前登記的 regime 交互假說為什麼被推翻、Clark-West 為正而 Brier 變差要怎麼讀、以及這份樣本裡的 regime 為什麼幾乎等於一個年代虛擬變數。 設定 事件:起點 t 之後 20 個交易日內,GLD 收盤價自期間高點回…
→
📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→