时间序列预测误差度量:尺度误差、相对误差及其他
承接之前关于标准绝对误差、平方误差和百分比误差的博客,让我们看看时间序列预测的替代方案——尺度误差、相对误差和其他误差度量。
预测误差度量的分类
尺度误差和相对误差都属于外在误差度量。它们依赖于另一个参考预测来评估自身,在实践中,参考预测通常是朴素预测或季节性朴素预测。除了这些误差,我们还将探讨诸如百分比优势、累积预测误差、跟踪信号等度量。
相对误差
当我们提到相对误差时,主要有两种计算方式。一种被称为相对误差,另一种被称为相对度量。
相对误差是指我们使用参考模型的预测作为基础来比较误差。相对度量则是使用参考基础模型的某个预测度量来计算误差。
相对误差的计算公式如下:
E_rel = E / E*
其中 E 是我们模型的预测误差,E* 是参考模型的预测误差。
类似地,相对度量的计算公式如下:
M_rel = M / M*
其中 M 是我们模型的预测度量(例如平均绝对误差 MAE),M* 是参考模型的对应度量。这个度量可以是任何值,并不局限于 MAE。
相对误差基于一个参考预测,虽然最常用的是朴素预测,但并不总是如此。例如,如果我们有一个想要改进的现有预测,或者在开发周期中定义的基线预测,我们可以使用相对度量。
一个显而易见的缺点是,当参考预测等于真实值时,它将变为未定义。这可能发生在非常稳定的时间序列或间歇性时间序列中,在这些情况下,真实值可能重复出现,使得朴素预测等于真实值。
尺度误差
尺度误差由 Hyndman 和 Koehler 于 2006 年提出。他们建议根据朴素预测方法在样本内的 MAE 来缩放误差。因此,我们不是使用前一个时间步的真实值作为缩放因子,而是使用整个序列的平均绝对误差作为缩放因子。
E_scaled = E_t / (1/(n-1) * Σ|y_i - y_{i-1}|)
其中 E_t 是时间步 t 的误差,n 是时间序列的长度,y_i 是时间步 i 的真实值。另一种常用的替代方案是使用季节性滞后 l,例如对于 12 个月的季节性,l=12。
这里选择样本内 MAE 是因为它总是可用的,并且比样本外的估计更可靠。
实验
在我们之前的博客中,我们检查了尺度依赖性、对称性、损失曲线、过度预测和预测不足以及异常值的影响。但这次我们处理的是相对误差。因此,绘制损失曲线不再容易,因为有三个输入:真实值、预测值和参考预测值,度量的值会随其中任何一个而变化。过度预测/预测不足和异常值影响我们仍然可以检查。
损失曲线
损失曲线被绘制为等高线图,以适应三个维度——误差、参考预测和度量值。
我们可以看到,误差围绕误差轴是对称的。如果保持参考预测恒定并改变误差,度量在误差两侧是对称的。这并不奇怪,因为所有这些误差都基于绝对误差,而我们已经看到绝对误差是对称的。
但这里有趣的是对参考预测的依赖性。相同的误差会导致不同的相对绝对误差值,具体取决于参考预测。
相对绝对误差的 3D 损失函数图
我们也可以在曲线的 3D 图中看到相同的不对称性。但尺度误差在这里是不同的,因为它不直接依赖于参考预测,而是依赖于参考预测的平均绝对误差。因此,它具有绝对误差的良好对称性,并且对参考预测的依赖性很小。
过度预测与预测不足
对于过度预测与预测不足的实验,我们重复了上次*的相同设置,但针对这四种误差度量——平均相对绝对误差 (MRAE)、平均绝对尺度误差 (MASE)、相对平均绝对误差 (RMAE) 和相对均方根误差 (RRMSE)。
*——做了一个小改动,因为我们还添加了小于 1 的随机噪声,以确保连续的真实值不相同。在这种情况下,相对度量是未定义的。
我们可以看到,这些尺度误差和相对误差没有过度预测或预测不足的偏好问题。低预测和高预测的误差条同样糟糕。即使在基础误差偏向其中之一的情况下(例如 MAPE),相对误差度量 (RMAPE) 也减少了这种“偏向”,使误差度量更加稳健。
我们注意到的另一件事是,平均相对误差有巨大的离散度(实际上我已经放大了以使图表清晰可读)。例如,baseline_rmae 的中位数为 2.79,而 baseline_mrae 的最大值为 42k。这种巨大的离散度表明,平均绝对相对误差的可靠性较低。根据不同的样本,误差变化很大。这可能部分是由于我们使用参考预测的方式。如果真实值过于接近参考预测(在本例中是朴素预测),误差将会大得多。使用中位数相对绝对误差 (MdRAE) 可以部分解决这个缺点。
异常值影响
为了检查异常值的影响,我们也为 MRAE、MASE、RMAE 和 RRMSE 重复了之前博客文章中的相同实验。
其他误差
除了这些标准的误差度量之外,还有一些其他度量,旨在解决我们目前看到的度量未能恰当覆盖的预测的某些方面。
百分比优势
在我们目前看到的所有度量中,只有 MAPE 我认为对非技术人员来说是可解释的。但正如我们所看到的,MAPE 并不具备最佳特性。所有其他度量都不能直观地说明预测的好坏。百分比优势是获得那种可解释性的又一次尝试。
百分比优势也依赖于一个参考预测,并通过计算我们的预测误差度量优于参考预测误差的实例数量来衡量我们的预测。
例如:
PB = (1/N) * Σ I(MAE < MAE*)
其中当 MAE > MAE* 时 I = 0,当 MAE < MAE* 时 I = 1,N 是实例数量。
类似地,我们可以将其扩展到任何其他误差度量。这使我们能够直观地了解与参考预测相比我们做得有多好。这也对异常值相当有抵抗力,因为它只计算实例数量,而不是测量或量化误差。
这也是一个关键的缺点。我们只计算我们表现更好的次数。但它并没有衡量我们做得好多少或差多少。如果我们的误差比参考误差少 50% 或少 1%,这对百分比优势得分的影响是相同的。
标准化均方根误差
提出标准化均方根误差是为了抵消 RMSE 的尺度依赖性。一般思想是将 RMSE 除以一个标量,例如所有时间序列中的最大值、最大值与最小值之间的差值,或所有真实值的平均值等。
由于除以最大值或最大值与最小值之间的差值容易受到异常值的影响,nRMSE 的流行用法是通过均值进行标准化。
nRMSE = RMSE / mean(y)
累积预测误差(即预测偏差)
到目前为止,我们看到的所有误差都侧重于惩罚误差,无论是正误差还是负误差。我们使用绝对项或平方项来确保误差不会相互抵消,从而描绘出比实际情况更美好的图景。
但通过这样做,我们也对预测的结构性问题视而不见。如果我们持续过度预测或预测不足,这是我们应该意识到并采取纠正措施的事情。但我们到目前为止看到的任何度量都没有从这个角度审视。
这就是预测偏差的用武之地。
Bias = (Σ(y - ŷ) / Σy) * 100%
虽然它看起来像百分比误差公式,但这里的关键是没有绝对项。因此,在没有绝对项的情况下,我们累积真实值和预测值,并将它们之间的差值测量为百分比。这提供了一个直观的解释。如果我们看到 5% 的偏差,我们可以推断总体而言,我们预测不足了 5%。根据我们使用“真实值 - 预测值”还是“预测值 - 真实值”,解释会有所不同,但精神相同。
如果我们在多个时间序列上计算,那么我们也会累积我们在测量的任何数据切分点上的真实值和预测值,并计算预测偏差。
总结
让我们将现在看到的误差度量添加到上次制作的汇总表中。
我们再次看到,没有一种度量可以统治所有场景。根据具体情况可能有不同的选择,我们需要根据特定目的进行挑选。
选择预测度量的经验法则和指南
我们已经看到,要只选择一个预测度量并在任何地方使用它并不容易。它们各自都有优缺点,我们的选择应该认识到所有这些。
话虽如此,您可以应用一些经验法则来帮助您完成这个过程:
- 如果每个时间序列都在同一尺度上,使用 MAE、RMSE 等。
- 如果时间序列有较大的变化(即在我们测量的范围内,时间序列水平有巨大变化),那么可以使用像百分比优势或相对绝对误差这样的度量。
- 在跨时间序列汇总时,对于百分比优势或 APE 等度量,我们可以使用算术平均值(例如 MAPE)。对于相对误差,经验证明几何平均值具有更好的特性。但同时,它们也容易受到异常值的影响。我们可以通过以下几种方式控制异常值:
- 修剪异常值或将它们从聚合计算中丢弃。
- 使用中位数进行聚合 (MdAPE) 是控制异常值的另一种极端措施。
- 缩尾处理(用截止值替换异常值)是处理此类巨大个体误差案例的另一种方法。
用于概括预测方法的误差度量:实证比较
某研究机构于 1992 年,利用 M 竞赛对 90 个年度和 101 个季度序列的 5 个子样本及其预测,对这些预测度量进行了广泛的研究。然后他们继续计算样本上的误差度量,并进行研究来检验它们。
他们检验不同度量的关键维度是:
可靠性
可靠性讨论的是重复应用该度量是否产生类似的结果。为了衡量这一点,他们首先计算了所有 5 个子样本(聚合层面)上不同预测方法的误差度量,并按性能对它们进行排名。他们对年度和季度序列进行了提前 1 步和提前 6 步的排名。
因此,他们计算了每个子样本的 Spearman 等级相关系数(成对的)并取平均值。例如,我们取子样本 1 的排名与子样本 2 的排名进行比较,然后子样本 1 与子样本 3 进行比较,等等,直到覆盖所有配对,然后取平均值。
基于 RMSE 的排名可靠性最低,相关系数非常低。他们指出,只有当混合中有大量时间序列时,使用 RMSE 才能克服这个可靠性问题,这可能会中和这种影响。
他们还发现,像百分比优势 和 MdRAE 这样的相对度量比同类度量具有更高的可靠性。他们还尝试计算要达到与百分比优势相同的统计显著性所需的样本数量——GMRAE 需要 18 个序列,MdRAE 需要 19 个,MAPE 需要 49 个,MdAPE 需要 55 个,RMSE 需要 170 个。
结构效度
可靠性衡量的是一致性,而结构效度则问一个度量是否确实衡量了它打算衡量的东西。这向我们展示了各种度量在多大程度上评估了预测方法的“准确性”。为了比较这一点,他们像以前一样检查了预测方法的排名,但这次他们比较了误差度量对之间的排名。例如,基于 RMSE 的排名与基于 MAPE 的排名有多大的一致性?
这些相关性受到结构效度和可靠性的影响。为了解释可靠性的变化,作者通过使用更多数量的样本得出了相同的表格,发现正如预期的那样,平均相关性从 0.34 增加到 0.68,表明这些度量实际上衡量了它们应该衡量的东西。
作为最后的效度检验,他们通过平均 90 个年度序列和 1010 个季度序列的完整样本中每个误差度量的排名来构建一个共识排名,然后检查每个个体误差度量排名与共识排名的相关性。
RMSE 与共识排名的相关性最低。这可能是因为可靠性低。也可能是因为 RMSE 强调较大的误差。
百分比优势也显示出低相关性(尽管它具有高可靠性)。这可能是因为百分比优势是唯一不衡量误差幅度的度量。
敏感性
误差度量对变化的影响具有敏感性是可取的,特别是对于参数校准或调优。当模型参数发生变化时,该度量应能指示对“准确性”的影响。
中位数误差度量不敏感,百分比优势也不敏感。中位数聚合通过关注中间值来隐藏变化,只会缓慢变化。百分比优势不敏感,因为一旦序列的表现优于参考,它就不再对度量进行任何更改。它也不衡量我们是否将一个极差的预测改进到几乎与朴素预测一样准确的程度。
与决策制定的关系
该论文明确指出,他们评估的度量中没有一个是决策制定的理想选择。他们提出 RMSE 作为一个足够好的度量,并对基于百分比的误差表示不满,理由是实际业务影响是以美元计,而不是以百分比误差计。但我不同意这一点,因为当我们客观地评估预测以传达其表现好坏时,RMSE 根本不合格。如果我走到高级管理层面前说财务预测的 RMSE 是 22343,那将是失败的。但相反,如果我说准确率是 90%,每个人都会很高兴。
我和论文都同意一点,相对误差度量与决策制定的相关性不大。
选择误差度量的指南
为了帮助选择误差,该论文还根据他们确定的维度对不同度量进行了评级。
用于参数调优
对于参数调优的校准,论文建议使用在敏感性方面评级高的度量之一——RMSE、MAPE 和 GMRAE。并且由于 RMSE 的低可靠性和 MAPE 偏爱低预测的问题,他们建议使用 GMRAE(几何平均相对绝对误差)。MASE 是在这篇论文发布很久之后才提出的,因此它没有参与这些分析。但如果你仔细想想,MASE 也很敏感,并且不受我们在 RMSE 或 MAPE 中看到的问题的影响,可以成为校准的良好候选者。
用于预测方法选择
为了在预测方法之间进行选择,主要标准是可靠性、结构效度、对异常值的保护以及与决策制定的关系。在这种情况下,敏感性并不那么重要。
该论文立即否定了 RMSE,因为它可靠性低且缺乏对异常值的保护。当序列数量较少时,他们建议使用 MdRAE,它与 GMRAE 一样可靠,但提供了额外的异常值保护。给定中等数量的序列,可靠性变得不那么重要,在这种情况下,MdAPE 将是一个合适的选择,因为它与决策制定的关系更密切。
结论
在两篇博客文章中,我们看到了许多预测度量,并了解了它们各自的优缺点。最终得出了一些在选择预测度量时可以遵循的经验法则。虽然不是结论性的,但我希望它能在你做这些决定时给你一个方向。
但是所有这些讨论都是在假设我们预测的时间序列是稳定和平滑的前提下进行的。但在现实世界的商业案例中,也有很多序列是间歇性或零星的。我们看到在非零需求之前有很长的零需求期。在这种情况下,几乎所有的误差度量(可能除了 MASE)都会失效。在下一篇博客文章中,让我们看看一些适合间歇性需求的度量。
实验的 Github 链接
更新 – 2020年10月4日
在进一步阅读后,偶然发现了一些对 MASE 的批评,我认为也应该在这里提一下。
- 有一些批评指出,我们使用参考预测的平均 MAE 作为缩放误差项。某中心 (2013) 声称这会引入一种偏向,即高估参考预测的准确性。换句话说,对不良预测的惩罚比对良好预测的奖励更大。
- 另一种批评源于平均值不是一个非常稳定的估计,可能会被几个大值所左右。
- Davidenko 和 Fildes 展示的另一个有趣事实是,MASE 等价于相对 MAE 的加权算术平均值,其中可用误差值的数量就是权重。
查看本系列的其他文章
参考文献
- Shcherbakov 等人,2013,预测误差度量调查
- 某研究机构,1992,用于概括预测方法的误差度量:实证比较
- Davidenko & Fildes,2013,衡量预测准确性:SKU 级需求预测判断性调整的案例
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码

公众号二维码
