← 研究動態
研究2026/09/07 上午10:00

一百二十六格裡有九十六格沒有結論,而那正是這份結果最重要的部分

Harvey事件研究樣本不足主成分主題型ETF

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

一百二十六格裡有九十六格沒有結論,而那正是這份結果最重要的部分

K1530 問的是:主題型 ETF 成分股之間的連動性下滑,能不能當作該主題後續崩跌的前兆?

verdict 是 FAIL,七個主題通過的有  0  個。但把它讀成「連動性下滑沒有預測力」是錯的。這份結果的主體是一張大部分格子空著的表,而空著的原因被逐格寫下來了。

設計

七個主題 ETF:AIQ、BOTZ、ARKK、ICLN、CIBR、ITA、URA,各取公開文件上的前 8 到 10 檔成分股。資料是 yfinance 日調整收盤價,期間 2018-01-01 到 2026-06-17,各主題的可用交易日從 1,641 天(ARKK)到 2,034 天(ITA、URA)。seed 固定 42。

連動性用 90 天窗口的第一主成分解釋比例衡量,事件的定義是這個比例相對 252 天基準下滑超過 1.5 個標準差。事件之後看兩個期距(21 與 63 個交易日)的三個結果變數:已實現波動、最大回撤、相對 SPY 的超額報酬。檢定用 Harvey 的 HAC t 統計量,門檻 |t| > 3.0,bootstrap 1,000 次,樣本外切點 2022-01-01。

前瞻偏誤的處理寫在結果檔的 lookahead_guard 欄:訊號在與前瞻結果對齊之前明確做過 .shift(1),程式裡有 SIGNAL_SHIFT_1 標記。公平基準寫在 fairness_baseline:前瞻報酬以同一窗口的 SPY 為對照。

七個主題 ETF 的 90 日滾動第一主成分佔比(成分股同步程度),2018 年至 2026 年。七條線都在 0.3 到 0.8 之間反覆升降,2020 年初與 2022 年中出現共同的高點,事件就是從這些序列的下降段定義出來的

事件太少

七個主題的規模與事件數:

主題成分股數可用交易日全樣本事件數樣本內事件數樣本外事件數通過判準
ICLN102,03319314–16否
CIBR102,0331459否
BOTZ82,0331358否
ITA102,0341349否
AIQ101,940936否
ARKK101,641817否
URA102,034853否

ICLN 的樣本外事件數寫成區間,是因為 21 天與 63 天兩個期距的可用列數不同——63 天期距要往前留更多天,尾端會少掉幾個事件。

八年多的資料,最多的一個主題只有 19 次事件。切成樣本內與樣本外之後更少——ARKK 的樣本內只剩 1 次。

七個主題 × 三個區塊(全樣本、樣本內、樣本外)× 六個結果格,共  126 格 。其中:

狀態格數門檻
insufficient_events_for_test 66 事件數 10
insufficient_events_for_mean 30 事件數 5
有檢定結果 30 —

 九十六格沒有推論,而它們沒有沉默。  每一格都帶著 withheld_reason 與 withheld_threshold,說明是哪一道門檻擋下了它。

兩個原因的差別是實質的。insufficient_events_for_mean 表示事件數連 5 都不到,連事件組的平均值都算不出來,所以 mean_event、diff、harvey_t 全部是 null。insufficient_events_for_test 表示事件數在 5 到 10 之間,平均值與差值算得出來、也照樣寫在檔案裡, 只有推論被扣住 。

程式裡對這個設計留了一行說明:沒有這個欄位,「事件數不到五個」與「計算爆掉」到讀者手上會是同一個缺失的數字。

事件研究的 Harvey HAC t 統計量,六個結果變數(mdd_21、mdd_63、rel_21、rel_63、rv_21、rv_63)各七檔標的。虛線是正負 3 的門檻,越過門檻的以紅色標示;圖上大片位置沒有長條,那些就是事件數不足以檢定、統計量因此不存在的格子

空格不是零

這是這份結果最容易被誤讀的地方。

一格 insufficient_events_for_test 的意思是「這個樣本量下的檢定沒有鑑別力」,不是「這裡沒有效應」。以 AIQ 為例,它的九次事件在 21 天已實現波動上的差值是 −0.0428、在 63 天上是 +0.0309,兩個數字都在檔案裡,只是沒有 t 值與信賴區間陪著它們。把這兩個差值讀成「效應為零」是錯的,讀成「效應存在」也是錯的,九次事件撐不起任何一個方向的主張。

verdict = FAIL 說的是「預先宣告的成功條件沒有被滿足」。在 126 格裡有 96 格根本沒被檢定的情況下,那個 FAIL 主要記錄的是 這個設計在這段資料上跑不出足夠的事件 。

三格越過了門檻,而它們的方向是反的

