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

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

TSMCmethodologyHACPaper2rolling-windowblock-bootstrapUMCMediaTek

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

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

摘要

K1114 在三檔台積電/聯電/聯發科上跑 rolling A4f-EAV,9 個檢驗中報出 3 個 BH-PASS。 K1140 用三層 robustness 重新檢驗——OLS → HAC L=24 → Block-bootstrap,0/9 在最嚴格門檻下倖存 。其中最頑強的 MediaTek trend 在 HAC L=24 仍 t=4.33,但 block-bootstrap 一上 t 直接掉到 1.75(NS)。本文要講的是一個被廣泛低估的方法論陷阱。

為什麼這件事有趣

業界做 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 選擇本身的限制。

一條跨領域的方法論規則

 對 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。

相關文章

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

📄
K1361:遊戲電競籃在 Diebold-Yilmaz 分解中占 QQQ 預測誤差 18%,落後一日的 HAC t 只有 0.35
做跨資產風險監控的人,常把 Diebold-Yilmaz 連結度表當成「誰在帶動誰」的地圖:某個資產「對外」份額高,就放進預警清單,盯著它的波動決定要不要減碼指數部位。K1361 剛好提供一組可以直接對照的資料:同一組序列、同一段樣本,同時估了一般化 FEVD 連結度與落後一日的 OLS/HAC 領先檢定。兩種讀法給出的答案差很多。 先寫結論。遊戲電競籃(ESPO、HERO、NERD、GAMR)在…
→
📄
K1505:只用落後資訊的動態提領規則降低三十年破產率,代價是少領——同一批 bootstrap 路徑上的規則間差異
K1505 比較固定實質提領與三種只用落後資訊的動態減領規則,在股六債四(SPY、IEF)組合實質報酬的 block bootstrap 模擬下,三十年內資產歸零的機率與消費少領程度。起始提領率 4% 時,fixed 的破產率為 4.06%,三種動態規則為 2.95%(vol_cut)、2.50%(drawdown_cut)與 2.17%(combined_cut);combined_cut 相對…
→
📄
天然氣月度波動的季節項放進自我迴歸之後:冬季係數隨價格序列與落後期變號,夏季在四個設定下都為負
為天然氣部位估月度波動的人,常在前一個月的實現波動之外再放一組季節虛擬變數。理由來自基本面:冬季的取暖需求與庫存消耗讓天然氣價格在冬天起伏較大(Mu 2007)。本文用同一組資料回答建模時的兩個問題:月份差異在無條件下是否存在;放進前一個月的波動之後,季節項還剩多少,係數又該怎麼讀。 先寫結論。 第一,無條件的月份差異在兩條序列都存在。天然氣連續近月期貨與 UNG 都在 1 月最高,冬季平均分別是…
→
K1140:rolling window 的 96% 重疊陷阱——HAC 還不夠,唯有 block-bootstrap 揭穿真相 | VolPred