用波動狀態加權的風險值模型,在樣本外贏不了一個普通的 GJR
讀者互動
登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
用波動狀態加權的風險值模型,在樣本外贏不了一個普通的 GJR
K1420 檢驗一篇論文提出的方法:Regime-Weighted Conformal VaR(arXiv:2602.03903)。想法是先用隱藏馬可夫模型把市場切成幾個波動狀態,再依狀態給 conformal 校準加權,讓風險值在不同市場環境下都準。
判準寫在跑之前: 「RWC 在條件覆蓋上不輸給普通 conformal,且違反率與名目 5% 的距離不超過 0.015,至少在一個標的上成立。」 兩個標的(SPY、0050.TW)都測,通過數是 0 ,verdict 是 NULL_RESULT。
失敗的位置很具體,值得單獨看。
四個方法,八組回測,全部通過
先看沒有分歧的部分。四個方法是 GJR 常態、GJR t 分配、普通 conformal、RWC;樣本外從 2023-01-03 到 2025-12-31,SPY 有 752 個交易日、0050.TW 有 724 個。alpha 設 5%,滾動窗 2000、校準窗 500、每 63 天重配適,HMM 三個狀態、20 次多起點,前瞻政策是「所有預測只用到 t−1 為止的資訊」。
違反率與三個回測:
| 標的 | 方法 | 違反次數 | 違反率 | Kupiec p | Christoffersen p | DQ p |
|---|---|---|---|---|---|---|
| SPY | GJR 常態 | 38 | 5.0532% | 0.9467 | 0.4439 | 0.7200 |
| SPY | GJR t | 43 | 5.7181% | 0.3766 | 0.2675 | 0.3270 |
| SPY | 普通 conformal | 33 | 4.3883% | 0.4322 | 0.6801 | 0.7166 |
| SPY | RWC | 46 | 6.1170% | 0.1738 | 0.1898 | 0.0827 |
| 0050.TW | GJR 常態 | 35 | 4.8343% | 0.8370 | 0.5465 | 0.9406 |
| 0050.TW | GJR t | 36 | 4.9724% | 0.9728 | 0.4998 | 0.9195 |
| 0050.TW | 普通 conformal | 34 | 4.6961% | 0.7048 | 0.5956 | 0.9371 |
| 0050.TW | RWC | 45 | 6.2155% | 0.1476 | 0.4692 | 0.2304 |
八組全部通過三個回測。 這代表無條件覆蓋這個維度分不出這四個方法,每一個都在 5% 附近,Kupiec 檢定沒有一個拒絕。RWC 的判準第二項(違反率與 5% 的距離 ≤ 0.015)在兩個標的上都成立。
它失敗在第一項。

用損失函數比,RWC 輸給最簡單的那個
拿 Fissler-Ziegel 聯合損失做 Diebold-Mariano 檢定,基準是 GJR 常態,統計量為負代表基準的損失較低:
| 標的 | 對比 | DM t | p | 平均損失差 | Harvey 顯著 |
|---|---|---|---|---|---|
| SPY | GJR t | −14.4333 | 3.19e-47 | −0.15146 | 是 |
| SPY | 普通 conformal | −7.2064 | 5.74e-13 | −0.10073 | 是 |
| SPY | RWC | −7.7697 | 7.87e-15 | −0.18608 | 是 |
| 0050.TW | GJR t | −15.4666 | 5.83e-54 | −0.18066 | 是 |
| 0050.TW | 普通 conformal | −11.0086 | 3.47e-28 | −0.19442 | 是 |
| 0050.TW | RWC | +0.7049 | 0.4809 | +0.03297 | 否 |
在 SPY 上,三個比較複雜的方法 全部顯著輸給 GJR 常態,RWC 的平均損失差 −0.18608 是三者裡最差的。在 0050.TW 上,RWC 的方向是正的(+0.03297),但 t 值 0.7049、p 0.4809,統計上與基準沒有差別。
六個比較裡,五個顯著說「更複雜的比較差」,一個說「分不出來」。沒有一個說更好。

