有效樣本是六,不是七十五——K1536 事件研究的推論單位問題
讀者互動
登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
我們先前寫過〈「破壞生態的商品比較危險」聽起來很對,資料把它擋了回來〉,那篇回答 K1536 的主問題:高生物多樣性足跡的商品代理,波動是否高於金屬與能源控制組。答案是沒有,全樣本方向還是反的。那個結論沒有變,本文也不打算翻它。
這篇處理的是結果檔裡一個前作沒有展開的細節: 同一組事件研究,results.json 裡存了兩套推論,兩套的點估計完全相同,p 值差了一個量級。 前作引用的是保守的那一套,本文要說明兩套為什麼會不同、以及在什麼條件下該引用哪一套。這是方法問題,不是結論問題。
兩套推論、同一個點估計
事件研究的設計是:六個生物多樣性政策事件,每個事件比較前二十與後二十個交易日,取高足跡組減控制組的差中差。結果檔存了兩種標準誤。
第一種是 Welch 檢定,寫在 event_welch_diagnostics,把每一個「標的 × 事件」當成一筆觀測。高足跡組七檔、控制組六檔、六個事件,扣掉 JO 在早期事件的缺漏,實際筆數是 n_high=39 與 n_control=36。
第二種是事件區塊拔靴法,寫在 event_bootstrap_tests,重抽的單位是事件代號本身,5000 次,seed 42。
| 指標 | 高足跡組減控制組 | 標的-事件對 Welch t | Welch p | BH q | Bonferroni p | 事件區塊拔靴 p | 拔靴九五區間 |
|---|---|---|---|---|---|---|---|
| 波動率對數比 | 0.242552 | 1.883769 | 0.064346 | 0.173855 | 0.193038 | 0.283143 | [-0.176917, 0.653850] |
| 下行風險對數比 | 0.383403 | 1.595173 | 0.115903 | 0.173855 | 0.347710 | 0.177165 | [-0.178633, 0.932249] |
| 累積異常報酬差 | 0.002907 | 0.099986 | 0.920773 | 0.920773 | 1.000000 | 0.821036 | [-0.014355, 0.023156] |

第二欄與其餘各欄的關係值得停一下。點估計是同一個數字——Welch 的 diff_high_minus_control 與拔靴法的 estimate 逐位元相同,所以兩套推論的差異完全來自不確定性的計算方式,不來自估計本身。
波動率對數比那一列是最典型的:以標的-事件對為單位,p 值 0.064346 落在常規門檻附近,寫成「邊際顯著」不會有人攔你;以事件為單位,p 值 0.283143,連邊都沾不到。
為什麼是六
七十五筆標的-事件對不是七十五個獨立的自然實驗。同一個事件日底下的七檔農林 ETF,在事件窗內共享的東西太多:同一段總體行情、同一次美元走勢、同一批天氣與庫存新聞。它們對「這次政策是否重新定價」這件事只提供了一次抽樣機會。
換句話說,這個設計的獨立單位是事件,而事件只有六個。標的數量增加的是每個事件內部的量測精度,不是可用的樣本量。
這一點在單一事件的組間落差上看得最清楚。
| 事件 | 日期 | 控制組波動對數比 | 高足跡組波動對數比 |
|---|---|---|---|
| 昆明宣言 | 2021-10-13 | -0.106472 | -0.070331 |
| 昆明-蒙特婁生物多樣性框架 | 2022-12-19 | -0.055343 | 0.121620 |
| 歐盟禁伐法簽署 | 2023-05-31 | -0.392049 | 0.272901 |
| 歐盟禁伐法生效 | 2023-06-29 | -0.289027 | -0.135942 |
| TNFD 最終建議 | 2023-09-18 | 0.772038 | 0.122871 |
| 歐盟自然恢復法通過 | 2024-06-17 | -0.832958 | 0.232310 |

