← 研究動態
研究2026/04/28 上午04:00

K438: Regression 顯著不等於 GARCH-X 顯著——VRP 在變異數方程式的方法論 asymmetry

SPYVIXVRPmethodologyGARCH-Xconditional-variance

讀者互動

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

分享到:LINEFacebookX / Twitter

摘要

在 K436 我們確認 Variance Risk Premium(VRP = VIX − 已實現波動率)對 SPY 下一期已實現變異數具有 regression 預測力(t=4.38,通過 Harvey 2016 門檻)。這個結果自然讓人期待:把 VRP 丟進 GJR-GARCH 的 variance equation 當外生變數(即 GARCH-X),是否能改善 out-of-sample 波動率預測?

K438 用 2005-02-03 至 2026-03-25 共 5,318 個日頻觀測、滾動再估 24 次(window=2000、refit_every=21)、OOS 期間 2023-01~2024-12(N=502)直接檢驗這個問題。結果清楚而反直覺: GARCH-X(VRP) 相對 GJR baseline 只改善 OOS QLIKE 0.98%,DM p=0.7037(完全不顯著);而 GARCH-X(VIX) 卻改善 6.27%,DM p=0.0499(borderline)、bootstrap p=0.0271(顯著) 。

本文的重點 不是 「VRP 有無預測力」—— 那是 K436 的主題。本文主張的是一個 方法論 asymmetry : regression 框架下的顯著性,並不保證 conditional variance 框架下的邊際貢獻 。把變數丟進 σ²_t 的遞迴方程式,是一個比 AR-X regression 嚴格得多的測試 —— 它要求變數提供 GARCH 已吸收的 ARCH/GARCH memory  以外的  增量資訊。VRP 過不了這關,但 VIX 過了;而兩者同時放進去時,VRP 的 δ 係數直接 collapse 到 0.000106(t=0.044),顯示 VIX 完全 subsume VRP。

[提出: Claude]

圖 1: GARCH-X 四規格 OOS QLIKE 比較

研究背景

VRP 做為波動率交易、風險偏好量化、擇時的訊號來源,文獻與本研究累積已經相當豐厚(Bollerslev, Tauchen & Zhou 2009;K430 IS t=4.38;K436 OOS DM p=0.018、bootstrap p=0.000)。但「有預測力」到「應該進 variance equation」之間,有一層經常被跳過的方法論門檻。

K436 問的是:VRP_t 對 RV_{t+1} 的單期線性迴歸是否顯著?答案是肯定的。

K438 問的是一個 嚴格得多的問題 :把 VRP 當 σ²_t 的外生驅動因子(即 σ²_{t+1} = ω + α·ε²_t + γ·I(ε_t<0)·ε²_t + β·σ²_t + δ·X_t),是否能改善 OOS variance forecast loss?

這兩個問題 不是同一個問題 。前者問的是「X 是否含有關於下一期 RV 的線性資訊」;後者問的是「X 是否含有 GJR 的 {ε²_t, I(ε_t<0)·ε²_t, σ²_t} 三個內生驅動因子 以外 的增量資訊」。GARCH 的遞迴本質已經把 lagged squared return 的資訊 internal absorb 了 —— 如果 VRP 只是 backward-looking 的波動率 proxy 的某種 transformation,那麼在 regression 裡它會顯著(因為 regression 沒有記憶),但進 GARCH 會冗餘(因為 σ²_t 已經是 lagged ε² 的 exponentially weighted sum)。

這個區分不是新的 —— Han & Kristensen (2014) Econometric Theory 30(1):95-130 建構 GARCH-X QMLE 的 asymptotic theory 時,就明白指出 δ 的識別條件需要 X_t 相對於 GARCH 內生 σ²_t 的 innovation 性。但在實證操作上,很多研究(包含我們自己 K398~K440 系列的幾個前手)看到 regression 證據就直接外推 GARCH-X 會賺到 —— K438 用一個乾淨的四規格對比,證明這個外推會踩空。

方法與數據

項目設定
資產SPY (yfinance)
VIX^VIX (yfinance)
樣本期2005-02-03 ~ 2026-03-25
總觀測5,318 日
OOS 期2023-01-03 ~ 2024-12-31(N=502)
Window2,000 日 rolling
Refit每 21 日 refit(24 次)
RV proxyr²(平方日報酬)
MLE 實作自寫 scipy.optimize.minimize(L-BFGS-B,multi-start)
統計門檻DM(HLN 變異數修正)、block bootstrap(block=21, n=10000)、Harvey (2016) t>3.0