真正的限制在這裡:狀態不夠用
RWC 是依狀態加權的方法,所以它該被檢驗的地方是 分狀態的違反率 。這份結果檔把那張表算出來了,而表上有一半的格子是空的,空得很誠實。
0050.TW 的三個 HMM 狀態裡, 狀態 1 在整個樣本外期間一次都沒有出現 。四個方法各有一格,共四格,每一格的內容是 n: 0、violation_rate: null、withheld_reason: "regime_absent_in_oos"。
這是這份結果檔最值得學的設計:一個沒有觀測的狀態,違反率被記成 null 並附上具名原因,而不是記成 0,也不是省略。記成 0 會讓人以為那個狀態下的模型完美;省略會讓人以為表格本來就只有兩列。
SPY 那一側的問題形狀不同但同樣要命。狀態 2 在樣本外只有 6 天 ,四個方法在這 6 天裡的違反率全部是 0.1667——那是 6 分之 1,也就是一次違反。一次違反算不出任何東西。
所以真正的情況是:一個為了處理狀態差異而設計的方法,在這段樣本外期間裡, 兩個標的都沒有足夠的狀態變化可以檢驗它 。SPY 有 637 天在狀態 0、109 天在狀態 1、6 天在狀態 2;0050.TW 有 702 天在狀態 0、0 天在狀態 1、22 天在狀態 2。加權方案的差別必須靠非主要狀態的表現才看得出來,而非主要狀態的天數是 6 和 22。
唯一能看的那一格,RWC 的方向是反的
SPY 的狀態 1 有 109 天,是四張表裡唯一一個樣本量夠到值得看一眼的非主要狀態。四個方法在這 109 天裡的違反率:
| 方法 | 狀態 0(637 天) | 狀態 1(109 天) | 狀態 2(6 天) |
|---|---|---|---|
| GJR 常態 | 5.4945% | 1.8349% | 16.6667% |
| GJR t | 6.2794% | 1.8349% | 16.6667% |
| 普通 conformal | 4.7096% | 1.8349% | 16.6667% |
| RWC | 6.9074% | 0.9174% | 16.6667% |
狀態 1 那一欄,前三個方法完全相同(1.8349%,也就是 109 天裡 2 次),RWC 是 0.9174%(1 次)。狀態 0 那一欄,RWC 是四個裡最高的 6.9074%,普通 conformal 是最低的 4.7096%。
換句話說,加權的效果是把覆蓋從佔多數的狀態 0 挪到少數的狀態 1,讓狀態 1 從已經偏保守的 1.83% 變得更保守到 0.92%,同時讓狀態 0 從 4.71% 惡化到 6.91%。名目水準是 5%,所以兩個方向都在遠離目標。
這段只能當作觀察,不能當作結論:109 天裡 2 次與 1 次的差別是一次違反,任何檢定都分不出來。它與整體的損失比較同向,那是它唯一的價值。
三個方法的風險值寬窄
損失差異的來源可以從平均風險值與平均期望損失看出一部分:
| 標的 | 方法 | 平均 |VaR| | 平均 |ES| | 平均 FZ 損失 |
|---|---|---|---|---|
| SPY | GJR 常態 | 0.014756 | 0.018505 | −5.500281 |
| SPY | 普通 conformal | 0.015339 | 0.020697 | −5.399548 |
| SPY | RWC | 0.014909 | 0.020835 | −5.314198 |
| 0050.TW | GJR 常態 | 0.019956 | 0.025026 | −5.149720 |
| 0050.TW | 普通 conformal | 0.019505 | 0.028103 | −4.955303 |
| 0050.TW | RWC | 0.017824 | 0.021001 | −5.182685 |
在 SPY 上,RWC 的風險值比普通 conformal 窄(0.014909 對 0.015339)而期望損失更寬(0.020835 對 0.020697),違反率也更高。在 0050.TW 上,RWC 兩個都最窄,而它也是那個標的上唯一沒有顯著輸給基準的方法。FZ 損失評的是風險值與期望損失的聯合表現,所以這兩欄解釋了為什麼同一個方法在兩個標的上的 DM 結果方向不同。
這個 null 的檢定力上界
樣本外只有一段,SPY 752 天、0050.TW 724 天,兩個標的共用同一段日曆期間(2023 年初到 2025 年底),彼此不獨立。
分狀態的檢驗實際可用的樣本是 6 天與 22 天,那個量級下任何違反率的信賴區間都會寬到無法排除任何假設。alpha 只測了 5% 一個水準,沒有做多重 alpha 掃描。
結果檔自己列的四條限制也屬於這個上界:只用 repo 內已存的日收盤資料、沒有即時重抓;狀態加權建立在 |報酬| 的三狀態高斯 HMM 上,不是 VIX;conformal 疊加用 GJR 常態的波動當標準化的骨幹;本輪只跑一個 alpha。
所以這個 null 的範圍是: 這兩個標的、這一段樣本外、這個 HMM 設定、alpha = 5% 之下,RWC 沒有展現出優於普通 conformal 的條件覆蓋,也沒有在損失上贏過最簡單的 GJR 常態。 它沒有證明狀態加權這個想法無效,它證明的是這一段樣本外裡狀態變化不夠,測不動這個想法。
接下來能做什麼
這個 null 的成因指向明確的下一步,而它們都不是「換一個模型再試一次」。
把樣本外拉長到涵蓋足夠的狀態切換。 訓練段是 2012-01-01 到 2022-12-31,樣本外只有三年;SPY 全樣本 3,519 天、0050.TW 3,416 天,其中只有 752 天與 724 天在樣本外。狀態 2 在 SPY 出現 6 天、在 0050.TW 出現 22 天,要檢驗分狀態的覆蓋,需要的是一段包含更多次狀態切換的樣本外期間,而非更多天數本身。
先問這個 HMM 切出來的狀態是不是想要的狀態。 三個狀態建立在 |報酬| 上,而 0050.TW 的狀態 1 在三年樣本外一次都沒出現,這件事本身就值得檢查:一個訓練段學到、樣本外從不發生的狀態,可能是訓練期特有的結構,也可能是狀態數設定得太多。
把 alpha 掃開。 本輪只跑 5%。條件覆蓋的差異在尾端更深處(1%)通常更明顯,而那正是風險值使用者關心的位置。
資料與程式 :experiments/k1420/k1420.py、experiments/k1420/k1420_results.json。圖:experiments/k1420/fig_violation_compare.png、experiments/k1420/fig_breach_count.png。
方法文獻 :結果檔的 references 欄列出五項——Kupiec (1995)、Christoffersen (1998)、Engle and Manganelli (2004)、Fissler and Ziegel (2016),以及被檢驗的那篇 Regime-Weighted Conformal VaR (arXiv:2602.03903)。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