← 研究動態
研究2026/05/17 上午07:58

短天期恐慌指數已經夠了:把 VIX9D 和 VIX3M 一起放進模型,反而沒有加分

期限結構波動率預測恐慌指數風險模型資料診斷

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。

研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。

訂閱研究摘要

研究摘要與新文章,不轉售、不寄廣告,隨時可退訂。

短天期恐慌指數已經夠了:把 VIX9D 和 VIX3M 一起放進模型,反而沒有加分

一句話結論

我們在 SPY(追蹤 S&P 500 的 ETF)上做了一個直覺的延伸實驗:既然 9 天版本的恐慌指數(VIX9D)已經被先前研究證明比傳統 30 天 VIX 更會預測短期波動,那如果把 3 個月版本的 VIX3M 也一起放進模型,是不是會更厲害?答案出乎意料地乾脆: 沒有更厲害,VIX3M 完全派不上用場 。

為什麼要做這個實驗

恐慌指數家族其實有好幾個成員,差別在於「看多遠」:

  •  VIX9D :用未來 9 天的 S&P 500 選擇權算出來的隱含波動率
  •  VIX :傳統的 30 天版本(你在新聞看到的那個)
  •  VIX3M :90 天(3 個月)版本

直覺上會這樣想:短天期(VIX9D)抓得到當下的緊張情緒;中天期(VIX3M)反映市場對未來幾個月的看法。如果把兩個放在一起,模型理論上能同時看到「現在多怕」和「之後預期多怕」,應該比只看一個更全面。

更進一步,我們可以把兩者相除做出 期限結構斜率 (VIX9D / VIX3M − 1)。當這個斜率為負(VIX9D < VIX3M),代表市場預期未來會更不安;為正則代表現在比未來更恐慌(通常出現在突發崩盤時)。這個訊息在交易圈很受重視,那它對波動率預測有沒有幫助?

這就是 K1015 想要嚴格回答的問題。

我們怎麼做

我們用 SPY 從 2011 年初到 2026 年 4 月、總共 3,839 個交易日的資料,把資料切成兩段:

  •  訓練樣本 :2011-01 到 2018-12(用來估計模型參數)
  •  真正用來評分的樣本 :2018-12 到 2026-04,共  1,839 個交易日 (樣本外測試)

樣本外測試的意思是:模型完全沒看過這些日子,要靠它每天「先預測明天的波動」,再把預測值跟實際發生的波動比對。我們每 63 個交易日(約 3 個月)重新估計一次參數,避免模型參數過時。

我們比較了 6 個版本的模型:

模型設定簡述
M1:A4f-VIX9D只用 VIX9D 當外生因子對照組(先前研究的優勝者)
M2:A4f-VIX3M只用 VIX3M看 VIX3M 單獨多強
M3:A4f-雙因子VIX9D + VIX3M 一起放 本次主角 
M4:A4f-斜率VIX9D + 期限結構斜率 本次主角 #2 
M5:A4f-VIX只用傳統 30 天 VIX經典參照
M6:GJR-GARCH不用任何 VIX,純粹靠歷史報酬純技術派基準

所有模型的殘差分佈都用 Student-t(厚尾),這是 SPY 報酬非常公認的做法(峰度高達 13.83)。

主要結果一:VIX3M 加進去等於沒加

下面是 6 個模型在樣本外的 QLIKE 損失(負數越小代表預測越準;這是 Patton 2011 推薦的、對代理變數穩健的衡量指標):

排名模型QLIKE跟 M1 比較的統計強度
1M1:A4f-VIX9D −8.382674 —
2M3:A4f-雙因子−8.381938t = −0.298( 未達顯著水準 )
3M4:A4f-斜率−8.379730t = −1.333( 未達顯著水準 )
4M5:A4f-VIX−8.350955t = −4.808(達顯著,但更差)
5M2:A4f-VIX3M−8.329025t = −5.953(達顯著,但更差)
6M6:GJR-GARCH−8.265577t = −6.127(達顯著,但更差)

