VIX 和 GARCH 的差,能告訴你市場明天會怎樣嗎?
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
VIX 和 GARCH 的差,能告訴你市場明天會怎樣嗎?
2026-06-01 修訂 :Codex 24h source-code 審查指出原文兩處 claim/code 口徑誤標:(1) 樣本外 R² / F 檢定的預測目標是「22 日後已實現波動率」非「5 日後」;(2)「Regime t-test p=0.963」實際計算範圍是 full sample 期間(2006-2024),非 OOS 子樣本。已於本版修正並保留原始數據結論(null 結果方向不變)。詳見文末「修訂紀錄」。
「隱含波動率減已實現波動率」這個數字,學術界叫它 variance risk premium,散戶通常叫它「恐慌溢酬」。19 年的 SPY 數據,把它量化出來:平均一天 +0.18%,年化 +2.93%,82.7% 的交易日這個差值是正的。
換句話說,市場幾乎每天都給選擇權賣方多付一點保險費。這個現象是真的、持續的、可以量化的。
問題是:知道這個差值的大小,能讓你預測未來的波動率嗎?
這個「差」長什麼樣
本文用的計算方法:每天用 VIX(S&P 500 隱含波動率,年化)減去 GJR-GARCH 對同日的預測值(也是年化),得到一個「gap」序列。資料來源是 SPY 股價與 ^VIX,2006 年到 2024 年底,共 4780 個交易日,有 gap 數值的有 2780 筆(前段需要先有足夠的訓練資料才能跑 GJR-GARCH)。
這個 gap 系列幾個特徵值得記下來:
| 統計量 | 數值 |
|---|---|
| 日均值(年化) | +2.93% |
| 標準差(年化) | 5.58% |
| 正值比例 | 82.7% |
| 偏度 | −3.05(偏左肥尾) |
| 峰度 | 31.8(比常態厚非常多) |
| ACF(1) | 0.752 |
| Half-life | 2.43 天 |
偏度 −3.05 的意思是:大部分時候 gap 偏正(VIX 高估),但有少數幾天 gap 突然衝到很負,通常對應 VIX 在市場急跌時跳得比 GARCH 預測更快更高,造成 gap 一瞬間轉負。半衰期 2.43 天代表這個 gap 不是一個月後才均值回歸,兩三天就回去了。
樣本內看起來很有料
把當天的 gap 拿去跟未來 5 天的已實現波動率做相關:−0.274(p 值約 10⁻⁴⁹,幾乎確定不是隨機)。22 天相關也是 −0.204。
光看這個你可能覺得:gap 越大(市場越恐慌)、未來波動率越低,這是 mean-reversion 效果,很直觀。
但更有趣的是偏相關:在控制 VIX 本身之後,gap 對未來 5 日波動率的邊際貢獻是 −0.233。在控制 GARCH 預測值之後,gap 的邊際貢獻是 +0.371。
後者的意思是:如果你已經有 GARCH 的預測,把 gap 加進去還能額外解釋未來波動率。這個數字放在學術論文裡會讓不少人眼睛一亮。
樣本外翻臉了
測試期間:2023 年到 2024 年底,共 480 個交易日。比較四種模型的樣本外 R²( 預測目標是未來 22 日,即約 1 個月的已實現波動率 ):

| 模型 | OOS R² |
|---|---|
| VIX alone | 17.92% |
| GARCH alone | 8.74% |
| VIX + Gap | 17.93% |
| Gap ratio alone | 0.35% |
VIX 加上 Gap 之後,R² 從 17.92% 變成 17.93%。增量:0.0147 個百分點。
統計學上怎麼看:F 統計量 0.085,p 值 0.77。意思是:這個增量和零沒有統計上的差別。
為什麼會這樣
VIX 本身的計算方式,是用選擇權市場對未來波動率的期望(risk-neutral measure)。這個期望已經把 variance risk premium 吸進去了。所以 VIX 和 gap 在資訊上不是獨立的,gap 是 VIX 的衍生物,不是一個新的資訊來源。
GARCH 預測本身能解釋的比 VIX 少(8.74% vs 17.92%),這符合實務認知:選擇權市場的前瞻資訊量通常比純時序模型更豐富。但把 gap(VIX 減 GARCH)加回 VIX 旁邊,只是在 VIX 旁邊放了一個它自己的線性組合,沒帶進新的資訊。
偏相關那個 +0.371 是真的嗎?在樣本內是真的。問題是這個相關在樣本外對 VIX 基準完全沒有增量。樣本內的數字告訴你的是「歷史期間裡 gap 和波動率有統計關係」,不是「用 gap 能讓你的預測更準」。
Regime 分析:直覺上對,但 p 值說 no
把 OOS 期間(2023-2024,480 個交易日)的每個交易日依 gap 大小分成四組(各約四分之一),看後 22 日的平均報酬:

| Regime | OOS 樣本數 | 後 22 日平均報酬 |
|---|---|---|
| High Fear(gap 最大) | 96 | +1.32% |
| Moderate High | 142 | +2.06% |
| Moderate Low | 147 | +2.29% |
| Complacent(gap 最小) | 95 | +2.58% |
方向對了:越恐慌、未來報酬越低。這和直覺一致,高恐慌時市場通常在消化某個衝擊,短期還是壓力。
極端組(High Fear vs Complacent)做 Welch t-test, 口徑是 full sample(2006-2024)整個期間,不是 OOS 子樣本 :p = 0.9629,差異完全不顯著。OOS 子樣本(各組僅約 95-96 筆)太小,獨立做 t-test 信度也不足,結論與 full sample 同方向(null)。
誤差棒很大。即使用整個 full sample 期間(2006-2024)做 t-test,22 日 forward returns 在不同分組間的差距也淹沒在標準差裡;OOS 子樣本只有 480 天分四組就更不可能拉出顯著差。
給投資人的三條結論
第一條:variance risk premium 是真實的 。19 年裡有 82.7% 的天數 VIX 高於 GARCH 預測,平均年化 +2.93%。這個溢酬在學術上有很多文獻支撐(Carr & Wu 2009、Bollerslev et al. 2009),本文的實證只是把它確認一次。選擇權賣方靠的就是這個長期收取保險費的結構。
第二條:gap 在 OOS 對 VIX 沒有增量 。預測目標是 22 日後已實現波動率,F = 0.085,p = 0.77,這個 null 結果非常乾淨。如果你已經在用 VIX 預測一個月後的波動率,再算一個 VIX 減 GARCH 的差值加進去,不會讓你的預測改善。
第三條:樣本內的漂亮相關不等於樣本外能用 。這是量化研究裡最常見的陷阱之一,不是最顯眼的那種(那種是 Sharpe 10 倍的策略),是更低調的:偏相關 0.37、p 值接近零,看起來很強,但加進 OOS 預測框架後完全消失。這種訊號在 backtest 會讓你覺得很有料,上線後讓你搞不懂為什麼沒用。
數據來源與方法
- 資產:SPY ETF + ^VIX,yfinance 抓取
- 期間:2006-01-04 ~ 2024-12-31(共 4780 個交易日,有 gap 值的 2780 筆)
- GJR-GARCH:rolling 2000-day fixed window(不是 expanding),每日 refit 給次日預測,t 日預測只用 ≤ t-1 日資料
- OOS 評估期:2023-01-01 ~ 2024-12-31(480 個交易日)
- OOS R² / F 檢定的預測目標:22 日後(≈1 個月)已實現波動率
- 失敗 fallback:GJR-GARCH 收斂失敗時退回 EWMA λ=0.94(極少數,不影響整體結論)
- 實驗代碼:experiments/K208
修訂紀錄(Errata)
2026-06-01 (Codex source-code 24h 審查觸發):
- OOS 預測 horizon 標籤誤標 :原文寫「樣本外 R² 預測目標是 5 日後波動率」,code 實際使用
rv_22d_fwd(22 日後)。所有 OOS R² 數字(17.92% / 8.74% / 17.93% / 0.35%)與 F 檢定(F=0.085, p=0.77)本身正確,但代表的是 22 日 horizon,已修正文字。 - Regime t-test 樣本範圍誤標 :原文暗示 t-test p=0.963 在 OOS 子樣本計算,code 實際在 full sample(2006-2024)計算。p 值 0.9629 本身正確,但範圍應為 full sample,已修正文字。OOS 子樣本太小(480 天分 4 組)獨立做 t-test 信度不足,結論與 full sample 同方向。
- GARCH 視窗描述補充 :原文「估計窗口 2000 天,滾動向前更新」屬實但偏簡化;補充說明為 fixed 2000-day rolling(非 expanding),且收斂失敗會 fallback EWMA。
三條核心結論方向不變:(a) variance risk premium 是真實的、(b) gap 對 VIX 增量在 OOS 上是 null、(c) IS 漂亮相關不等於 OOS 能用。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