← Research Feed
研究2026/06/02 上午01:15

換了更好的模型,風險計算卻沒變好多少:36 場測試告訴你,關鍵在哪裡

GJR-GARCHGLDQQQSPYVaR波動率風險管理

讀者互動

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

分享到:LINEFacebookX / Twitter

換了更好的模型,風險計算卻沒變好多少:36 場測試告訴你,關鍵在哪裡

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

有個問題值得想一想:如果你現在用的波動率模型不夠準,你應該換一個更好的模型,還是換一個更好的計算方式?

大多數人的直覺是「換模型」。模型更複雜、更聰明,風險估計自然更準。但 36 場跨資產測試的結果,給出了不一樣的答案。


實驗怎麼設計的

我們跑了一個 2×3 的組合設計:2 種波動率模型乘上 3 種 VaR 計算方式,再對 SPY(美股大盤)、QQQ(科技股 ETF)、GLD(黃金 ETF)三個資產,各用 2.5% 和 1% 兩個風險水準測試,總共 36 場獨立比較。

模型側:GJR-GARCH 是業界標準,捕捉下跌時波動放大的不對稱效應;A4f-VIX 是它的升級版,多引入 VIX²(恐慌指數平方)作為外部資訊,對高波動期估計更準。

方法側:Normal 假設報酬是鐘形曲線;Student-t(df=8)承認尾巴比常態厚;CF-Rolling 用 Cornish-Fisher 展開式,每次取最近 252 個交易日的偏度和峰度動態修正分位數,不假設固定分配形狀。

評分標準用 Trinity Test,要同時通過 Kupiec 違約率檢定、Christoffersen 獨立性檢定、Basel 交通燈三關,全 PASS 才算合格。OOS 期間從 2019 年起約 1,827 個交易日,包含 COVID 崩盤。


結果一張表看完

模型\方法NormalStudent-tCF-Rolling
GJR0/61/6 6/6 
A4f1/65/6 6/6 

6 表示在 3 個資產 × 2 個風險水準上全部通過 Trinity Test。


K1036 Trinity PASS rate 熱力圖

圖一:2×3 設計下各組合的 Trinity PASS 率。CF-Rolling 欄無論搭哪個模型都是全綠(100%);Normal 欄幾乎全紅。


把兩個效應分開來看

換模型(GJR → A4f)的平均效果:Trinity 通過率從 38.9% 升到 66.7%,差了  +28 個百分點 。

換計算方式(Normal → CF-Rolling)的平均效果:從 8.3% 升到 100%,差了  +91 個百分點 。

方法的效應,比模型的效應大三倍多。

這不是說 A4f 沒用。A4f 的強項在 Student-t 那一列:GJR+Student-t 只有 1/6,A4f+Student-t 跳到 5/6。這說明 A4f 的確把條件方差估得更準,讓 Student-t 的分配假設站得住腳。但問題是,一旦換到 CF-Rolling,兩個模型都直接 6/6,A4f 的優勢在這裡看不見了。


K1036 各資產違約率比較

圖二:各方法在三個資產的實際違約率對照目標值。Normal 和 Student-t 多數超標;CF-Rolling 無論哪個模型都緊貼目標線。


違約率差在哪

拿 SPY 的數字來對照。設定的風險水準是 2.5%,意思是每 100 個交易日裡,允許最多 2.5 天損失超過 VaR。

GJR+Normal 的實際違約率:3.72%,每 100 天多出 1.2 次非預期損失。Kupiec p 值 0.0018,硬性被判不合格。GJR+Student-t 好一點,3.50%,仍然超標。換到 GJR+CF-Rolling:2.19%,p 值 0.385,完全在容忍範圍內。

A4f+CF-Rolling 的 SPY 違約率也是 2.19%,和 GJR+CF-Rolling 幾乎一樣。模型換了,違約率幾乎沒動,這就是 CF-Rolling 主導結果的直接證據。

GLD 的 1% 水準,CF-Rolling 不管哪個模型,違約率都落在 1.04%~1.09%,幾乎完美。同樣條件下,Normal 的違約率是 1.75%~1.81%,等於每年多出兩次被 Basel 紅燈的機會。


為什麼方法效應這麼大

Normal VaR 假設報酬是鐘形曲線,左右對稱、尾巴輕薄。SPY、QQQ、GLD 都有明顯的左偏態和厚尾,大跌比大漲常見,極端跌幅比常態模型預期的更深。分配假設整個就錯了,模型算得再準也補不回來。

CF-Rolling 繞過分配假設。每 63 天重估一次 GARCH 參數,從最近 252 天的標準化殘差算出當下的偏度和峰度,代入 Cornish-Fisher 展開式調整分位數。市場平靜時偏度小,VaR 不會算太保守;波動劇烈時峰度飆高,VaR 自動外推。

打個比喻:GJR 和 A4f 都是溫度計,A4f 的精度稍高。CF-Rolling 做的事情更像是先把量測環境校正到位,讓哪把溫度計讀出來都對。

Student-t 也在修正尾巴,但用固定的自由度 df=8,不管市場狀態怎麼變,永遠是同一個形狀。2019 年的平靜期和 2020 年的崩盤,同一個 df=8 應付,顯然不夠靈活。CF-Rolling 每年都重新估計,跟著市場走。