三十個有檢定結果的格子裡,有三格的 |t| 超過 3.0:

主題區塊結果變數事件數Harvey tp差值
BOTZ全樣本21 天已實現波動13−4.96676.81e-07−0.038319
ICLN樣本外63 天最大回撤14+5.62311.88e-08+0.035054
CIBR全樣本63 天相對報酬14+3.00630.002644+0.028221

三格全部 與假說方向相反 。假說是連動性下滑之後波動上升、回撤加深、相對 SPY 落後;這三格量到的是事件之後波動較低(差值 −0.038)、回撤較淺(最大回撤是負值,差值為正代表更淺)、相對報酬較高(差值 +0.028)。

成功判準因此要求兩件事同時成立:|t| > 3.0, 且 差值的方向與假說一致(波動上升、回撤加深、相對報酬落後)。三格都只滿足第一件,所以七個主題的 pass_harvey_full 全部是 False。

這件事本身比 FAIL 更值得記下來。一個只看 |t| 的判準會在這裡宣告三次「顯著」,而三次的方向都在說反話。

方向要求也讓「有幾格通過」這個問題有了明確答案。判準檢查的是全樣本區塊的六個結果變數,逐格問「|t| 有沒有過 3、方向對不對」,只要有一格同時滿足,該主題就算通過。七個主題全部沒有這樣的格子,所以 n_themes_pass_harvey_full 是 0。

三格裡有兩格出現在全樣本區塊、一格在樣本外區塊,而樣本外那一格(ICLN 的 63 天最大回撤,t = 5.6231)並不進入這個判準,它評的是全樣本。所以即使把方向要求拿掉,通過數也只會從 0 變成 2,而那 2 個的意義是「事件之後波動變低、相對報酬變好」。

這個 FAIL 的檢定力上界

 事件數是這裡唯一的瓶頸。  每個主題的事件數在 8 到 19 之間,而檢定門檻是 10、平均值門檻是 5。整份結果的推論能力由這個數量決定,而不是由資料長度決定,最長的主題有 2,034 個交易日,卻只有 13 次事件。

事件數少的直接原因是事件定義:1.5 個標準差、252 天基準。結果檔的 limitations 記著 1 個與 2 個標準差的穩健性有測,但沒有掃過所有組合。

樣本外只有單一切點(2022-01-01 前後),沒有滾動原點。七個主題共用同一段日曆期間,彼此不獨立;2020 與 2022 這種全市場事件會同時進入多個主題的事件集。

成分股清單是靜態的,取自公開文件的前 N 檔,不反映實際的再平衡與權重變動。部分成分股歷史較短(PLTR 從 2020 年才有、COIN 從 2021 年),這讓早期樣本的連動性偏向較少的名單。成分股報酬含罕見的停牌與公司行動,沒有做 winsorize,以保留回撤的真實性。

所以這個 FAIL 的範圍是: 這七個主題、這段期間、1.5 個標準差的事件定義、這兩個期距、|t| > 3.0 的門檻之下,成功條件沒有被滿足,而且大部分的格子連檢定都沒跑。  它沒有證明連動性下滑不能當前兆。

接下來能做什麼

結果檔的 next_followup 欄列了四條,其中前兩條直接針對上面的瓶頸:

用 ETF 持股 API 或 NPORT-P 申報取得隨時間變動的實際權重,取代靜態前十大;換用其他連動性度量(Brownian distance correlation、graph-Laplacian 連通度)以處理非線性狀態。另外兩條是把它做成可交易訊號(事件時放空主題 ETF、以 SPY 多頭避險,報告 Sharpe 與最大回撤對買進持有),以及加入類股 ETF(XLK、XLE)當作系統性與主題性分解的對照。

從檢定力的角度看,還有一條沒被列出但更基本:任何提高事件數的做法,放寬門檻、縮短基準窗、增加主題數,都會直接把那 96 格裡的一部分變成可檢定的格子,而那是這個設計目前最缺的東西。


 資料與程式 :experiments/k1530/k1530.py、experiments/k1530/k1530_results.json。圖:experiments/k1530/fig_event_study.png、fig_coherence_timeseries.png、fig_oos.png。

相關文章

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

📄
K1830:推論降價後 18 天,收盤波動三檔上升、高低價波動五檔全降——差在隔夜與盤中的共變數項
在短窗口事件研究裡,「事件後波動上升」這一句的真偽取決於用哪一個波動估計量。K1830 以二〇二六年七月三十日 OpenAI 調降推論價格為事件,比較五檔 ETF 事件前後各 18 個交易日的已實現波動。結果是:收盤對收盤波動在 IGV、QQQ、SPY 三檔上升,高低價(Parkinson)波動則在五檔全部下降。把收盤對收盤變異數拆成隔夜、盤中與兩者共變數之後,方向不一致的來源可以指認:主要來自原…
→
📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→