← 研究動態
研究2026/09/02 下午07:00

我們自己那批 ML-vs-HAR 的 t 值,有一半的門檻是假的

機器學習Diebold-Mariano研究方法已實現波動率預測能力檢定

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

倉庫裡有一長串長得很像的實驗。K1312 拿 GARCH-LSTM 比 HAR,K1263 是 KAN-GARCH-MIDAS,K1524 排了一個 HAR / GJR / RandomForest 的 3×3 矩陣,K1593 上 CNN-Transformer。收尾動作都一樣:算一個 Diebold–Mariano t 值,看它有沒有過 1.96,然後寫結論。

這些實驗回答的是「誰預測得比較準」。K1747 問的是前面那一題,而且是一題沒人問過的題:

當比較的其中一邊,它的超參數、變數集合、擬合出來的係數,全部來自同一段有時間順序的資料,那個名目 5% 的 DM 檢定,還是每 20 次錯一次嗎?

答案是不是。而且錯的方向是多拒絕,也就是說,過去那些 t 值裡有一部分的「顯著」是估計誤差生出來的。

怎麼量的

量 size 只能在「自己的虛無假設按建構為真」的設計裡量。K1747 造了五個這樣的設計,跑蒙地卡羅,數每個程序實際拒絕的比例,再拿它跟名目 0.05 對。每格報 Wilson 95% 區間跟蒙地卡羅標準誤,主要格子 1000 次重複,昂貴的格子 400 次。主種子 42。

資料是 SPY 與 QQQ 的日 OHLC,2005-01-01 到 2026-08-01,10,856 列,快照的 sha256 釘在 results 裡。變異數代理是 Garman–Klass 全距估計量,不是 5 分鐘已實現變異數,免費日線只能做到這裡,它不含隔夜變異,也假設盤中無漂移。

有一件事這份實驗做得比一般 size 稽核嚴: 同一個拒絕率,在不同設計裡意義不一樣 。在只有母體虛無為真的設計裡,固定視窗程序的虛無按建構是假的,所以它在那裡拒絕叫檢定力,不叫犯錯。results 的每一格都帶 null_type 標籤,裁決閘會看那個標籤,不會把檢定力算成 size 失準。巢狀比較配非平方誤差損失的那些格子,倉庫早就知道沒有可用的推論程序(error_log class G、K1701),這次直接標成 diagnostic-only,不進裁決。

20 列進得了裁決。這是全文所有數字的分母。

第一個發現:連對照組都過不了

D1 是理智檢查。兩邊是同一個模型、同一組變數、對稱的 OLS,任何合理的檢定在這裡都應該貼著 5%。

設計樣本 R檢定損失實測拒絕率Wilson 95% CI精確二項 p
D1 對稱理智檢查250一般 DM對數平方誤差 7.3% [5.85%, 9.08%]0.0017
D1 對稱理智檢查1000一般 DM對數平方誤差 7.2% [5.76%, 8.97%]0.0023
D1 對稱理智檢查250一般 DMQLIKE5.4%[4.16%, 6.98%]0.56
D1 對稱理智檢查1000一般 DMQLIKE4.6%[3.47%, 6.08%]0.61

對數平方誤差那兩列,區間下緣都在 5% 以上。樣本從 250 加到 1000,7.3% 只降到 7.2%——這不是小樣本問題,加資料不會讓它自己好。

QLIKE 那兩列是貼著的。這個對照在後面會一直出現。

第二個發現:模型愈複雜,偏差愈大,而且加資料會加劇

D2 是巢狀設計、母體虛無為真:小模型就是真實資料生成過程,大模型多出來的係數在虛無下全為零。這種結構下一般 DM 按建構就是偏心的,Clark–West 就是為了修這件事發明的,所以這裡的主統計量是 CW,不是 DM。

拒絕率隨大模型的參數量 p 走:

樣本 R參數量 pClark–West 拒絕率Wilson 95% CI重複次數
250208.9%[7.29%, 10.83%]1000
25010012.9%[10.96%, 15.12%]1000
25020013.0%[10.05%, 16.65%]400
10002011.0%[9.19%, 13.06%]1000
100010013.9%[11.90%, 16.16%]1000
100020014.8%[11.63%, 18.55%]400

兩個方向都往壞的走。橫著看,p 從 20 到 100,拒絕率從 8.9% 跳到 12.9%。直著看,R 從 250 加到 1000,同樣的 p=20 從 8.9% 惡化到 11.0%。

第二個方向值得停一下。多給樣本讓事情變糟,聽起來反直覺,但在展開視窗(expanding window)下是合理的:樣本變長,用來估參數的那一段也變長,估計誤差在損失差裡累積的結構跟著改變,而 HAC 的頻寬是照 n 開三次方走的,追不上真正的相依長度。把頻寬改成不小於再擬合週期(21 天)的寬版本,D1 那格從 7.3% 再惡化到 9.9%——所以這不是頻寬選太小,是這個組合本身就不對。

各設計格子的實測拒絕率與名目 5% 的距離

第三個發現:三種修法沒有一種修好

這是本實驗真正的結論,也是最不好看的那一段。

裁決規則要求的不是「看起來比較接近 5%」。要算有效,一個 learner-aware 程序必須同時做到四件事:對應的一般檢定確實失準、在同一批重複上做配對 McNemar 檢定且 Holm 校正後顯著、拒絕次數嚴格少於一般檢定、而且它自己的 Wilson 區間要蓋住 5%。

符合資格的配對檢定有 34 個。通過的有  0  個。

不只是沒修好,是修反了。以 D3(非巢狀、方法層虛無為真)為例:

設計格子損失一般 DMep_split (π=0.25)split (π=1)GW 固定視窗
D3 R=250, p=20對數平方誤差11.3%23.9% 34.3% 11.7%
D3 R=250, p=200對數平方誤差9.5%28.0% 45.5% 12.5%
D3 R=1000, p=20對數平方誤差13.2%18.2%28.8%11.0%
D3 R=250, p=20QLIKE5.7%18.8%27.3%6.9%
D3 R=1000, p=20QLIKE4.4%12.3%18.2%4.8%

樣本外分割那兩欄,拒絕率是一般 DM 的兩到四倍。名目 5% 的檢定在 45.5% 的重複裡拒絕一個為真的虛無,那不是檢定,那是隨機數產生器加一個學術外觀。

實驗另外把每一格的實測拒絕率,對上該格自己量到的 A4 過度風險代理量(Escanciano–Parra 的中心化 sqrt(P) * Var_t[log m_hat - mu_log],逐格測量、不假設):

各格子實測拒絕率對 A4 過度風險代理量

所以裁決標籤是 CONDITIONAL_ORDINARY_MISSIZED_BUT_NO_SUPPORTED_FIX:一般檢定確實失準(20 列裡 14 列 Holm 後仍超標),但這份設計裡沒有任何一個受支持的替代程序把它修回名目。

唯一站得住的那一格

上面那張表最右邊兩欄裡藏著一個東西:GW 固定視窗配 QLIKE,6.9% 跟 4.8%,後者的區間 [3.6%, 6.3%] 蓋住 5%。

翻遍 D1 到 D3 的主統計量,同一個組合反覆出現在沒失準的那一側。這跟理論說的對得上:Giacomini–White 的固定有限估計視窗,虛無本來就是「已估計程序」的等預測能力,估計誤差是虛無的一部分而不是要被忽略的干擾;QLIKE 則是 Patton 意義下對代理誤差穩健的損失。

但這不是本實驗的裁決,它沒有走完那四道條件。誠實的說法是:這是一個有理論支撐、在多個格子裡一致的觀察,不是被認證的修法。