兩個一起用的雙因子模型(M3)和斜率模型(M4),預測準度跟單獨用 VIX9D(M1)的差距小到無法區分。我們套用 Harvey(2016)的嚴格統計檢驗門檻(統計強度 > 3.0),M3 的差異統計強度只有 0.298、M4 是 1.333, 遠遠不到判定有差異的標準 。

主要結果二:模型自己直接把 VIX3M 的權重歸零

最有趣的證據在參數本身。當我們強迫模型同時擬合 VIX9D 和 VIX3M 的權重(M3),最後估計出來的結果是:

  • VIX9D 的係數:0.0018
  • VIX3M 的係數: 0.0000 

把斜率版本(M4)拿來看也一樣:

  • VIX9D 的係數:0.0017
  • 斜率的係數: 0.0000 

這叫「參數退化」。最佳化演算法在搜尋最能配適資料的參數組合時, 自己決定 VIX3M 和斜率不要也罷 ,把它們的權重自動降到零。換句話說,我們 用最寬鬆的方式給 VIX3M 表現機會 ,它仍然交了白卷。

主要結果三:但 VIX9D 自己很猛

雖然這次的兩個主角(雙因子、斜率)失敗了,但實驗順便驗證了一件事: VIX9D 確實比其他成員更會預測 。

  • VIX9D(M1)vs 傳統 30 天 VIX(M5):統計強度 t = −4.808, 達顯著水準 
  • VIX9D(M1)vs VIX3M(M2):統計強度 t = −5.953, 達顯著水準 
  • VIX9D(M1)vs 純 GARCH(M6):統計強度 t = −6.127, 達顯著水準 

這三個都遠超過 Harvey 嚴格門檻。VIX9D 對短期波動的訊息含量,比 VIX 和 VIX3M 都更高。這跟 K1004 之前的發現一致。

主要結果四:風險量化也對得起來

光看點預測還不夠。對投資人和風險經理而言,更重要的問題是:「 極端虧損會不會比預期更頻繁發生? 」我們算了 2.5% 的 Value-at-Risk(VaR,在險價值)和 ES(預期短缺),看模型給的風險邊界是不是被市場反覆突破:

模型違反次數違反率巴塞爾燈號綜合分數
M1:A4f-VIX9D47 / 18392.56%綠 6 / 6 
M3:A4f-雙因子49 / 18392.66%綠6 / 6
M4:A4f-斜率49 / 18392.66%綠6 / 6
M5:A4f-VIX52 / 18392.83%綠6 / 6
M2:A4f-VIX3M50 / 18392.72%綠6 / 6
M6:GJR-GARCH 62 / 1839  3.37% 綠 4 / 6 

預期違反率是 2.5%。所有 A4f 系列(含外生 VIX 因子)都很接近這個目標,6 項風險檢驗全部通過。 只有純 GARCH 模型 M6 違反次數明顯偏多 (3.37% 高於 2.5%),有兩項檢驗未通過,這也再次顯示,把 VIX 家族訊息加進來確實會幫到極端風險的校準,無論你選哪個 VIX 變體。

圖表:六模型損失比較

六個模型在樣本外的 QLIKE 損失比較

M1(純 VIX9D)以微弱差距領先;M3、M4 跟 M1 幾乎重疊(VIX3M / 斜率係數退化為零);M6 純 GARCH 表現最差。

圖表:VaR 突破時間軸

A4f-VIX9D 模型的 2.5% VaR 違反時點

紅點為 VaR 突破日。觀察期橫跨 2018-12 到 2026-04,包含 COVID 崩盤(2020-03)、2022 升息週期、2024-2025 多次回檔。違反密度與 2.5% 預期均勻一致。

為什麼 VIX3M 沒幫上忙?

這個結果並非完全意外。它跟我們先前在另一個實驗(K879)的發現吻合: VIX 與 VIX3M 之間的回歸速度(reversion)並沒有顯著的訊息含量 。短期恐慌之所以能預測波動,是因為它直接量化了「現在這一刻」市場參與者願意付多少錢買保險。3 個月的 VIX3M 平滑了太多,當 VIX9D 已經把訊號吃掉後,VIX3M 不再帶來額外的東西。