控制組自己在六個事件之間,從 -0.832958 擺到 0.772038。這個跨事件的擺幅比任何一次的組間差都大。要在這種訊噪比下辨識出組間效果,六次抽樣遠遠不夠,這不是估計偏誤的問題,是變異數的問題。
BH 與 Bonferroni 修正的不是這件事
結果檔對 Welch 診斷同時報了 BH 與 Bonferroni。這兩個修正處理的是「三個指標一起看」帶來的偽陽性,把波動率對數比的 0.064346 推到 BH q 0.173855 與 Bonferroni p 0.193038。
值得指出的是,修正之後的數字碰巧接近拔靴法的 0.283143 這個量級,但兩者處理的是不同的問題:多重檢定修正調整的是 檢定次數 ,聚類推論調整的是 觀測之間的相依 。三個指標若只剩一個,多重檢定修正就消失了,而相依問題原封不動。把前者當成後者的替代品,會在只測一個指標的設定裡整個失效。
這也是本文不主張「拔靴法一律比較保守」的原因。第三列就是反例:累積異常報酬差的拔靴區間 [-0.014355, 0.023156] 比以標的-事件對為單位算出來的區間更窄。聚類推論改變的是變異數的估計對象,不是單向地放大它。
全樣本那一段為什麼不受影響
同一份結果檔裡,全樣本無條件檢定的統計量強度完全是另一個量級。
| 口徑 | 每日平均差 | HAC t | HAC p | 九五區間 | 觀測日數 |
|---|---|---|---|---|---|
| 已實現波動率 | -0.075379 | -7.513003 | 5.8e-14 | [-0.095044, -0.055714] | 2127 |
| 下行半變異數 | -0.044866 | -6.322980 | 2.6e-10 | [-0.058774, -0.030959] | 2127 |
這一段的推論單位是交易日,而它估的是兩籃在整段期間的平均風險落差,不是任何一次政策衝擊的效果。日資料的序列相依已由 HAC(21) 處理。所以「全樣本高度顯著、事件研究測不出來」不是矛盾:前者問的是兩籃長期誰比較晃,後者問的是政策事件有沒有讓兩籃的相對風險改變。
前作已經指出,前者的負號多半由控制組裡的天然氣與原油撐起來,因此不能讀成生態風險的證據。本文要補的是另一半: 後者之所以回答不了問題,原因在解析度,六個事件的設計本來就分辨不出這個量級的效應,與效應是否存在無關。
這對後續實驗的意涵
在這類「少數政策事件 × 多檔標的」的設計裡,有三件事應該在跑之前就定下來。
其一,把獨立單位寫進預先設定。事件數就是有效樣本數,標的數只影響事件內的量測誤差。
其二,若事件數注定是個位數,事前算一次可偵測的最小效果量,把它與文獻中的預期效果量對照。K1536 的限制清單已經寫明只測了六個事件、事件區塊推論低冪次;把這句話換成一個具體數字,才能在跑之前判斷值不值得跑。
其三,兩套推論都留在結果檔裡是對的做法,但引用時必須指名用的是哪一套。本實驗的前作引用的是拔靴法那一套,這篇把另一套一併攤開,是為了讓「為什麼不引用比較好看的那個數字」變成可查的紀錄,而不是一個看不見的選擇。
資料來源:yfinance 日調整收盤價(auto_adjust=True),2018-01-03 至 2026-06-22,聯集 2128 個交易日;高足跡組 CORN、SOYB、WEAT、CANE、JO、WOOD、DBA,控制組 GLD、SLV、CPER、USO、UNG、PDBC,其中 JO 有 1386 個觀測、其餘各 2127 個。事件窗為事件日前二十與後二十個交易日,事前窗嚴格停在 t-1。全樣本檢定用 HAC(21) 標準誤,事件研究用事件區塊拔靴法重抽 5000 次,seed 42。實驗編號 K1536,結果檔 experiments/k1536/k1536_results.json。