Diebold–Mariano 檢驗:如何比較預測準確度
了解 Diebold–Mariano 檢驗如何比較成對預測損失、處理重疊預測期,以及為何較低的 p 值並不足以證明交易能力。
本指南內容回測誤差較低,尚未證明預測較好
簡短摘要
Diebold–Mariano 檢驗會比較兩個預測在相同實際結果上的損失差異。結果取決於損失函數、評估樣本、預測期,以及如何估計不確定性。樣本誤差較低本身並不能證明期望預測準確度較高;預測較準確亦不等於交易策略可以獲利。
回測誤差較低,尚未證明預測較好
假設兩個模型在相同日期預測同一個回報、波幅或經濟數值。在評估樣本中,模型 A 的平均誤差低於模型 B。這只描述樣本內觀察到的差距,並不能告訴你 A 是否穩定地較準,亦不能排除差距只是受恰好納入測試的日期所產生的一般波動影響。
Diebold–Mariano(DM)檢驗會將比較轉化為一條成對時間序列。在每個預測起點,兩個預測都會與同一個實際值比較,並以預先選定的損失函數評分,再分析損失差序列。成對比較很重要:市況波動較大的某日可能同時推高兩個模型的損失;這項比較要問的是,在同一批日子中,哪個模型通常損失較少。
原有框架不只適用於平方誤差,亦不要求預測誤差服從常態分佈。只要評分符合預測問題,便可比較不同損失函數,包括不對稱損失。不過,仍要有合理的評估設計,並估計平均損失差的不確定性。Diebold 和 Mariano(1995)提出預測準確度相等檢驗;Harvey、Leybourne 和 Newbold(1997)00719-4)則研究小樣本修正。
計算統計量前,先確保比較條件一致
每一行應代表一個可比較的預測起點。兩個模型必須預測相同目標、相同預測期,並只使用該起點時已知的資料。比較損失前,先對齊實際結果、時間戳、貨幣或計量單位、資料版本和缺失值規則。如果一個模型預測翌日收市價,另一個預測未來五日平均值,兩者的誤差其實回答不同問題。
只使用沒有偷看未來資料而產生的預測。按時間排序的保留樣本或滾動式偽樣本外設計可以做到這點,但如果同一保留樣本被反覆用來調整特徵、門檻或模型版本,單靠切分資料並不足夠。保存每個歷史起點實際產生的預測,以及當時使用的資料和模型版本。否則,事後修訂的宏觀經濟數據、生存者篩選,或根據未來公司行動作出的調整,都可能改變過往的評估結果。
兩個模型應使用同一組預測起點評估。只為其中一個模型刪除較難處理的日期,會破壞成對比較。如果預測有缺漏,應使用共同樣本,或交代處理缺漏預測的理據;不要在沒有說明下讓兩個模型面對不同市況。應在查看哪個樣本會帶來較理想結果之前,先選定評估期的起止日期。
損失函數決定「較準確」的意思
令 t 時點的實際值為 yₜ,模型 A 和 B 的預測分別為 ŷA,ₜ 和 ŷB,ₜ。誤差為 eA,ₜ = yₜ − ŷA,ₜ 及 eB,ₜ = yₜ − ŷB,ₜ。損失函數 L 會把每個誤差轉成一個分數,分數愈低愈好。平方損失 L(e) = e² 對較大的偏差扣分更多;絕對損失 L(e) = |e| 則隨誤差大小線性增加。分位數預測可以使用不對稱 pinball 損失,因為高估和低估的成本可能不同。
選用哪個評分,可能改變看起來較好的模型。假設兩組錯誤都用相同單位:A 的誤差是 0 和 2;B 的誤差是 1 和 1。採用平方損失時,平均損失分別是 2 和 1,因此 B 的分數較好。採用絕對損失時,兩個模型的平均值都是 1。沒有一種計算方式在所有情況都正確;它們分別回答哪些誤差較重要。
對回報預測而言,平方誤差可能適用於條件平均數預測;波幅預測需要配合目標的評分,而 Value-at-Risk(VaR)預測則需要分位數評分或針對風險的回測。知道哪個模型勝出後才選損失函數,會令檢驗變成另一輪搜尋。應在查看比較結果前,先訂明損失函數和「較好」的方向。
VaR 預測針對的是分佈尾部的分位數,而非一般的點預測。VaR 回測指南說明如何用超出門檻的頻率和發生次序,評估這類獨立的風險預測。
建立成對損失差並列明零假設
如果損失愈低愈好,將 t 期的差異定義如下:
dₜ = L(eA,ₜ) − L(eB,ₜ)
按這個正負號約定,dₜ 為正代表 A 的損失較高,因此該起點對 B 較有利;負值則有利 A。樣本平均值為 d̄ = (1/n) Σ dₜ。無條件預測準確度相等的零假設是 E[dₜ] = 0。雙尾對立假設會問期望損失是否有任何方向的差異;預先訂明的單尾對立假設則可以檢驗指定模型的期望損失是否較低。
基本統計量為:
DM = d̄ / √(Ŝd / n)
這裏的 Ŝd 估計損失差序列的長期方差,而非只估計每個模型的預測誤差方差。在零假設和適當的正則條件下,統計量漸近服從標準常態分佈。按上述正負號約定,較大的正值有利 B,較大的負值有利 A。p 值衡量數據與指定零假設及抽樣假設有多吻合,並非任何一個模型為真的機率。
成對比較透過各時點的差值,抵銷兩個模型整體誤差尺度中不相關的差異,但只限於差值能反映的部分。這不會令損失序列互相獨立,不會自動處理參數估計的不確定性,亦不會修正同時搜尋多個目標和規格所造成的影響。這些問題應在研究設計和不確定性計算中另行處理。
單步例子:分清樣本差距和證據
假設有 100 組配對的假設單步預測。以百分點平方為單位,A 的平均平方損失是 0.26,B 是 0.23。因此平均差 d̄ = 0.26 − 0.23 = 0.03,樣本結果有利 B。相應的均方根誤差(RMSE)約為 0.510 和 0.480 個百分點,描述性差距約為 0.030。不過,DM 統計量檢驗的是成對平方損失差,而不是兩個平方根之間的差。為簡化這個教學例子,假設 dₜ 的估計長期方差為 0.04,而且各預測起點之間沒有序列共變異。
平均差的估計標準誤為 √(0.04 / 100) = 0.02。未修正統計量為 0.03 / 0.02 = 1.50。當預測期 h = 1、T = 100 時,Harvey–Leybourne–Newbold 小樣本修正因子為 √[(T + 1 − 2h + h(h − 1)/T) / T] = √0.99 ≈ 0.995。乘上修正因子後,統計量約為 1.49;以近似 t₉₉ 分佈作參照,雙尾 p 值約為 0.14。
B 的觀察平均平方誤差較低,但這個例子在常用顯著水平下,未能提供強而有力的證據去拒絕期望準確度相等的假設。未能拒絕不代表證明兩個模型同樣準確;即使拒絕,結論仍受所選評分、預測起點和假設限制。這裏的方差和所有損失值都是講解用的假設輸入,並非實證結果。