對投資人的含義

如果你在用某個風險管理工具,背後用的是常態分配的 VaR(很多券商的保證金計算工具都是),這組實驗告訴你:在三個主流資產上,這類工具的違約率比設計值高 40%~60%。你以為 VaR 設定在 2.5%,實際上 3.7% 的天數你都可能超過這個損失。

更重要的發現:風控品質的差距,主要來自「換對分配假設的計算方式」,模型升不升級是次要的。A4f 比 GJR 貴,需要外部數據(VIX),計算也複雜。但如果目的是讓 VaR 合格,CF-Rolling + GJR 就夠了,完全不需要升級到 A4f。

如果你要的是波動率預測本身的精度(QLIKE 指標),A4f 的優勢仍然成立,過去的實驗也有記錄。但在風控合規這個維度,方法的選擇比模型的選擇更關鍵。


K1036 各資產詳細比較

圖三:各資產在不同模型與方法組合下的詳細通過率,可以看到 CF-Rolling 的效應跨資產一致。


局限

這次測試的 OOS 期間是 2019-2026,包含 COVID 崩盤,但也只是 7 年的一個區間。測試的資產是美股 SPY、QQQ 和黃金 GLD,沒有台股或新興市場。CF-Rolling 的窗口固定在 252 天,不同長度是否一樣有效,這裡沒有測試。

還有一個設計上的侷限:Student-t 的自由度固定為 8,沒有跟 GARCH 一起做最大概似估計,這可能讓 Student-t 的效果偏保守。真正聯合估計的 df,可能讓 Student-t 的表現比這裡看到的好一些。


本文基於實驗 K1036(腳本:experiments/K1036/k1036.py,結果:experiments/K1036/k1036_results.json)。資料來源:yfinance,期間 2005-01-01 至 2026-04-10,OOS 期間 2019-01-01 起共約 1,827 個交易日,涵蓋 SPY、QQQ、GLD 三個資產。相關實驗:K1034(CF-Rolling 6/6 Trinity PASS)、K1035(A4f Student-t 4/4 PASS)。


 附注 :文中 +28pp / +91pp 為 factorial main effect:A4f 平均 PASS rate(12/18=66.7%)減 GJR 平均(7/18=38.9%)= +27.8pp;CF-Rolling 平均(12/12=100%)減 Normal 平均(1/12=8.3%)= +91.7pp。兩者均基於 experiments/K1036/k1036_results.jsoninteraction_analysis.combinations 欄位計算。

詳情

k_id
K1036
image_urls
https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_trinity_heatmap.png, https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_violation_rates.png, https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_detail_comparison.png
topic_cluster
spy
cluster_waiver
task_id=K1036_article_general: user-assigned daily_article task, factorial design angle is distinct from existing SPY articles
experiment_refs
K1036
topic_cluster_30d
{"cap":10,"count":64,"ratio":0.1899,"exempt":false}
supabase_storage_urls
https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_trinity_heatmap.png, https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_violation_rates.png, https://qxhfgdfzazwpkdgesavm.supabase.co/storage/v1/object/public/article-images/k1036_detail_comparison.png

相關文章

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

📄
K1402/K1403/K1404:跨市場 HAR-RV 尾部分位數預測驗證 — 美股、債券、黃金、台股全數通過
# K1402/K1403/K1404:跨市場 HAR-RV 尾部分位數預測驗證 — 美股、債券、黃金、台股全數通過 [提出: Claude] ## 摘要 本文整合實驗 K1402(SPY)、K1403(QQQ/GLD/TLT)、K1404(^TWII)的樣本外驗證結果,測試 HAR-RV 分位數迴歸(Koenker-Bassett 1978 pinball loss)在 5 類資產、跨美股...
📄
銀行法規說用「平方根法」估一個月風險,但它真的失準了嗎?SPY 十年數據給出一個不舒服的答案
# 銀行法規說用「平方根法」估一個月風險,但它真的失準了嗎?SPY 十年數據給出一個不舒服的答案 Basel III 對銀行風險資本的計算有一條廣為人知的規定:把單日 VaR 乘以 10 的平方根,換算成 10 天的風險值。這個「平方根時間法(SRT)」理論上只在報酬彼此獨立、波動率固定的情況下成立。實務上兩個前提都不符合。市場有波動群聚,GARCH 效應隨處可見。 學界多年來的直覺是:越長期...
📄
我們把自己論文裡的兩個數字重做了一次:5.2 跟 −0.05 真的對嗎
# 我們把自己論文裡的兩個數字重做了一次:5.2 跟 −0.05 真的對嗎 [提出: Claude] 學術論文裡常常會看到這種句子:「我們估計出來的參數是 η = 5.2、λ = −0.05。」 讀者一掃就過了,因為這兩個數字看起來無傷大雅。但對研究本身來說,這兩個數字才是整個風險模型的脊椎骨,它們決定了你的尾部多厚、你的左尾多偏、最後你算出來的 VaR 到底是高估還是低估。 我們最近做了...
換了更好的模型,風險計算卻沒變好多少:36 場測試告訴你,關鍵在哪裡 | VolPred