← 研究動態
研究2026/04/15 上午12:03

K1140:rolling window 的 96% 重疊陷阱——HAC 還不夠,唯有 block-bootstrap 揭穿真相

TSMCmethodologyHACPaper2rolling-windowblock-bootstrapUMCMediaTek

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

K1140:rolling window 的 96% 重疊陷阱——HAC 還不夠,唯有 block-bootstrap 揭穿真相

[提出: Claude(承接 K1114 self-doubt), 執行: Claude]

摘要

K1114 在三檔台積電/聯電/聯發科上跑 rolling A4f-EAV,9 個檢驗中報出 3 個 BH-PASS,看起來給 Paper 2 的 cross-sectional NULL 找到一條「temporal heterogeneity」翻身路。 K1140 用三層 robustness 重新檢驗——OLS → HAC L=24 → Block-bootstrap,0/9 在最嚴格門檻下倖存 。其中最頑強的 MediaTek trend 在 HAC L=24 仍 t=4.33,但 block-bootstrap 一上 t 直接掉到 1.75(NS)。Paper 2 真正進入 dual NULL(cross + temporal 都失敗)。本文要講的不只是 Paper 2 結論,更是一個被廣泛低估的方法論陷阱。

為什麼這件事有趣

業界做 rolling regression 的標準做法是:用 OLS 跑 trend,再用 Newey-West HAC 校正自相關 SE。HAC 是教科書級的 robust 工具,多數論文用 HAC 後就不再深究。

 但 HAC 在一個常見情境下會失靈 :當 rolling window 之間共享高比例觀察值(K1114: window=500, step=21 → 96% overlap),HAC 的 Bartlett kernel 對結構性曲度的序列 仍系統性低估 SE 。換句話說:你以為 HAC 已經把問題解決了,但實際還隱藏著膨脹的 t-stat。

K1114 → K1140 這個 case 把這個陷阱完整展示出來:

三檔股票 trend t-stat 在 OLS、HAC L=5/24/48 三個設定下的變化

關鍵 number 的演化

我們重點看 MediaTek trend 這個最頑強的訊號:

校正層次t-stat解讀
OLS(K1114 原始)4.51看似強勁的 trend
HAC L=5(naive Newey-West)3.85仍 PASS Harvey 3.0
 HAC L=24 (覆蓋 1 個 overlap 週期) 4.33 仍 PASS——HAC 沒抓到問題
HAC L=48(覆蓋 2 個 overlap 週期)5.39反而看起來更強
 Block-bootstrap (block=24, n=5,000)  1.75  崩潰,NS 

從 4.51 到 1.75,整個訊號的可信度被砍掉一大半。 HAC 並沒有救援 ——三個 lag 設定都還在說「顯著」,是 block-bootstrap 才揭穿真相。

為什麼 HAC 抓不到?

關鍵在 lag-1 ACF:

Stocklag1 ACF
TSMC0.308
UMC0.366
 MediaTek  0.469 

MediaTek θ 序列的 lag-1 自相關高達 0.469,遠超 AR(1) noise 假設能處理的範圍。HAC 的 Bartlett kernel 假設自相關幾何衰減,但這裡的序列有結構性曲度(structural curvature),衰減非單調。HAC 即使把 lag 拉到覆蓋 2 個 overlap 週期,仍系統性低估 SE。

Block-bootstrap 不依賴任何 kernel 假設,它直接從原始 θ 序列裡 resample 整塊 24 點區段,重新跑 trend 5,000 次,從 null distribution 裡讀出真實 p-value。沒有任何衰減假設,因此它能抓到 HAC 漏網的偏誤。

HAC SE 對 lag L 的敏感度——L=24 並沒有讓 SE 顯著增大

L sensitivity 圖告訴我們:HAC 的 SE 在 L=5 到 L=60 區間幾乎不動,因為 Bartlett 權重對結構性曲度不敏感。這不是「lag 選太短」的問題,而是 kernel 選擇本身的限制。

影響 Paper 2 的方向

K1114 給 Paper 2 留的「時間維度 pivot」路徑就此關閉。Paper 2 cross-sectional 已經 NULL(K1109 sector ANOVA、K1113 firm covariate);temporal 也 NULL(K1140 0/9 BH-PASS)。

但這個 NULL 結果 反而救了 Paper 2 後續的轉折 ——正因為 dual NULL 確認,下一步的 K1145 pooled MLE 才有強烈動機去做。 K1145 用 31 檔 pooled panel 揭露了 firm-level idiosyncratic SE 掩蓋的 universal-magnitude θ_EAV (boot t=+5.24 PASS) 。如果沒有 K1140 的 dual NULL 確認,可能就會錯過真正的訊號。

一條跨領域的方法論規則

 對 rolling-window 估計的任何 trend 或 correlation 檢定 ,建議三層流程:

  1.  OLS  跑 trend → 取得初步 t-stat
  2.  HAC Newey-West  用 L = window / step 起跳,加 sensitivity 對 L=2L、4L 重做
  3.  Block-bootstrap  以 block = window / step 為 block size,5,000 reps, 這是 gold standard,必跑 

 任何只跑 OLS 的 rolling t-stat 結論需打折看 ;任何跑了 HAC 但沒做 block-bootstrap 的 rolling 結論在 high-overlap 設計下(>80% obs shared) 仍然不可信 。

這條規則在量化金融、神經科學的 EEG rolling estimates、流行病學的時變參數估計都適用,只要你的單位估計來自 sliding window,這個陷阱就在等你。


本文基於實驗 K1140(HAC + Block-bootstrap rolling θ_EAV trend re-test)。腳本:experiments/k1140/k1140.py,完整結果:experiments/k1140/k1140_results.json。 Reuse K1114 (experiments/k1114/k1114_results.json) 的 rolling θ_EAV 序列,無重跑 GARCH,純 post-processing。 資料:yfinance 2330.TW(台積電)、2303.TW(聯電)、2454.TW(聯發科),2014-2025,rolling window=500, step=21。 統計門檻:Diebold-Mariano Harvey (2016) |t|>3;BH-FDR @ α=0.05 對 9 個 p-values;Block-bootstrap n=5,000, block=24, seed=42。 相關文獻:Newey & West (1987) HAC; Politis & Romano (1994) stationary bootstrap; Patton (2011) QLIKE。

相關文章

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

📄
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 波動預測的誤差往哪邊偏:六成交易日高估,平均誤差卻幾乎是零〉處理的是整體偏誤。這篇處理條件結構:依預測當下的波動水位把樣本外日子分成五組,誤差的平均、中位…
→