四個對比規格(皆採 Normal 誤差 + GJR leverage term):

  1.  GJR baseline :σ²_{t+1} = ω + α·ε²_t + γ·I(ε_t<0)·ε²_t + β·σ²_t
  2.  GARCH-X(VRP) :加 δ·VRP_{t-1}(lag=1 防 lookahead)
  3.  GARCH-X(VIX) :加 δ·VIX²_t / 252(implied daily variance)
  4.  GARCH-X(VRP+VIX) :兩者同時進入,δ_VRP + δ_VIX

VRP 定義:VRP_t = VIX²_t / 252 − RV_t,以 lag-1 進入 variance equation(變數 vrp_lagged,樣本 mean=3.52、std=5.50)。所有隨機程序 seed 固定。L-BFGS-B bounds 設 δ ∈ [−1, 1];h_t 正定用 max(h, 1e-8) clamp。

核心發現

發現一:四規格 OOS QLIKE 對比

規格OOS QLIKE改善 %DM statDM pBootstrap p
GJR baseline0.556796
GARCH-X(VRP)0.551332−0.98%0.3800.70370.6230
GARCH-X(VIX)0.521894 −6.27% 1.961 0.0499  0.0271 
GARCH-X(VRP+VIX)0.524374−5.82%1.8230.0684 0.0390 

數據來源:experiments/k438/k438_garchx_vrp_results.json(oos_evaluationimprovements_vs_baselinedm_testsbootstrap_dm)。

 VRP 單獨進 GARCH 幾乎沒用 :QLIKE 只降 0.98%,DM asymptotic p=0.70、bootstrap p=0.62 都完全無法拒絕 H0「GARCH-X(VRP) 與 baseline 預測精度相同」。

 VIX 單獨進 GARCH 有用 :QLIKE 降 6.27%,DM p=0.050(剛過 5%)、bootstrap p=0.027(顯著)。

 兩者聯合只比 VIX 單獨稍差 :0.524 vs 0.522,說明 VRP 的資訊在 VIX 出現後幾乎全被吸收。

發現二:δ 係數顯著性的 asymmetry

圖 2: δ 係數顯著性與 VIX 體制分層

Modelδ 變數δ 估計SEt-statp-value
GARCH-X(VRP)VRP0.0054170.000415 13.041 0.0000
GARCH-X(VIX)VIX0.1325630.025739 5.150 0.0000
GARCH-X(VRP+VIX)VRP0.0001060.002414 0.044 0.9650
GARCH-X(VRP+VIX)VIX0.1310920.031152 4.208 0.0000

數據來源:delta_significance 區塊。

這張表透露 最關鍵的方法論 asymmetry :

  • VRP 單獨進入時,δ 的 in-sample t=13.04(極度顯著),但 OOS 改善不到 1%、DM p=0.70 完全不顯著 。In-sample 顯著 ≠ OOS 有增量預測價值 —— 這是 overfitting 到訓練期的經典徵兆。
  • 兩者同時進入時,δ_VRP  collapse 到 0.000106(t=0.044,p=0.965) 。這不是 multicollinearity 導致估計不穩,這是 VRP 相對於 VIX 在變異數方程式內 徹底冗餘 。
  • δ_VIX 在 VRP+VIX 聯合模型仍然顯著(t=4.21),但 GARCH-X(VRP+VIX) 的 OOS QLIKE(0.524) 比 GARCH-X(VIX) 單獨(0.522)還略差 ,BIC 也從 5056 升到 5064。加入 VRP 沒帶進新資訊,只增加一個參數的 estimation noise。

發現三:regime decomposition — VIX 在低 VIX 體制才有大改善

RegimeNbaseline QLIKEX(VRP) 改善X(VIX) 改善
Low VIX (<15)2340.0642−10.2% −79.0% 
Mid VIX (15-25)2610.8779−0.91%−1.28%

數據來源:regime_analysis

在低 VIX 體制,GARCH-X(VIX) 幾乎把 baseline QLIKE 削掉八成(0.064 → 0.013),但在中等 VIX 體制改善只有 1.3%。這呼應發現二: VIX 提供的增量資訊主要是「市場定價期待的 forward-looking vol」 ,當實現波動率很低但市場隱含波動率仍在正常區間時,VIX 給 GARCH 一個它從 ε²_t 看不到的「外部錨」;而在中等 VIX 體制,GARCH 已經從自身 recursion 中學到足夠的訊息,VIX 的邊際貢獻被稀釋。

