預估最壞一天的虧損:常態假設在四格測試都被抓到低估,厚尾模型的名次隨標的而變、差距多半看不出來
讀者互動
登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
摘要
同一套波動率模型、四種「極端下跌長什麼樣」的假設,在美股大盤 ETF(SPY)和高收益債 ETF(HYG)上各測 5% 與 1% 兩個風險水準,共四個測試格。日報酬從 2007-04-12 到 2026-07-02(4,837 天),樣本外從 2015-01-01 起算,每格 2,891 個交易日。
結果可以分成兩層,穩的在前面:
- 常態假設不夠,這一層最穩。 用「預期損失」(ES,跌破 VaR 時平均會虧多少)的累積證據去檢查,常態假設在四格都升到最高一級警報(門檻 10);Student-t 在 2 格升到 10;歷史殘差(FHS)在 1 格;極值理論(EVT)在 0 格,最高只到 5。
- 厚尾模型之間誰贏,要看標的,而且差距多半沒有過門檻。 聯合評分(同時打 VaR 與 ES 的 Fissler-Ziegel 損失)的最佳模型,SPY 兩格是 EVT,HYG 兩格是 Student-t。但這個排序只是點估計:EVT 對三個對手共 12 組比較裡有 3 組通過 Harvey 的 |t| > 3 門檻,全是 EVT 勝;HYG 上 Student-t 的領先沒有一組過門檻(t 為 −1.78 與 −2.24)。
所以能說的是「沒有一種尾部假設通吃」,不能說的是「股票用 EVT、信用債用 Student-t」。兩個標的各只有一檔,這個結果不夠把它推成通則。
為什麼測這個
銀行與基金估風險,現在愈來愈看 ES 而不只是 VaR(巴塞爾委員會 2019 年的市場風險資本規則就以 ES 為準)。VaR 回答「除了最糟的那一小撮日子,一天最多虧多少」,ES 回答「真的跌破那條線的時候,平均虧多少」。估 ES 要先假設尾巴的形狀,常見做法是用 GARCH 類模型估當天的波動,再把報酬除以波動,剩下的殘差去配一個尾部形狀。
這次固定波動模型(GJR-GARCH,每年以擴張的歷史窗口重估一次),只換尾巴:
- 常態 :尾巴細,極端下跌被當成罕見。
- Student-t :厚尾,並用單位變異數標準化後再取分位數。
- FHS(歷史殘差) :不假設形狀,直接用訓練期的殘差經驗分布。
- EVT :最極端的前 10% 殘差用極值理論的一般化 Pareto 分布配尾巴。
標的選 SPY 與 HYG,是為了看「股票指數」和「信用債 ETF」的尾巴會不會要求不同的處理。
結果一:常態假設在四格都被抓到低估 ES
預期損失的檢查用的是序列式 e-backtest(Wang、Wang 與 Ziegel 的 e-值框架):每天拿實際跌破 VaR 的幅度和模型預測的 ES 比,累積成一個證據分數(250 天視窗),分數升到 2、5、10 三個門檻,代表「模型低估了 ES」的證據一級比一級強。

- 常態:四格全部升到 10。在 SPY 1% 這一格,常態的實際跌破率是 1.87%,目標是 1%。
- Student-t:越過 2 的有 3 格,升到 10 的有 2 格(SPY 兩格)。
- FHS 與 EVT:各只有 1 格越過 2,都是 SPY 1%;FHS 在那一格升到 10,EVT 最高只到 5。
另一個角度是跌破 VaR 的那幾天,實際平均損失除以模型預測的 ES。常態在四格都高於預測值(比值 1.10 到 1.28),也就是實際比預測更慘:
| 尾部假設 | SPY 5% | SPY 1% | HYG 5% | HYG 1% |
|---|---|---|---|---|
| 常態 | 1.19 | 1.28 | 1.10 | 1.16 |
| Student-t | 1.07 | 1.14 | 0.96 | 1.00 |
| 歷史殘差(FHS) | 1.06 | 1.15 | 0.93 | 0.98 |
| 極值理論(EVT) | 1.05 | 1.16 | 0.92 | 0.96 |
這個比值只用跌破日(5% 格的跌破日有一百多天,1% 格只有十幾到五十幾天),1% 格雜訊大,只看方向。EVT 在 SPY 1% 的比值也是 1.16,沒有完全消除低估,只是證據分數沒有累積到高門檻。
結果二:厚尾模型之間的聯合評分,差距多半沒有過門檻
聯合評分的最佳者在 SPY 兩格是 EVT,在 HYG 兩格是 Student-t。下表是各對手的損失減去 EVT 的損失(正值代表 EVT 較好),括號內是 Diebold-Mariano 的 t,★ 表示 |t| 超過 3.0(Harvey 門檻):
| 對照組(對 EVT) | SPY 5% | SPY 1% | HYG 5% | HYG 1% |
|---|---|---|---|---|
| 常態 | +0.0169(t 1.45) | +0.1909(t 3.01) ★ | −0.0050(t −0.66) | −0.0066(t −0.12) |
| Student-t | +0.0165(t 1.26) | +0.0642(t 2.18) | −0.0162(t −1.78) | −0.0495(t −2.24) |
| 歷史殘差(FHS) | +0.0016(t 3.34) ★ | +0.0044(t 0.73) | +0.0013(t 1.32) | +0.0065(t 3.00) ★ |
- EVT 有 3 組通過門檻:SPY 5% 對 FHS(t 3.34)、SPY 1% 對常態(t 3.01)、HYG 1% 對 FHS(t 3.00)。其中兩組的 t 只比 3.0 多一點,對 FHS 的損失差也很小。
- EVT 沒有任何一組輸到過門檻。
- HYG 上 Student-t 的領先(t −1.78、−2.24;後者雙尾 p = 0.025)沒有過 Harvey 門檻。比較總共有 12 組,沒有再做多重檢定校正,這些勝負只能當描述。
結果三:校準面,EVT 在 HYG 1% 偏保守,Student-t 的 5% 偏鬆
下表是實際跌破 VaR 的比例,括號內 ✓ 為 Kupiec 檢定未拒絕、✗ 為拒絕:
| 尾部假設 | SPY 5% | SPY 1% | HYG 5% | HYG 1% |
|---|---|---|---|---|
| 常態 | 5.29%(✓) | 1.87%(✗) | 4.67%(✓) | 1.35%(✓) |
| Student-t | 6.16%(✗) | 1.45%(✗) | 5.88%(✗) | 0.83%(✓) |
| 歷史殘差(FHS) | 4.29%(✓) | 1.11%(✓) | 4.22%(✗) | 0.55%(✗) |
| 極值理論(EVT) | 4.36%(✓) | 1.00%(✓) | 4.43%(✓) | 0.59%(✗) |