重疊預測期會令損失差互相依賴
如果每日都發佈五日後的預測,相鄰預測會共用五個目標日中的四日。因此,誤差、損失和損失差可能同時變動。將 100 個每日預測起點當作 100 次獨立比較,可能會低估不確定性,令統計量看起來過大。
長期方差會考慮 dₜ 的序列共變異。常用的異質方差和自我相關一致(HAC)估計形式如下:
Ŝd = γ̂₀ + 2 Σₖ₌₁ᵐ wₖ γ̂ₖ
其中,γ̂ₖ 是 d 在第 k 個滯後期的樣本自共變異,wₖ 是核權重,m 是所選頻寬。Newey 和 West(1987)提出一種正半定的 HAC 共變異矩陣估計量。在相關假設成立時,理想 h 步預測誤差的重疊通常會令依賴至少延續至 h − 1 個滯後期;原有 DM 框架亦討論這種情況下的截斷估計。實際數據可能因目標持續性、滾動估計或策略建構而有更長依賴,所以 h − 1 並非通用的頻寬規則。
列明預測期、核函數、頻寬和有否作小樣本修正。不要為了得到想要的 p 值而選頻寬;應展示在合理的依賴設定下結論有否改變。如果為避免重疊而拉開預測起點,應說明這個安排,以及犧牲了哪些資料或樣本數。考慮依賴關係的不確定性估計是檢驗的一部分,並非可有可無的顯示設定。
巢狀模型和隨時間改變的預測能力需要不同問題
在預測準確度相等的零假設下,普通 DM 比較較容易用於模型互不巢狀的預測。如果較大的模型包含較小的基準模型,即使新增係數的真實值為零,額外估計係數仍可能令預測增加雜訊。在這個零假設下,常見的平均平方預測誤差差異可能不服從標準分佈。比較巢狀模型的樣本外 MSPE 時,可以用 Clark–West 修正處理估計雜訊的影響;它並非任何模型設計都適用的 DM 通用替代方法。參閱 Clark 和 West(2007)。
普通 DM 零假設比較整個評估樣本的無條件平均損失,可能掩蓋隨時間變化的情況:A 在平靜市況較好,B 在波動市況較好,但整體平均值相若。如果問題是相對準確度會否受預測日期已知的資料影響,條件預測能力檢驗會把損失差與預先指定的工具變數一併使用。Giacomini 和 White(2006)提出相關框架。假設和評估窗口設計仍然重要;看過結果後任意加指標並非有效捷徑。
應按比較結構選擇檢驗:獨立預測、巢狀模型、條件預測能力改變,或從眾多候選項中選出的模型組合,都是不同情況,不能互相替代。對最後一種情況,White’s Reality Check 和 Hansen’s SPA 指南說明搜尋多項交易規則後,如何作整個模型組合層面的修正。
預測損失較低,不代表策略有盈利能力
預測在統計上較準確,仍可能無法改善淨交易結果。策略必須把預測轉成持倉、選擇交易時間,並承擔買賣差價、佣金、滑價、市場衝擊、資金費用、借貨成本和風險限制。平均回報平方誤差略有改善,可能對決策沒有實際作用;平均誤差稍高的模型,反而可能更能識別某項規則重視的尾部事件。
應把預測評估和投資組合評估分成不同步驟。先用符合預測任務的目標和損失評估預測;再在沒有用於選擇預測的數據上,評估定義完整的交易規則,並採用貼近實際的執行和融資假設。預測檢驗的 p 值並非回測回報、Sharpe 比率或未來獲利的機率。
反覆試驗模型、目標、預測期、損失函數和樣本窗口會造成選擇偏差,即使每次 DM 計算都正確。記錄完整搜尋過程;如果研究問題是有沒有候選項能通過搜尋,就使用整個假設組合層面的修正方法。區塊自助法指南說明如何在保留依賴關係下估計預先選定統計量的不確定性;它本身不能修正未有記錄的模型搜尋。
提供足夠資料,讓其他研究者可以重現
列出兩個預測模型及其與基準模型的關係、目標、預測期、預測起點安排、評估日期、資訊集、資料版本和共同樣本規則。以數學方式定義損失,並說明 dₜ 為正時有利 A 還是 B。報告 n、每個模型的平均損失、d̄、長期方差估計量、HAC 核函數和頻寬、小樣本修正、參照分佈、檢驗方向和 p 值。
亦應說明模型是否巢狀、如何估計參數、比較是在查看結果之前還是之後選定,以及試過哪些其他版本。如果樣本曾用於選擇模型,應標明檢驗是搜尋流程的一部分,不要稱為未曾使用的樣本外證據。清晰報告可讓讀者了解檢驗實際比較甚麼,以及還有哪些不確定性或選擇問題未有處理。
常見問題
Q1Diebold–Mariano 檢驗是否要求預測誤差服從常態分佈?
不是。這個框架可以處理非正態的預測誤差,但仍需要適當的損失差方差估計,以及支持參照分佈的正則條件。
Q2可以比較預測期不同的兩個模型嗎?
不能把結果解讀為同等條件下的準確度比較。應先對齊目標和預測期,否則兩個模型回答的是不同預測問題。
Q3DM 結果顯著,是否足以選擇交易模型?
不足。它只提供指定比較下期望預測損失有差異的證據。你仍需考慮模型搜尋、決策規則、執行及融資成本,以及樣本外策略表現。 主要研究 - Diebold 和 Mariano,“Comparing Predictive Accuracy”(1995) - Harvey、Leybourne 和 Newbold,“Testing the Equality of Prediction Mean Squared Errors”(1997)00719-4) - Giacomini 和 White,“Tests of Conditional Predictive Ability”(2006) - Clark 和 West,“Approximately Normal Tests for Equal Predictive Accuracy in Nested Models”(2007) - Newey 和 West,“A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix”(1987)
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
若 dₜ = L(eA,ₜ) − L(eB,ₜ),樣本平均值為正代表哪個模型較有利?
選擇答案即可查看解釋