← 研究動態
研究2026/04/01 下午10:03

從假突破到真解法:為什麼預測和風險管理要分開選

GARCHGJRSPYSkewed-tVaR風險管理研究誠實保形預測

讀者互動

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

分享到:LINEFacebookX / Twitter

摘要

[提出: 用戶, 執行: Claude]

一個模型可以同時「預測最準」又「風險管理最差」,這不是矛盾,而是兩件完全獨立的事情。K799 到 K802 這段四步旅程,讓我們用自己的親身錯誤,把這個道理刻進骨子裡。


第一步:K799——五模型六層大決鬥,贏家竟然「害人」

我們用嚴格的六層統計框架,測試了五個波動率模型:GJR-GARCH、GARCH、EWMA、HAR、AMEM。這五個模型都是業界常見的工具,每一個都聲稱能幫你「預測明天有多震盪」。

測試結果出爐: GJR-GARCH 在預測準確度(QLIKE 損失函數)上名列第一 ,Spearman 相關係數達 0.203,比第二名高出 14%。

聽起來很棒,對吧?但我們繼續往下看第六層:風險管理(VaR 回測)。

 結果令人傻眼: 

模型VaR 違反率目標 1%Kupiec 檢定巴塞爾燈號
GJR(原始) 1.99% 1.00%❌ 失敗🟡 黃燈
GARCH(基準)1.39%1.00%✅ 通過🟢 綠燈
HAR0.80%1.00%✅ 通過🟢 綠燈

GJR 的 VaR 違反率高達  1.99% ——差不多是目標的兩倍。說人話就是:GJR 告訴你「今天最多虧這麼多」,但實際上跌破這條線的頻率比預期多一倍。預測最準的模型,在風險管理上卻墊底。

這讓我們陷入困境:用 GJR?預測很準但風控不過關。放棄 GJR?但它真的預測最好。


第二步:K800——看似完美的解法,其實是假的

「我有辦法!」有個想法浮現了: 保形預測(Conformal Prediction) 。

這個技術的邏輯聽起來很聰明:在 GJR 預測完波動率之後,加一個「後處理」步驟,用歷史違反率自動校正 VaR 的界線。如果過去 252 天違反太多,就把警戒線向外推,讓它更保守。

K800 的結果讓我們興奮:GJR + 保形校正之後,VaR 違反率從 1.99% 降到了  0.80% !Kupiec 檢定通過,巴塞爾燈號變綠。而且 QLIKE 預測準確度完全不受影響。

「找到了!預測第一,風控也過關!」

然後我們把代碼給 Codex 審查。


第三步:Codex 掃出兩個致命 Bug

Codex 的審查報告讓我們冷靜下來。 兩個 HIGH 嚴重度的 Bug: 

 Bug 1:違反率計算對象錯誤。  K800 追蹤的是「違反原始 VaR」,而不是「違反已校正後的 VaR」。這導致每次原始 VaR 被突破,程式就持續累積「需要校正」的信號,即使校正後的 VaR 其實已經沒有被突破了。結果:自動把警戒線推得太遠,人為壓低了違反率。

 Bug 2:不是真正的保形預測。  K800 用了一個 ad-hoc 乘數公式(violation_rate / alpha,最大 3 倍),這根本不符合 Vovk(2005)的保形預測理論,沒有任何統計覆蓋率保證。

K800v2 修正這兩個 Bug 重跑:GJR 的 VaR 違反率回到  1.99% ,和原始完全一樣。保形校正沒有任何效果。

那個「突破」是假的。


VaR 1% 違反率比較:從假突破到真解法(目標值 = 1.00%)

圖:各版本 VaR 1% 違反率比較。K800 的假修正(0.80%)源自 Bug,非真實改善。K802 的 Student-t 和 Skewed-t 才是真正的解法(1.20%),兩者均通過 Kupiec 檢定。


第四步:K802——換個地方找答案,真的找到了

重新思考問題的本質。GJR 的 VaR 為何失敗?

 根本原因:用了錯誤的統計分配。 

VaR 的計算需要兩件事:(1)波動率預測(GJR 做這個),(2)把波動率乘上一個分位數(這取決於你假設的分配形狀)。K799 和 K800 都假設報酬率服從 常態分配 。但真實市場報酬根本不是常態,它有 厚尾 (極端事件比想像中多)和 左偏 (跌得比漲得凶)。

這就是為什麼 GJR+常態 的 VaR 一直太窄:低估了極端跌幅的發生機率。

K802 直接解決這個問題:換成 Student-t 分配 (有厚尾)和 Skewed-t 分配 (厚尾 + 左偏)。

結果如下:

模型設定VaR 違反率Kupiec 檢定QLIKE(預測準度)
GJR + 常態(原始)1.99%❌ 失敗 1.469 (最佳)
GARCH + 常態(基準)1.39%✅ 通過1.514
GJR + Student-t(K802) 1.20% ✅ 通過 1.469 (最佳)
GJR + Skewed-t(K802) 1.20% ✅ 通過 1.469 (最佳)

 GJR + Skewed-t:預測最準(QLIKE 第一),風控也通過(Kupiec ✅)。  兩件事同時達成了。


這段旅程教了我們什麼?

預測能力和風險管理是兩個獨立的問題

選模型時要分兩個問題分開回答:

  1.  「誰預測最準?」  — 用 QLIKE、DM 檢定、Spearman 相關係數來評估。答案:GJR-GARCH。

  2.  「誰的風控最好?」  — 用 Kupiec、Christoffersen、巴塞爾燈號來評估。答案:取決於 分配假設 ,不是模型本身。

換句話說:同一個 GJR 模型,接上常態分配就風控失敗,接上 Student-t 就通過。改變的不是「預測」,而是「你對極端事件有多大方」。

假突破比沒突破更危險

K800 的錯誤很有代表性:它看起來完全合理(保形預測是有理論基礎的技術),違反率也降下來了,各項統計也通過了。如果我們沒有把代碼送去審查,可能就這樣發出去了。

研究的可信度不是靠「看起來好」,而是靠「每一步都經得起檢查」。這也是為什麼我們每個實驗代碼都要通過 Codex 獨立審查,才算完成。

解法永遠在「根本原因」那裡

GJR 的 VaR 問題,根本原因是分配假設錯誤。所有繞過這個根本的修法(保形後處理)都治標不治本。一旦找對了根本原因,解法反而很簡單:換個分配,問題消失。


給投資人的實務意義

如果你在用任何模型計算「今天最多虧多少」(VaR),記得問一句:

 這個模型假設的是什麼分配? 

如果答案是「常態分配」,那它很可能低估了你在壞日子的最大虧損。尤其是在市場恐慌、崩盤、流動性危機的時候,極端事件發生的頻率比常態假設的兩到三倍還高。

好消息是:這個問題有已知的解法,而且不複雜,換成 Student-t 或 Skewed-t 分配,不需要改模型的預測邏輯,只需要改計算 VaR 時用的那個尾部分位數。


延伸閱讀


本文基於 K799-K802 系列實驗(數據來源:yfinance SPY,期間 2006-2025,樣本:5,029 個交易日,OOS:502 日)

相關文章

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