- Student-t 在兩個標的的 5% 都跌破太多 :SPY 為 6.16%(Kupiec p = 0.006),HYG 為 5.88%(p = 0.034)。它在 HYG 5% 仍是聯合評分第一,所以聯合評分第一和覆蓋率檢定通過是兩回事,兩者衡量的東西不同。
- EVT 在 HYG 1% 偏保守 :跌破率只有 0.59%(目標 1%,Kupiec p = 0.016),FHS 是 0.55%(p = 0.008)。保守的模型不會被 ES 的 e-backtest 抓到,因為它只檢查低估,所以這一格的缺點要看覆蓋率才看得到。
- EVT 在 HYG 5% 的獨立性檢定 p = 0.036,跌破日有成串出現的跡象。
這個結果能怎麼用
- 如果你還在用常態假設估 ES,這一組資料的方向很清楚:在兩個標的、兩個水準上,它都被 ES 低估證據打到最強警報。
- 如果你在厚尾模型之間選,不要只看聯合評分的名次。這裡差距多半沒有過門檻,名次會隨標的、水準翻轉;改用覆蓋率與 ES 低估警報一起看,才看得出 Student-t 的 5% 偏鬆與 EVT 在 HYG 1% 偏保守。
- 「EVT 比 Student-t 好」或「信用債要用 Student-t」都超出這份證據。
限制
這組實驗的程式經 Codex 審查,結論是 有條件通過 :沒有發現會推翻主要結論的錯誤,但列出以下限制,也是這篇結論的範圍:
- 只有兩檔標的的日頻還原收盤價診斷 ,不是完整的監理投資組合,也沒有用到盤中資料。
- EVT 的門檻固定在前 10% ,沒有做門檻敏感度網格;結論是「有競爭力,未主導」,不是「EVT 較好」。
- 波動模型每年重估一次(擴張窗),不是 250 天滾動估計 ,與監理實務的估計方式不同。
- 「Basel」區間是依本樣本的 2,891 天算出的二項分布區間(例如 5% 水準的綠區上限是 164 次跌破) ,不是監理實務的 250 天計次規則;表中只引用 Kupiec 與 e-backtest,沒有用它下結論。
- 12 組聯合評分比較沒有多重檢定校正 ;每格的跌破次數有限,1% 水準的樣本尤其少。
- 兩個標的各一檔、時間只有 2015 年至 2026 年 ,標的差異不能推成資產類別的通則。
資料與復現
- 資料:SPY 與 HYG 的還原收盤價,已凍結於
experiments/research_evt_pot_gpd_garch_filter_es_e_backtesting/prices_spy_hyg_2007_2026.parquet;日報酬區間 2007-04-12 至 2026-07-02,樣本外從 2015-01-01 起。 - 程式與結果:
experiments/research_evt_pot_gpd_garch_filter_es_e_backtesting/research_evt_pot_gpd_garch_filter_es_e_backtesting.py、experiments/research_evt_pot_gpd_garch_filter_es_e_backtesting/research_evt_pot_gpd_garch_filter_es_e_backtesting_results.json;重跑核對報告為reproduce_report.json(1,044 個值在事先宣告的容差內全數相符)。 - 文中數字取自結果檔的具名欄位;圖是用結果檔的既有數值重畫,沒有重新估計。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