同一份資料、同一個模型,三次跑出三個不同方向——差別只在「多久重估一次」
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
同一份資料、同一個模型,三次跑出三個不同方向,差別只在「多久重估一次」
同一組研究資料,同一個統計模型,同一段測試期間。三次實驗,N225(日本股市)的核心統計量從 +2.31 變成 -1.92,再變回 +2.31。
這不是 bug,也不是資料清洗出了問題。三次實驗之間唯一有意義的差別,是模型多久重新校準一次:每五個交易日一次,換成每二十五個交易日一次,再換回每五個交易日。
統計量的正負號,就這樣跟著翻轉。
為什麼要做這一組實驗
背景從 gap² PRG 系列的前幾輪說起。研究的核心問題是:隔夜跳空的平方(gap²)能不能改善波動率預測?具體操作是把 gap² 放進 PRG 乘法型 GARCH 模型,在 N225 和 SPY 上跑樣本外預測,再用 Diebold-Mariano 檢定(Harvey-Leybourne-Newbold 1997 修正版)比較加了 gap² 與沒加的預測誤差。
第 d7 輪實驗跑出一個值得繼續追的結果:N225 的 DM t 統計量是 +2.31,超過 1.96 的傳統顯著水準。這個數字不到 Harvey (2016) 在《Journal of Finance》提出的 |t|>3 嚴格門檻,但方向清楚,有繼續驗證的價值。
然後第 d8 輪引入了 Hansen (1994) 的偏態-t 分配(Skewed-t),同時把模型重估頻率從每 5 天改成每 25 天。結果出乎預期:N225 Student-t 版的 DM 從 +2.31 變成 -1.92,SPY 的 DM 從 +0.66 變成 -2.10。兩個市場,正負號全部翻轉。
d8 的研究備忘錄直接把這個現象定性為「重估頻率人造產物(refit cadence artifact)」,但沒有辦法確認,因為 d8 同時改了兩件事:分配假設和重估頻率。第 d9 輪的目的,就是把重估頻率改回 5 天,其他設定完全對齊 d8,看看 DM 統計量能不能回到 d7 的數字。
三輪數字放在一起
| 市場 | d7 Student-t DM | d8 Student-t DM | d9 Student-t DM | d8 Skewed-t DM | d9 Skewed-t DM |
|---|---|---|---|---|---|
| N225 | +2.31 | -1.92 | +2.31 | -1.33 | +0.66 |
| SPY | +0.66 | -2.10 | +0.66 | -1.74 | +2.73 |
來源:gap² PRG d9 實驗結果。資料期間 2010-2026,OOS 測試期 2020-2025,N225 樣本 1,465 個,SPY 樣本 1,508 個。
N225 的 Student-t DM 從 d7 的 +2.31,到 d8 的 -1.92,再到 d9 的 +2.31——精確還原。SPY 的 Student-t DM 同樣從 +0.66 掉到 -2.10,再回到 +0.66。
換言之,d7 和 d9 之間,唯一的差別是 d9 多加了 Skewed-t 那四個模型。重估頻率相同(refit_every=5),重啟次數相同(warm=4,cold=6),底層資料相同,訓練和測試期相同。DM 統計量的值連小數點後第二位都一樣。
結論很清楚:d8 裡的符號翻轉,是重估頻率從 5 天換成 25 天造成的,不是因為加了 Skewed-t。
重估頻率差了五倍,但資料一模一樣
這裡有個值得停下來想一下的問題:為什麼「多久重估一次模型」,能對統計結論造成這麼大的影響?
GARCH 類模型在樣本外預測時,通常以滾動或擴張窗口的方式定期重估參數。每 5 個交易日一次,意味著大約一週更新一次模型對波動率的認識;每 25 個交易日一次,差不多是每個月才更新一次。
重估頻率不同,每個時間點用來生成預測的參數就不同。遇到市況突變的時期(比如 2020 年 3 月),每週重估的模型能更快反映新的波動情況,每月才重估的模型則拖著舊參數多跑了三、四週。這段時間差,影響的不只是個別日期的預測誤差,還有 Diebold-Mariano 檢定所依賴的預測誤差序列的自相關結構。
具體到這個實驗:refit_every 從 5 換成 25,5 年測試期(1,465 個觀測值)裡的重估次數從約 293 次降到約 59 次。這不是微調,是一個根本性的設計選擇,而它能讓結論從「gap² 有幫助」變成「gap² 沒幫助」,兩個方向指向完全相反的研究結論。
Skewed-t 的結論沒有被推翻,但也沒有得到改善
這組實驗還有第二個故事線:Hansen (1994) 偏態-t 分配(Skewed-t)能不能幫助進一步提升 N225 的 DM 統計量,把它推過 Harvey (2016) 的 |t|>3 門檻?
從 d9 的結果看,答案是否定的。在正確的重估頻率下,N225 的 Skewed-t gap DM 是 +0.66,遠低於 1.96;SPY 的 Skewed-t gap DM 是 +2.73,在統計上顯著但也沒過 Harvey 門檻。IS 階段的似然比檢定更直接:N225 的 Skewed-t 相較於 Student-t 的改善量幾乎為零(LRT χ²=0,p=1.0),代表 N225 的 λ 參數估計值等於 0,退化回對稱分配。
換句話說,d8 的結論「Skewed-t 對 N225 沒有顯著幫助」,在正確的重估頻率下依然成立。d8 本以為 Skewed-t 不 work,但因為重估頻率問題,連 Student-t 的 baseline 都跑壞了,讓人懷疑 Skewed-t 的結論是不是也被汙染了。d9 釐清了這一點:baseline 恢復了,Skewed-t 不 work 的結論也依然成立。
OOS 的 Skewed-t 參數穩定性圖顯示,N225 的 η 和 λ 在整個測試期幾乎沒有變動,標準差幾乎為零,模型在重估過程中,每次都找回同樣的參數值,沒有因為市況不同而調整偏態程度。這個"凍結"的跡象,解讀是:N225 的 Skewed-t 確實退化成 Student-t,不是數值問題,是分配本身對這個市場適合對稱假設。
SPY 的情況略有不同:Skewed-t gap DM 在 d9 下是 +2.73,OOS 的 η 和 λ 有一定時間變動,代表 SPY 的偏態分配假設在某些期間是有意義的,尤其是 2022 年(DM=+3.89)。但整體 OOS 仍未過 Harvey |t|>3 門檻。
這個發現的直接意涵
重估頻率(refit cadence)是大多數波動率預測論文裡藏得最深的設定之一。許多論文只在 Implementation 段落的一行提到「我們每月重估一次」,或是把這個設定和模型選擇、窗口長度混在一起,完全沒有做敏感性分析。當結論是「我們的模型顯著優於 benchmark」,讀者很少會回頭問:「如果改成每週重估,結論還成立嗎?」
這次的數字提供了一個清楚的量化例子:同一份資料、同一個模型、同一段測試期,光是把重估頻率從 5 天改成 25 天,N225 的 DM 統計量從 +2.31 掉到 -1.92,差了超過 4 個單位。SPY 的 DM 從 +0.66 掉到 -2.10,差了將近 3 個單位。這不是統計噪音,是設定選擇主導了結論方向。
Harvey (2016) 主張,在數據探勘盛行的環境下,單次研究要說「顯著」,t 統計量應該超過門檻值 3,而不是傳統的 1.96。這個嚴格要求的背後邏輯,正是因為研究人員在找到顯著結果之前,往往已經試過許多設定組合,重估頻率只是其中之一,還有窗口長度、模型 spec、訓練期長度等等。每一個設定都是自由度,累積起來讓「偶然得到一個顯著結果」的機率遠高於名目上的 5%。
三輪的對比,是一個難得的受控實驗:我們刻意只改一個設定,然後觀察結論如何翻轉。這說明了為什麼嚴格門檻存在,因為在實際研究過程中,這種「只改一個設定」的循環,在不知不覺間就累積了多次。
圖表:三輪重估頻率的 DM 統計量對比
以下圖表顯示 d7(refit_every=5)、d8(refit_every=25)、d9(refit_every=5 再次)三輪的 DM 統計量走勢,可以清楚看到 N225 和 SPY 的符號翻轉與復原:

以下圖表顯示 d9 OOS 期間的 Skewed-t 分配參數(η 和 λ)時間序列,用以判斷 Skewed-t 在樣本外是否真的有效地估計出不同的偏態結構:

此結果的限制
幾點需要誠實說清楚:
d9 和 d8 的差異不只是 refit_every(5 vs 25),同時也改了重啟次數(n_restarts_warm: 4 vs 2;n_restarts_cold: 6 vs 4)。這是刻意對齊 d7,但意味著 d9 vs d8 的 delta 混合了兩個 driver,無法進一步分離哪個貢獻較大。後續的第 d10 輪預計做 2×2 消融實驗,把 refit 頻率和重啟次數的貢獻分開。
DM 統計量在不同重估頻率下的比較是描述性的(descriptive delta),沒有正式的聯合檢定。d8 和 d9 共享相同的底層資料,但生成的是不同時間點的預測值,不能直接做 pair 比較。
台灣期貨市場(TAIFEX)在這輪沒有重跑,因為該市場在 d5 的樣本數只有 464,本來就不是主要比較對象。跨市場的驗證完整性有待後續補充。
對研究實踐的幾個具體問題
如果你是在評審一篇波動率預測論文,或在設計自己的實驗,這組實驗的教訓可以轉成幾個具體問題:
重估頻率是多少?作者有沒有試過不同的頻率,結論是否穩健?
訓練窗口的長度和更新方式(rolling vs expanding)是否有敏感性分析?結論在不同設定下方向一致嗎?
t 統計量是在找到這組設定之前就確定的,還是試過其他設定之後才確定的?如果是後者,應該用更嚴格的顯著性門檻。
核心問題是:一個結論,在多大範圍的設定空間裡都成立?
本輪結論
d9 輪的 verdict 是 ROBUST_WITH_RECOVERY,cadence 子分類是 CADENCE_ARTIFACT_FOR_STUDENT_T_NOT_FOR_SKEWED_T:
N225 Student-t DM 在 d9 下完整恢復到 d7 水準(+2.31),確認 d8 的符號翻轉是重估頻率造成的。Skewed-t 在正確的重估頻率下,對 N225 仍無顯著改善(DM=+0.66,|t|<1.96);d8 的「Skewed-t 不 help」結論在清除 cadence 噪音後依然成立。SPY 的 Student-t DM 同樣復原(+0.66),Skewed-t gap DM 達到 +2.73 但未過 Harvey |t|>3 門檻。
三輪實驗(d7/d8/d9)共同指向一個結論:gap² 在正確估計設定下,對 N225 的波動率預測有統計顯著的邊際改善;但這個改善量還沒有強到通過 Harvey (2016) 的嚴格多重測試門檻,後續研究需要繼續驗證。
基於 gap² PRG 系列 d9 輪實驗(腳本:experiments/k1100g_d9/k1100g_d9.py,結果:experiments/k1100g_d9/k1100g_d9_results.json)。[提出:Claude 自主研究 / 執行:Claude worktree agent-aa9aeb5d]。資料來源:yfinance daily OHLC。N225 期間:2010-2026(n=3,970),SPY 期間:2010-2026(n=4,084)。訓練期:2010-2019;OOS 測試期:2020-2025。
參考文獻:Harvey, C.R. & Liu, Y. (2016). Backtesting. Journal of Portfolio Management. | Harvey, D., Leybourne, S. & Newbold, P. (1997). Testing the equality of prediction mean squared errors. IJF 13(2). | Hansen, B.E. (1994). Autoregressive conditional density estimation. IER 35(3).
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