發現四:GARCH-X(VIX) 有 boundary param — 不是全勝

規格ωαγβδpersistence
GJR baseline0.03950.07750.27450.77350.9883
GARCH-X(VRP)0.00080.04790.22250.83590.00540.9951
 GARCH-X(VIX)  1e-8  1e-8 0.36260.64100.13260.8223
GARCH-X(VRP+VIX)1e-81e-80.36220.6429δ_V=1e-4, δ_VX=0.1310.8240

數據來源:in_sample_estimation

 GARCH-X(VIX) 的 ω 和 α 雙雙塌到下界 1e-8 。這不是偶然 —— 等於模型退化為:

σ²_{t+1} ≈ γ·I(ε_t<0)·ε²_t + β·σ²_t + δ·VIX²_t / 252

也就是  VIX 取代了 intercept 與 symmetric ARCH 項 。這是一個 spec problem:不能宣稱「GARCH-X 架構勝出」,只能說「當 VIX 進來,GARCH 的 ARCH innovation channel 變得多餘」。這跟 Engle & Rangel (2008) Spline-GARCH 的長期 vol component 或 MIDAS-GARCH 的 low-frequency driver 概念接近 —— VIX 事實上扮演了一個「外部給定的長期 variance 錨」。

這是為什麼本實驗的 verdict 是  PARTIAL POSITIVE 而非 FULL PASS :DM p=0.050 勉強過傳統 5%,bootstrap p=0.027 較強,但 best DM stat = 1.96  未通過 Harvey (2016) 多重檢定下的 t>3.0 門檻 ;加上 boundary param 的 spec caveat,結論只能說「VIX 在 variance equation 有統計上 borderline 改善,但架構本身可能是錯的」。

實務意義

對 GARCH-X 文獻的啟示

  1.  Regression 顯著不等於 conditional variance 顯著 :若要主張某個外生變數「對波動率預測有幫助」,必須分清是哪種框架。K398~K440 系列(共 30+ 個 GARCH-X 嘗試)若照這個 lens 重新過濾,可能會發現很多「有預測力但進不了 variance equation」的變數 —— 它們的資訊本質上已經被 GARCH memory 吸收了。
  2.  In-sample δ 顯著是必要但不充分條件 :K438 的 VRP 模型 in-sample t=13.04,OOS 卻 DM p=0.70。建議所有 GARCH-X 研究都必須報告 OOS DM + bootstrap,不可只用 IS likelihood ratio 下結論。
  3.  前瞻性資訊勝於回溯性 transformation :VIX 在 GARCH-X 有用,是因為它帶了 option-implied risk-neutral forward vol —— 這是 GARCH 從任何 lag 的 ε² 都學不到的資訊。VRP = VIX − RV 則是兩個波動率量的差,當 VIX 直接進來時 VRP 變成 RV 的 transformation,而 RV 的資訊 GARCH 早就有了。

對同類研究的方法建議

若手頭有一個外生變數 X_t,想判斷要走 regression augmentation 還是 GARCH-X:

  •  先問 :X 是 backward-looking(RV-based、return-based、實現型)還是 forward-looking(option-implied、survey-based、news-based)?
  • 若 backward-looking:優先走 HAR-X 或 AR-X regression;進 GARCH-X 多半會像 K438 的 VRP 一樣,IS 顯著但 OOS 邊際。
  • 若 forward-looking:值得嘗試 GARCH-X,但要準備好面對 boundary param 的 spec issue(α、ω 塌到 0 不是 convergence failure,是 variable substitution 的徵兆);並且要走 Spline-GARCH、multiplicative component、或 MIDAS-GARCH 這類架構,而不是單純把 X 加到既有 variance equation 上。

限制與穩健性

樣本期 2005-02-03~2026-03-25 涵蓋 2008 金融危機、2011 歐債、2015 人民幣貶值、2018 Q4、2020 COVID、2022 升息、2023-2024 AI rally 多個體制,但 OOS 只取 2023-2024(N=502,calm market),高 VIX 體制樣本偏小(regime_analysis 只切出 low/mid,沒有 high ≥25 子樣本因 N 太少)。

參數估計採自寫 scipy L-BFGS-B MLE,sandwich / BHHH / OPG 標準誤沒算,只用 numerical Hessian —— 這在 boundary param(VIX 規格)時可能低估 SE,但不影響 δ_VRP collapse 的結論(差別是 4 個量級)。

Refit 收斂率:GJR / X(VRP) / X(VIX) 全部 24/24,X(VRP+VIX) 23/24(95.8%),一次 failure 在 mid-sample 位置,不影響 aggregate OOS。

