K1647: 原油已實現波動率對股市波動率的一階預測力檢定
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
K1647: 原油已實現波動率對股市波動率的一階預測力檢定
摘要
K1647 檢定原油已實現波動率是否能提前預測股市已實現波動率。資料使用 yfinance 每日 OHLC,涵蓋 CL=F、USO、SPY、XLE 與 ^VIX,對齊期間為 2010-02-03 到 2026-07-02,共 4104 個交易日。核心設定用前一交易日的 oil log-RV 預測當日 equity log-RV,並控制自身前一日 log-RV;推論採 Newey-West HAC,maxlags=21,SPY 與 XLE 分開估計。
主要結論是方向性 NULL:CL=F / USO 對 SPY / XLE 的四組一階預測迴歸全不顯著,VIX 控制前後皆相同,stationary bootstrap 95% 信賴區間全跨 0。反向檢定較強,SPY 與 XLE 的已實現波動率對 CL=F / USO 的後續波動率更有統計訊號。實務上,原油波動率可作為市場同時壓力的觀察變數,但不適合直接當成隔日股市波動率的領先訊號。
研究背景
原油與股市的共振很容易被敘事放大。油價牽動通膨、運輸成本、能源股現金流,也常在地緣政治事件中與風險資產同時波動。K1647 刻意把問題縮小:研究對象排除油價報酬與能源股報酬,只檢定「原油已實現波動率」是否能預測「股市已實現波動率」。
這個設計延續 K422、K1329、K1444 與 K1351 的同一條研究線。既有結果多次指出,油市與股市波動率會同時升降,但可交易的方向性 lead-lag 很弱。K1647 的新增價值有三點:第一,把 CL=F 期貨與 USO ETF 分開;第二,同時看廣義大盤 SPY 與能源類股 XLE;第三,把油到股與股到油兩個方向放在同一個實驗裡比較。

方法與數據
| 項目 | 設定 |
|---|---|
| 實驗 | K1647 |
| 資料來源 | yfinance daily OHLC |
| 資產 | CL=F、USO、SPY、XLE、^VIX |
| 對齊期間 | 2010-02-03 到 2026-07-02 |
| 樣本數 | 4104 個交易日;迴歸使用 4103 筆觀測 |
| 波動率 proxy | 21 日 rolling std of daily log returns,年化後取 log |
| 主要迴歸 | equity log-RV 當日值對 oil log-RV 前一日值與自身前一日值 |
| VIX 控制 | 加入 ^VIX log-RV 前一日值 |
| 推論 | Newey-West HAC,maxlags=21;stationary bootstrap,seed=42 |
| 穩健性 | Parkinson range-vol,用同一個一階預測規格 |
| 特殊處理 | CL=F 2020-04-20 負油價造成 1 筆 non-positive close,log-return 不可定義,已 drop 並記錄 |
Lookahead policy 是本實驗的核心防線。腳本中的預測變數明確使用 .shift(1),只讓前一交易日已知資訊預測當日波動率。SPY 與 XLE 分開估計,避免把同日跨資產 shock 當成獨立 asset-day 觀測。由於 21 日 rolling RV 會導致殘差帶有重疊窗口的自相關,主要 p 值使用 HAC 標準誤。
核心發現一:油到股的一階預測係數貼近 0
四組 oil-to-equity predictive regression 全部沒有通過 5% 顯著水準。未控制 VIX 時,係數介於 0.00011429028779746941 到 0.0007221872405823102;HAC p 值介於 0.8800342795299385 到 0.9755332707571379。加入 VIX 後仍相同,四組係數合理範圍全跨 0。
| 方向 | 規格 | 係數 | HAC t | HAC p 值 | Bootstrap 95% CI |
|---|---|---|---|---|---|
| CL→SPY | no control | 0.0005892092835008307 | 0.1275260517205106 | 0.8985240552194533 | [-0.008230627605984359, 0.00850299734986012] |
| CL→SPY | +VIX | 0.000939219369685388 | 0.21198626036117668 | 0.8321177533785655 | [-0.007189900827000679, 0.008849676542077654] |
| CL→XLE | no control | 0.00021504237822772033 | 0.06037639494822969 | 0.9518558584552148 | [-0.006200460275391394, 0.006798113242461317] |
| CL→XLE | +VIX | 0.0003898086621401675 | 0.11445758924939824 | 0.9088750642714283 | [-0.005813659003974788, 0.006935518717276771] |
| USO→SPY | no control | 0.0007221872405823102 | 0.15092576021926832 | 0.8800342795299385 | [-0.008348176831353367, 0.009072665203818421] |
| USO→SPY | +VIX | 0.0006499663996240804 | 0.14063555854019846 | 0.8881578557464259 | [-0.008394271493703415, 0.008830503517329004] |
| USO→XLE | no control | 0.00011429028779746941 | 0.030669304932393743 | 0.9755332707571379 | [-0.006950337169966297, 0.006851271210631051] |
| USO→XLE | +VIX | -0.0003104196111780033 | -0.08628902786827056 | 0.9312366604363357 | [-0.0072144093409821156, 0.006666083883616883] |