這對倉庫裡的舊結論是什麼意思

實證那一側跑了 48 個主要比較(2 資產 × 3 學習器 × 2 損失 × 4 預測方案)。名目層次有 20 個顯著,Holm 家族校正後剩 8 個。單是多重性就吃掉六成。

再疊上上面那些 size 數字,在 D2、D3 那種複雜度下,名目 5% 的實際犯錯率落在 9% 到 15%——那 8 個裡還有多少是真的,這份實驗沒有回答,也不該假裝回答。

能說的是這句: 過去那些「t = 2.7,顯著」的收尾,門檻本身沒有它宣稱的那個意義 。要重新判定舊結論,得回去看每個實驗的預測方案跟損失函數落在上面哪一格。這是接下來要做的事,不是這篇能一次做完的。

這份實驗自己的限制

  • R2 的解讀規則是在 v1 結果與 FAIL 審查都已知之後才定的。它的精確二項、McNemar 與 Holm 輸出是事後敏感度分析,不是預先登記的驗證性證據。results 裡 analysis_status 逐字寫著 post_hoc_after_v1_results_were_known。
  • 變異數代理是 Garman–Klass 全距估計量,不是 5 分鐘已實現變異數。
  • learner-aware 程序是照 Escanciano–Parra 定理 3.1 與其 80/20 建議、加上 GW 固定視窗,在本倉庫重新實作的設計層配方,不是對該論文估計量的複製。它們表現差,不能直接當成那篇論文的方法失效。
  • D5 樹模型補充整組被排除在形式推論之外:GBRT 挑戰者在資訊集上巢狀、在模型類上不巢狀,Clark–West 的推導結構不適用,那些數字只是方向性證據。
  • D3 的 p=200 QLIKE 兩格重複數只有 400 且區間仍蓋住 5%,標為 underpowered,不進裁決。

 實驗 :K1747(experiments/K1747/),裁決 PASS,重跑規格 reproduce_spec.json  資料 :yfinance 日 OHLC,SPY / QQQ,2005-01-01 至 2026-08-01,10,856 列  表 :tables/mc_size_table.csv  圖 :figures/mc_size_by_cell.png、figures/size_vs_a4_rate.png  主要文獻 :Escanciano & Parra (2026, JBES); West (1996, Econometrica); Giacomini & White (2006, Econometrica); Clark & West (2007, J. Econometrics); Diebold & Mariano (1995, JBES); Patton (2011, J. Econometrics)

相關文章

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

📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1862:HAR-RV 一個月波動預測的誤差,平均偏誤不隨波動水位變號,隨水位變寬的是誤差分布
用 HAR-RV 預測未來一個月波動的人,常會想加一層修正:波動很高時把預測往下調,波動很低時往上調,理由是 HAR 的均值回歸可能修正過頭。這層修正值不值得加,取決於 HAR 的誤差是否真的隨預測當下的波動水位系統性變號。 一般讀者版〈HAR 波動預測的誤差往哪邊偏:六成交易日高估,平均誤差卻幾乎是零〉處理的是整體偏誤。這篇處理條件結構:依預測當下的波動水位把樣本外日子分成五組,誤差的平均、中位…
→
📄
K1874:SPY/GLD 波動縮放規則的黃金腿,Sharpe 改善來自脫離 VIX,GVZ 沒有增量
一般讀者版〈股市恐慌時,黃金要不要跟著一起減碼?〉給的是配置結論:黃金腿不要跟著 VIX 一起縮放。這篇處理同一個實驗的方法問題:以 VIX 縮放 SPY/GLD 兩條腿的規則,把黃金腿換成自己的恐慌指數 GVZ 之後 Sharpe 上升,這個改善有多少來自 GVZ 的資訊,有多少只是黃金腿不再被 VIX 牽動? 這個區分決定了下一步要做什麼。若改善來自 GVZ,值得投入的是更好的黃金波動預測;若…
→