Param stability(24 個 rolling window 的 δ 估計):

  • X(VRP) δ 全正、0 sign change、std=0.00037 —— 非常穩定但貢獻微小
  • X(VIX) δ 全正、0 sign change、std=0.00598 —— 穩定
  • X(VRP+VIX) δ_VRP 在 24 window 中 5 正 19 負、5 次 sign change ——  signal noise 的徵兆 ,呼應 t=0.044 的結論

Lookahead 檢查:所有 X_t 都以 vrp_lagged、VIX²_{t}/252(VIX 是 t 時已知的 intraday close)進入 t+1 的 variance equation;MLE 估計在 rolling window 內 self-contained,OOS 預測 one-step-ahead。

結論

K438 的核心訊息不是「VRP 沒用」,也不是「VIX 有用」—— 這兩個結論都太狹窄。K438 的貢獻是 釐清一個方法論邊界 :

 Regression significance 是關於「X 含線性資訊」,GARCH-X significance 是關於「X 含 GARCH memory 之外的增量資訊」;兩者是不同問題,且前者成立不蘊含後者成立。 

VRP 踩中了這條邊界。它在 K436 regression 框架下顯著(因為 regression 無記憶,VRP 的資訊被保留),但在 K438 GARCH-X 框架下失敗(因為 GARCH memory 已吸收 RV,VRP = VIX − RV 在 VIX 進場後變冗餘)。

VIX 越過了這條邊界,因為它攜帶 option-implied forward-looking 資訊,GARCH 任何 lagged ε² 都無法內生出來;但它進場的「方式」是取代 GARCH 的 intercept 與 symmetric ARCH —— 這提示我們也許該走 Spline-GARCH 或 MIDAS-GARCH,而不是把 VIX 硬塞進標準 GARCH-X。

下一步研究方向:

  1. 把 K398~K440 系列所有 GARCH-X 外生變數重新 audit,分類為「regression-consistent + GARCH-consistent」「regression-only」「GARCH-only」「neither」四類
  2. 對 VIX 這類 forward-looking 變數,改用 Engle-Rangel Spline-GARCH 或 Ghysels MIDAS-GARCH 架構,避免 ω、α 塌到下界的 spec issue
  3. 測試 VVIX、skew index、其他 option-implied moment 是否也有 VIX 類似的「進得了 GARCH 但塌 intercept」行為
  4. Cross-asset 複製:同樣的 asymmetry 在 QQQ、IWM、0050.TW 是否成立?

附錄一:與前手文獻的具體對話

Han & Kristensen (2014) Econometric Theory 30(1):95-130 為 GARCH-X QMLE 建立 consistency 與 asymptotic normality,其核心技術假設是 E[X_t·ε_t²] 有 finite moment 且 X_t 相對於 {{ε_s: s<t}} 有合適的 mixing 條件。K438 的 boundary param 現象正對應該論文 Section 5 討論的 corner solution:當 δ 的 magnitude 接近 non-identifiability region 時,ω 與 α 會被 MLE 推向 0 以補償。VIX 規格出現此現象,代表 VIX 所攜帶的 forward-looking variance 資訊已經大到足以取代 ω 的常數項角色 —— 這其實是 Engle & Rangel (2008) Spline-GARCH 背後的 motivation:長期波動率 component 應該由外部變數(而非 MLE 估出的 unconditional variance)來定位,短期 component 再用 GARCH 處理。

Bollerslev, Tauchen & Zhou (2009) RFS 22(11):4463-4492 原始 VRP 論文是在月頻 regression 框架下檢驗 VRP 對預期股票報酬的預測力,樣本為 1990-2007。他們並未主張 VRP 應該進 conditional variance equation,本文 K438 的結果恰好補上這個文獻縫隙:VRP 在 regression 有效,但在 variance equation 冗餘;兩者並不衝突,只是問的問題不同。

Engle, Ghysels & Sohn (2013) RFS 系列的 GARCH-MIDAS 架構是本研究下一步的自然延伸:把 VIX 或其他 low-frequency 變數放進一個乘法 component 而非加法 δ 項。這能避免 K438 VIX 規格的 boundary 問題,同時保留 VIX 的 forward-looking 資訊。本研究在 K1001(Conrad-Loch 2015 復刻)已初步實作過此架構,但彼時使用的是 macro 變數;把 K438 的 lens 套到 K1001 值得下一輪重估。

附錄二:為什麼 in-sample t=13 但 OOS DM p=0.70?

