Diebold–Mariano 檢定:比較預測準確度
了解 Diebold–Mariano 檢定比較甚麼、損失差及序列相關如何影響統計量,以及預測準確度為何不等於交易盈利。
本指南內容檢定比較預測的期望損失
簡短摘要
Diebold–Mariano(DM)檢定用來判斷兩種預測程序在同一批實際結果上的期望損失是否相同。它分析逐期損失差的時間序列,所以損失函數、預測期距和日期之間的相依性都會影響結果。拒絕虛無假設,只表示按指定評估設計存在差異;並不證明某個模型會繼續佔優,亦不表示交易策略扣除成本後會有盈利。
檢定比較預測的期望損失
Diebold–Mariano 檢定比較兩個模型在同一評估日期對同一目標所作的預測。每個預測起點都必須採用相同實際結果、預測期距和資訊截點。檢定再評估其中一種程序的平均損失是否持續有別於另一種,並容許損失差隨時間變化。
Diebold 和 Mariano 的原文針對一般損失函數提出競爭預測準確度相同的虛無假設檢定,不只限於均方誤差(Diebold and Mariano, 1995)。此處的「準確度」是指按所選損失函數計算的期望損失較低,不代表預測真確、能解釋因果關係、在整個分佈都校準良好,或適用於所有決策。
假設 A 和 B 兩個模型在同一時間預測同一項未來回報。DM 檢定不會測試模型係數是否等於零,也不會比較模型在估計樣本內的擬合值是否相同。它比較兩個模型的預測誤差在評估樣本內如何按所選損失計分。
解讀統計量前,應先訂明研究設計:目標、預測起點、期距、損失函數、缺漏結果的處理方法、重新估計安排,以及單尾或雙尾對立假設。這些選擇會決定所檢驗的問題。若模型之間的設定不一致,損失差便不是在相同條件下的比較。
定義配對預測和損失差
令 $y_t$ 為預測起點 $t$ 的實際目標值,$\hat y_{A,t}$ 和 $\hat y_{B,t}$ 為 A、B 模型的預測。兩者的誤差是 $e_{A,t}=y_t-\hat y_{A,t}$ 和 $e_{B,t}=y_t-\hat y_{B,t}$。採用損失函數 $L$ 時,日期 $t$ 的損失差定義如下:
$$ d_t=L(e_{A,t})-L(e_{B,t}) $$
按這個正負號設定,$d_t$ 的平均值為負代表 A 的觀察損失較低,為正則代表 B 較低。母體虛無假設是 $E[d_t]=0$。雙尾對立假設會檢驗兩個方向的期望損失差;單尾假設則測試事先指定的方向。不要看過哪個模型勝出後才選定方向。
平方誤差損失 $L(e)=e^2$ 會令大誤差承受較重權重。絕對誤差損失 $L(e)=|e|$ 較少受單一大誤差支配。分位數損失可配合不對稱目標,其他損失亦能衡量預測表現的其他方面。更換損失函數或會反轉模型排名,所以未選定損失前,「最佳預測」沒有唯一意思。Tashman 的樣本外預測檢定回顧亦指出,評估方法要配合預測問題 (Tashman, 200000065-0))。
兩個模型必須使用相同預測起點和實際結果。若某個模型剛好缺少較難日期的預測,只在該模型中默默剔除該日會改變比較樣本。若實際部署會每月用新資料重新估計模型,評估時亦要依照同一規則產生預測;固定參數的預測實驗回答另一個問題。[Walk-forward 驗證](/zh-HK/learn/walk-forward-validation-expanding-vs-rolling-windows-explained)解釋如何避免使用未來資料,按時間次序產生預測。
四個預測起點的例子說明平均差的意思
假設有四個預測起點,以百分點表示目標和預測誤差。A 的誤差是 $[1,2,0,1]$,B 的誤差是 $[2,1,1,1]$;每組都針對同一實際回報和同一預測時段。數值純屬假設,只用來示範計算。
採用平方誤差損失,A 的損失是 $[1,4,0,1]$,均方誤差為 $(1+4+0+1)/4=1.50$ 平方百分點。B 的損失是 $[4,1,1,1]$,均方誤差為 $(4+1+1+1)/4=1.75$。在這四個結果中,A 的 MSE 低 0.25 平方百分點。
逐期損失差 $d_t=L(e_{A,t})-L(e_{B,t})$ 為 $[-3,3,-1,0]$,平均值 $(-3+3-1+0)/4=-0.25$,與 A 的平均 MSE 減去 B 的平均 MSE 相同。按這個設定,負數有利 A。但這還未表示差異大過抽樣誤差;四組預測不足以構成有力的統計證據。
損失定義亦會改變「較佳」的意思。另一個假設例子中,C 的絕對誤差是 $[0,0,0,3]$,D 是 $[1,1,1,1]$。用絕對損失計,C 的平均值為 0.75,D 為 1,所以 C 較佳;用平方損失計,C 為 2.25,D 為 1,所以換成 D 較佳。若不先決定哪些預測錯誤較重要,檢定無法替你解決這個分歧。
<!-- Illustration placement: after this section; text-free conceptual scene showing two forecast paths against one realized path, with visibly different miss distances and no labels or numerical claims. -->
DM 統計量按不確定性調整平均損失差
樣本平均損失差為 $\bar d=T^{-1}\sum_{t=1}^{T}d_t$,$T$ 是配對預測結果的數目。標準誤取決於 $d_t$ 的長期變異數,而不只是一個日期的變異數。統計量的一般形式是:
$$ DM=\frac{\bar d}{\sqrt{\widehat{\Omega}/T}} $$
$\widehat{\Omega}$ 估計損失差序列的長期變異數。若日期互相獨立,按所選估計量會接近 $d_t$ 的變異數。不過,預測損失往往會聚集:高波動時期或會同時放大兩個模型的誤差;$h$ 期預測目標亦可能令相鄰誤差窗口重用同一批實際回報。忽略正向相依性會低估標準誤,令證據看似更強。
常見 HAC 計算會估計已中心化損失差的自共變數 $\hat\gamma_k$,再以 $\widehat{\Omega}=\hat\gamma_0+2\sum_{k=1}^{q}w_k\hat\gamma_k$ 合併。用 Bartlett 權重時,在頻寬 $q$ 內 $w_k=1-k/(q+1)$。Newey 和 West 提出一種對異方差和自相關均一致的半正定共變數估計量 (Newey and West)。核心函數和頻寬是實作選擇,應予以披露並配合預測設計,而不是為了取得想要的 p 值而調校。[HAC 標準誤指南](/zh-HK/learn/robust-standard-errors-heteroskedasticity-hac-finance-explained)介紹較一般的共變數估計問題。
在檢定的正則條件下,標準 DM 統計量會漸近地與標準常態分佈比較。絕對值較大表示觀察到的平均損失差相對於估計不確定性較大。符號會按所定次序顯示哪個模型損失較低;p 值不代表差異的大小或經濟價值,也不是虛無假設為真的機率,或未來預測會成功的機率。
多期預測會重疊,有限樣本處理亦重要
每期都預測多期之後的目標時,評估窗口會重疊。例如每月預測未來三個月的累積回報,會和一個月後發出的預測共用三個月回報中的兩個。即使月回報互相獨立,重疊仍可令預測誤差和損失差出現序列相關。
在基本的 $h$ 期設計中,變異數計算至少要反映至 $h-1$ 期的相依性,但這不是通用的頻寬規則。滾動重新估計、持續性目標、波幅群聚和所選損失函數都可帶來更長的相依性。記錄預測期距、起點間隔,以及選擇 HAC 截斷落後期或其他變異數估計方法的原因。預測行數不會自動等於獨立證據數目。
原有漸近檢定在中等樣本中,實際顯著水平或會失準。Harvey、Leybourne 和 Newbold 提出有限樣本修正,用於比較平均平方預測誤差 (HLN, 199700719-4))。預測期距為 $h$、預測數為 $T$ 時,一種常見形式會將 DM 統計量乘以:
$$ DM_{HLN}=DM\sqrt{\frac{T+1-2h+h(h-1)/T}{T}} $$
修正後的統計量一般會與自由度為 $T-1$ 的 t 分佈比較。$T=60$、$h=5$ 時,乘數約為 $0.925$。例子只展示修正的算術,不表示 60 個觀察值足以分析某個模型,亦不表示假設成立。修正只處理特定有限樣本問題,不能修補資料洩漏、錯誤目標、未建模相依、重複模型選擇或錯誤指定損失函數。
嵌套模型需要另一套預測比較理據
模型 A 可能是模型 B 的受限版本,例如 B 在 A 的基礎上加入預測變數。即使虛無假設認為新增變數在母體中沒有預測價值,其估計係數仍可能為 B 的預測加入雜訊。因此,即使新增變數沒有改善實際預測過程,大模型的觀察 MSE 仍可能較高。為非嵌套模型而設的準確度相等檢驗理據,不能直接照搬。
Clark 和 West 為嵌套模型提出近似常態的預測準確度相等檢定,並調整平方誤差比較,以反映大模型新增的估計雜訊 (Clark and West, 2007)。該調整不是所有 DM 檢定的通用替代品,而是針對特定嵌套模型問題、損失和漸近設定。先確認模型間的嵌套關係,再選擇虛無分佈符合設計的檢定。不要假設軟件提供的標準 DM p 值適用於所有模型關係。
其他區分亦很重要。MSE 較低不一定改善區間涵蓋率、機率校準、方向準確度或後續決策。樣本外比較也可能用了在模型開發期間反覆查看的不合適留出樣本。應交代模型的關係、估計方法、預測期距,以及每個預測使用了哪些資料。
預測準確度不等於交易優勢
DM 結果評估預測損失;交易決定則評估回報和風險。下一期回報的 MSE 較低,不保證訊號經常判斷對交易方向、妥善設定持倉,或能承受換手、差價、市場衝擊、手續費、借貸成本、資金費和執行延遲。相反,平均平方誤差稍高的預測,若在策略曝險較大的時段更準確,仍可能改善決定。相關主張的損失函數或需反映實際決策,而非使用方便的一般預測指標。
即使統計上顯著,差異在經濟上仍可能很小。除了 p 值或勝負標示,還要以可理解的單位報告平均損失差及其不確定性。若聲稱投資組合有表現,應在合適的後續資料上,以現實交易假設重播整套固定決策規則,並另行報告淨結果。除非損失函數本身明確如此設計,DM 不會計算這些損益或扣除成本。
檢定亦不會修正先搜尋大量模型、目標、期距、損失函數、日期區間或交易規則,再只報告最有利比較的問題。重複進行成對檢定會引起額外選擇問題。保留搜尋記錄,並使用適合該組主張的多重檢定方法。[多重檢定和偽發現率指南](/zh-HK/learn/multiple-testing-false-discovery-rate-finance-explained)解釋為何廣泛搜尋後沿用一般門檻可能誤導。DM 是評估工具,並非資料窺探修正。
報告足夠資料以重現比較
清晰報告會列出預測目標和單位、資訊截點、預測起點、期距、重新估計安排和共同評估樣本。它會說明損失函數、$d_t$ 的正負號、各模型平均損失及平均差、事先選定的單尾或雙尾假設,並列出變異數估計量、核心函數、頻寬、統計量、參考分佈、p 值,以及適用的信賴區間或不確定性估計。
另外要披露模型是否嵌套、缺漏結果和極端值如何處理、檢視了多少替代規格,以及評估時段是否影響模型選擇。展示差異的大小,不要只說是否過了門檻。$d_t$ 的時間序列或累積損失差圖表可展示整體平均掩蓋的市況變化,但圖表不能取代考慮相依性的推論。
量化交易亦應交代如何由預測轉為行動:訊號門檻、持倉大小、再平衡時間、風險控制、執行價格和成本假設。DM 只比較輸入的預測損失序列,不能驗證資料流程、令不同評估樣本變得可比較、證明因果,或保證過往排名會持續。把它作為模型評估中透明的一部分,並配合依時間次序設計的預測流程及清楚的決策層面評估。
常見問題
Q1Diebold–Mariano 檢定會比較模型係數嗎?
不會。它比較兩種預測程序在配對結果上產生的預測誤差之期望損失。係數檢定是針對模型參數的另一個問題。
Q2可否用這項檢定比較多期預測?
可以,但重疊的目標區間會令連續損失差出現序列相依。應採用配合預測期距和模型設計的變異數估計,並在適用時作有限樣本修正,同時記錄選擇。
Q3顯著結果是否代表較佳預測會帶來盈利?
不是。它只支持指定評估設計下的預測損失有差異。盈利亦取決於預測如何轉為持倉、所承受的風險,以及實際執行和交易成本。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
基本 Diebold–Mariano 比較的虛無假設是甚麼?
選擇答案即可查看解釋