這張係數圖是本實驗最重要的視覺結果。四個方向各有 no-control 與 +VIX 兩個規格,每條信賴區間都穿過 0。VIX 控制不是關鍵;在不放 VIX 的規格裡,油方係數原本就沒有站起來。
核心發現二:反向股市到油市較強
反向迴歸把 oil log-RV 當日值放在左邊,用前一交易日的 equity log-RV 與 oil 自身前一日 log-RV 解釋。結果顯示 SPY 與 XLE 到 CL=F / USO 的方向較強,其中三組通過 5% 顯著水準,XLE→USO 的 HAC p 值為 0.05311840151181979,屬邊際。
| 方向 | 係數 | HAC t | HAC p 值 | Bootstrap 95% CI | 5% 顯著 |
|---|---|---|---|---|---|
| SPY→CL | 0.009867774416759028 | 2.6584455744321813 | 0.00785020288755774 | [0.0031788115660561543, 0.017824883743204352] | yes |
| SPY→USO | 0.00879663517322321 | 2.5233685756112667 | 0.011623649990379922 | [0.0025867767094948134, 0.016068007433114304] | yes |
| XLE→CL | 0.011108486866745775 | 2.2552856385546183 | 0.0241154054863888 | [0.0023689644295912127, 0.02196339338667298] | yes |
| XLE→USO | 0.009025210760590126 | 1.9339571093807602 | 0.05311840151181979 | [0.0014110179465709465, 0.019046744143394242] | no |
這個方向不應被解讀成「股市造成油市波動」。研究設計只支持一階預測關係:在同一組 log-RV proxy 與 HAC 推論下,股市波動率前一日資訊對油市波動率的後續變化較有統計訊號。因果機制仍需要更細的日內資料、事件標記或結構模型。
核心發現三:Diebold-Yilmaz 顯示耦合高,但 net 方向很小
Diebold-Yilmaz generalized FEVD 給出另一個角度。四資產 log-RV VAR 的 total spillover index 為 46.5093432171985%,VAR lag 為 5,表示系統內波動率互相解釋的比例不低。但 net spillover 幅度都小:CL +0.10130961115973314%、USO +1.5144932862804286%、SPY -0.9073964794548584%、XLE -0.7084064179853051%。這些數字接近 0,不適合拿來做強方向敘事。
| 資產 | To others % | From others % | Net % |
|---|---|---|---|
| CL | 13.717240108353984 | 13.61593049719425 | 0.10130961115973314 |
| USO | 15.112469167000048 | 13.59797588071962 | 1.5144932862804286 |
| SPY | 7.158376270564226 | 8.065772750019084 | -0.9073964794548584 |
| XLE | 10.521257671280237 | 11.229664089265542 | -0.7084064179853051 |

同時相關係數提供一個更直觀的解釋:CL-XLE log-RV contemporaneous correlation 為 0.6766324169294609,CL-SPY 為 0.5181123691567779,USO-XLE 為 0.6790847174391897,USO-SPY 為 0.5255093534266436。油市與股市確實常一起抖,XLE 對油方也比 SPY 更敏感;問題在於同時共振不能自動變成前一日可交易訊號。
Granger 結果如何放回同一個框架
Granger F-test 不是完全空白。CL→SPY 的 min p 為 0.0026459194005108012,best lag 為 5;USO→SPY 的 min p 為 0.0022096080540959574,best lag 也是 5。反向方向同樣強,例如 SPY→CL 的 min p 為 0.00011101615061782002,XLE→CL 的 min p 為 0.000650891820994143。
這裡不能把 Granger 顯著簡化成「油能預測股市」。原因有兩個。第一,核心問題是前一交易日的一階預測規格,Granger 的顯著點落在 4 到 5 個交易日的滯後結構。第二,Granger F-test 沒有做 HAC 校正,而 21 日 rolling RV 會讓殘差有重疊窗口造成的自相關。K1647 沒有直接檢定這兩個機制哪一個主導,所以文章只做口徑 reconciliation,不把 Granger 結果降格成雜訊,也不把它升格成交易訊號。
穩健性與限制
Parkinson range-vol 穩健性維持 oil-to-equity NULL。四組 HAC p 值分別為 CL→SPY 0.19488525607957363、CL→XLE 0.3651629594583017、USO→SPY 0.15547752942651932、USO→XLE 0.1191932178854721,bootstrap 95% CI 同樣全跨 0。
主要限制有三個。第一,CL=F 在 2020-04-20 出現負油價,腳本 drop 1 筆 non-positive close;README 已記錄該日之後第一個可用日的 log-return 會跨過缺失日。第二,本實驗使用日資料與 21 日 realized-vol proxy,無法辨識日內資訊流或同日事件先後。第三,stationary bootstrap 各 spec 使用同一個 seed=42,單一 CI 有效,但 spec 間 resampling path 多樣性較低。
實務意義
K1647 的實務訊息很窄,也因此比較乾淨。若研究問題是「油市波動升高,隔天股市波動率是否可預期升高」,本實驗沒有找到支持證據。若研究問題是「油市與股市是否在同一壓力環境下同步波動」,答案較接近肯定,因為 contemporaneous correlation 與 FEVD coupling 都不低。
因此,原油波動率適合作為 cross-asset stress dashboard 的一欄,不適合單獨升級成 SPY 或 XLE realized-vol 的早期預警因子。下一步可檢定多日 horizon、事件分層與日內資料,特別是把地緣政治、庫存數據、OPEC 會議與 CPI/FOMC 週期拆開。
結論
K1647 支持一個保守結論:在 2010-02-03 到 2026-07-02 的日資料、21 日年化 realized-vol proxy、一階 predictive regression、HAC(21) 與 stationary bootstrap 下,原油已實現波動率對 SPY/XLE 已實現波動率沒有穩健增量領先力。反向 equity-to-oil 訊號較強,Diebold-Yilmaz 則顯示共振存在但 net 方向很小。
本文基於實驗 K1647。可複現腳本:experiments/k1647/k1647.py;結果檔:experiments/k1647/k1647_results.json;README:experiments/k1647/README.md。資料來源:yfinance daily OHLC。Reviewer verdict:CONDITIONAL_PASS_NULL。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