這是 K438 最容易誤讀的數字對比。VRP 模型 in-sample δ 估計 0.005417,numerical Hessian 給的 SE = 0.000415,得 t=13.04、p≈0。但同一模型在 rolling OOS 上對 baseline 的 DM stat 只有 0.380,p=0.7037。怎麼會差這麼多?

答案是 兩個 t-stat 問的不是同一件事 :

  1.  In-sample δ 的 t-stat  問:在 IS 樣本上,若 δ 真為 0,觀測到 δ=0.0054 的機率有多低?答案極低(p≈0),所以我們拒絕 H0「δ=0」。這是 parameter identification test。
  2.  OOS DM 的 t-stat  問:在 OOS 樣本上,GARCH-X(VRP) 與 GJR baseline 的逐日 QLIKE loss 差有多穩定地偏向某一邊?答案是幾乎沒有偏向(mean loss diff = 0.005464,DM-HLN stat=0.380)。這是 forecast accuracy comparison test。

兩者差異的關鍵是: 第一個 test 是用 likelihood 下的 in-sample fit 判定 δ 是否在某方向有 tilt ;而 GARCH 的 MLE 會利用任何能降 NLL 的 flexibility,包含把 δ 調到一個能稍微捕捉 IS noise 的值。但 第二個 test 在 OOS 上,這個 flexibility 變成 noise penalty :VRP 提供的訊息若真是 GARCH memory 的冗餘變形,OOS 預測誤差會因多一個 estimation noise 而略微加大,而非因資訊增量而縮小。

K438 同時報告兩者,是為了 防止只看 IS 的 δ 顯著性就宣稱 GARCH-X 成功 。這正是 K1016 教訓(agent 只看 IS 就回報 QLIKE 改善 +13.7%,實際 JSON 是惡化)的延伸:研究誠實原則要求 in-sample 與 out-of-sample 的區分必須顯式 report,且結論以 OOS + DM + bootstrap 為準。


本文基於實驗 K438(腳本:experiments/k438/k438_garchx_vrp.py,結果:experiments/k438/k438_garchx_vrp_results.json)。數據來源:yfinance (SPY, ^VIX),樣本期 2005-02-032026-03-25 共 5,318 觀測,OOS 期 2023-01-032024-12-31(N=502)。相關前手實驗:K436(VRP regression 預測力)、K430(VRP IS 顯著性)、K433(SSVS mean-equation 稀疏化)。文獻:Han & Kristensen (2014) Econometric Theory 30(1);Engle & Rangel (2008) RFS 21(3);Bollerslev, Tauchen & Zhou (2009) RFS 22(11);Harvey (2016) multiple-testing framework.

相關文章

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

📄
把 VIX 期限結構算成「波動風險溢酬」,能預測美股回檔嗎?4500 天回測,答案是不行
# 把 VIX 期限結構算成「波動風險溢酬」,能預測美股回檔嗎?4500 天回測,答案是不行 VIX 大家都熟。它是市場恐慌指數。 但市場其實還有兩個少人提的兄弟:VIX3M(3 個月版)和 VIX6M(6 個月版)。把這三個拉出來看「斜率」,理論上能告訴你交易員對未來幾週與未來半年的恐慌定價差多少。 更進一步,把 IV²(隱含波動率平方)減去同期間的實現波動率平方,就是學界很重視的 VRP...
📄
日頻波動率,HAR-RV 贏不了 GARCH:60 場跨資產對戰的紀錄
# 日頻波動率,HAR-RV 贏不了 GARCH:60 場跨資產對戰的紀錄 > 實驗 K188 | OOS 期間 2023-01-01 至 2024-12-31 | 5 資產 × 4 波動率代理 × 3 模型變體 --- HAR-RV 是過去二十年波動率預測文獻裡出現率最高的模型之一。它把波動率分解成日、週、月三個頻率的加總,捕捉長記憶結構,跑在五分鐘高頻數據上幾乎無敵。 那在日頻數據上呢...
📄
VIX 自己的波動率,能不能預測 VIX?
# VIX 自己的波動率,能不能預測 VIX? > 一個誠實的弱訊號:自製 vol-of-vol 在統計上贏 AR(1) baseline,但過不了多重檢定。 ## 我們在問什麼 VIX 是市場的「恐慌溫度計」,每天上下跳。一個自然的問題是:**VIX 自己的波動率(vol-of-vol),能不能預測明天 VIX 的水位或變動幅度?** 業界做這件事通常會用 VVIX,也就是「VIX 選擇...