Skip to content
全部期权指南
预测评估14 min read

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 的样本平均平方误差较低,但这个示例并没有提供强有力的证据,足以在常用显著性水平下拒绝期望准确性相等的假设。未能拒绝并不证明两个模型同样准确;即使拒绝,结论仍取决于所选评分、预测起点和假设。这里的方差和所有损失值都是用于讲解的假设输入,并非实证结果。

三栏概念示意图:两条预测线与同一条实际路径对照,按预测起点标出成对损失,再以带不确定性区间的柱形表示围绕均值的有符号损失差。图中没有文字或数字,也不代表真实市场数据。
示意图展示 DM 比较的思路:共用同一实际序列,逐点配对两种预测的损失,再观察围绕均值并带有不确定性的有符号差值。这是概念图,不是实证检验结果。

重叠预测期会让损失差产生依赖

如果每天都发布五天期预测,相邻预测会共享五个目标日中的四天。因此,它们的误差、损失和损失差可能一起变动。把 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 值不是回测收益、夏普比率,也不是未来盈利的概率。

反复尝试模型、目标、预测期、损失函数和样本窗口会造成选择偏差,即便每次 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 道题检查一下

问题 1 / 3

问题 01

当 dₜ = L(eA,ₜ) − L(eB,ₜ) 时,样本均值为正有利于哪个模型?

选择答案即可查看解释

期权术语表