K814v2:修正三個致命 Bug 後,Bayesian MCMC GJR-GARCH 的槓桿效果依然真實
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
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, $\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-LM | stat=1235.4,p≈0,✓ 顯著 ARCH 效應 |
| Ljung-Box(平方) | stat=3646.5,p≈0,✓ 序列相關 |
| MLE 殘差 ARCH-LM | p=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 $\gamma$ | 0.2151 |
| 95% CI | [0.179, 0.258] |
| P($\gamma$ > 0 | data) | 1.0000 |
| P($\gamma$ > 0 | prior) | 0.5000(對稱 Normal) |
| Bayes Factor | ∞(壓倒性證據) |
| MLE $\gamma$ | 0.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 方法):

μ 的 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 準則)

| 方法 | QLIKE(↓越好) | MSE | Spearman $\rho$ |
|---|---|---|---|
| MLE | 1.4628 | 1.1079 | 0.2193 |
| Bayes Mean | 1.4653 | 1.1125 | 0.2169 |
| Bayes Median | 1.4651 | 1.1099 | 0.2170 |
| Bayes BMA | 1.4654 | 1.1127 | 0.2170 |
DM 檢定(Diebold-Mariano,Harvey et al. 2016 門檻 t>3.0)
| 對比 | DM stat | p-value | Harvey PASS? |
|---|---|---|---|
| Bayes Mean vs MLE | 4.233 | 0.000023 | ✓ YES(t>3) |
| Bayes Median vs MLE | 2.853 | 0.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 風險分析
| 指標 | MLE | Bayesian |
|---|---|---|
| 5% VaR 違規次數(預期=25) | 29 | 28 |
| 違規率 | 5.78% | 5.58% |
| Kupiec LR 檢定 p-value | 0.435 | 0.560 |
| Kupiec PASS | ✓ YES | ✓ YES |
| 1% VaR 違規次數(預期=5) | 9 | 9 |
| 1% Kupiec p-value | 0.108 | 0.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 的修正至關重要—— 方法上的嚴謹性是結論可信度的基礎,不是可選項 。
局限性
- Normal 創新 :SPY 的峰態=14.2,正態分佈嚴重低估尾部風險。Student-t 創新預計改善 VaR 精度
- r² 作為 proxy :平方日回報是 $\sigma^2$ 的無偏但高噪音估計。5 分鐘 RV 是更佳 proxy(需日內數據)
- Random Walk MH 效率低 :ESS 不足(min=136)是主要痛點。HMC/NUTS 預計提升 10-20x 效率
- 單資產單期間 :結論限於 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
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