期限結構斜率失敗也是同樣邏輯:當你已經知道 VIX9D,再告訴模型「VIX9D 比 VIX3M 高還是低」,等於提供了一個高度冗餘的二次資訊。

對讀者的實務含意

  1.  波動率預測不需要把 VIX 家族全堆上去 。VIX9D 一個就夠用,加再多反而徒增模型複雜度與過擬合風險。
  2.  「資訊越多越好」是常見的直覺陷阱 。在這個案例裡,模型自己用係數退化的方式告訴我們:第二個變數沒有資訊。 讀任何研究結果時,係數的數值跟 t 統計同樣重要 。
  3.  斜率訊號在交易圈很受歡迎,但在波動率預測上不必過度迷信 。它在某些用途(例如波動率交易策略的進出時點)也許有用,但對於「明天 SPY 會多波動」這個問題,VIX9D 已經把斜率的有用部分吃下去了。
  4.  這是一個誠實的 null result(無顯著效果) 。我們沒有強行宣稱雙因子有用,因為資料沒有支持那個說法。在量化研究中, 忠實報告 null 結果跟報告正面發現同等重要 ——它幫助後續研究者不要再走同一條死路。

重要限制

  • 本實驗只在 SPY 上做,沒有跨資產驗證。在個股、其他指數 ETF、或台股上是否會有不同結果是個開放問題。
  • 樣本外期間(2018-12 到 2026-04)涵蓋 COVID、2022 升息、2024 AI 行情,但沒有 2008 金融海嘯。極端市場結構轉換下 VIX3M 是否會「醒過來」值得在更長樣本驗證。
  • 期限結構斜率我們是用 (VIX9D / VIX3M − 1)² 進入模型,平方掉了正負號的差別。改用「正斜率/負斜率」二分變數的版本還沒測試,這是後續實驗的方向。

資料來源

  •  價格資料 :S&P 500 ETF(代號 SPY),來源 yfinance,2011-01-03 至 2026-04-09,共 3,839 個交易日
  •  波動率指數 :CBOE 發佈的 VIX9D、VIX、VIX3M(同樣透過 yfinance 取得)
  •  完整實驗檔案 :experiments/k1015/
  •  模型程式碼 :k1015.py(含種子 42、樣本外滾動視窗 2000、refit 頻率 63 日)
  •  結果檔 :k1015_results.json(QLIKE、Diebold-Mariano 比較、VaR/ES 回測完整輸出)

方法論依據

  • Engle & Rangel(2008)— Spline-GARCH 雙成份波動率模型
  • Patton(2011)— QLIKE 對代理變數穩健的損失函數
  • Kupiec(1995)/ Christoffersen(1998)— VaR 覆蓋率檢驗
  • Engle & Manganelli(2004)— DQ 動態分位數檢驗
  • Acerbi & Szekely(2014)— ES 回測 Z-statistics
  • Harvey(2016)— 多重檢驗下的嚴格統計強度門檻 統計強度 > 3.0

結語

把更多看似有資訊的變數塞進模型,是研究中常見的誘惑。這次實驗給的答案非常乾淨: 短天期恐慌指數 VIX9D 已經把市場短期不安的訊息榨乾了 ,同家族的 VIX3M 和期限結構斜率不再有額外故事可講。對於關心 SPY 風險預測的讀者,這既是一個簡化模型的好理由,也是一個提醒,統計檢驗的角色,正是要替我們守住「真有效」與「看起來像有效」之間的那條線。

相關文章

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

📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1862:HAR-RV 一個月波動預測的誤差,平均偏誤不隨波動水位變號,隨水位變寬的是誤差分布
用 HAR-RV 預測未來一個月波動的人,常會想加一層修正:波動很高時把預測往下調,波動很低時往上調,理由是 HAR 的均值回歸可能修正過頭。這層修正值不值得加,取決於 HAR 的誤差是否真的隨預測當下的波動水位系統性變號。 一般讀者版〈HAR 波動預測的誤差往哪邊偏:六成交易日高估,平均誤差卻幾乎是零〉處理的是整體偏誤。這篇處理條件結構:依預測當下的波動水位把樣本外日子分成五組,誤差的平均、中位…
→