预测误差度量实验解析

本文通过实验深入分析时间序列预测中常用的误差度量方法,包括绝对误差、平方误差、百分比误差和对称误差,探讨它们的优缺点及适用场景,帮助读者选择合适的评估指标。

预测误差度量:通过实验理解它们

度量是通向控制和最终改进的第一步。——H. James Harrington

在许多业务应用中,前瞻规划能力至关重要,在大多数此类场景中,使用预测来帮助规划未来。例如,如果运营一家零售店,今天应该订购多少箱洗发水?查看预测。到年底能否实现财务目标?进行预测并在必要时进行调整。如果运营一家自行车租赁公司,明天下午4点需要在地铁站停放多少辆自行车?

如果针对所有这些场景,都基于预测采取行动,那么还应该了解这些预测的质量。在经典统计学或机器学习中,有一些通用的损失函数,如平方误差或绝对误差。但由于时间序列预测的发展方式,有更多的方法来评估性能。

在这篇博客文章中,通过实验探索不同的预测误差度量,并了解每种方法的缺点和优点。

时间序列预测中的度量标准

有几个关键点使得时间序列预测中的度量标准与机器学习中的常规度量标准不同。

  1. 时间相关性 顾名思义,时间序列预测内置了时间方面,并且有一些度量标准(如累积预测误差或预测偏差)也考虑了这方面。

  2. 聚合度量 在大多数业务用例中,不会预测单个时间序列,而是一组相关或无关的时间序列。高层管理人员不希望单独查看每个时间序列,而是希望有一个聚合度量,能够指示性地告诉他们预测工作的效果如何。即使对于从业者来说,这种聚合度量也有助于他们整体了解建模进展。

  3. 过度预测或不足预测 预测的另一个关键方面是过度预测和不足预测的概念。不希望预测模型存在结构性偏差,总是过度预测或不足预测。为了应对这些问题,需要既不偏向过度预测也不偏向不足预测的度量标准。

  4. 可解释性 最后一个方面是可解释性。因为这些度量标准也被非分析业务职能使用,所以需要易于解释。

由于这些不同的用例,该领域使用了许多度量标准,这里尝试在某种结构下统一它们,并批判性地检验它们。

预测度量的分类

可以将不同的预测度量大致分为两类——内在度量和外在度量。内在度量是仅使用生成的预测和真实值来计算度量的方法。外在度量是除了生成的预测和真实值之外,还使用外部参考预测来计算度量的方法。

现在先坚持使用内在度量(外在度量需要对这些度量标准采取完全不同的方法)。计算误差有四种主要方式——绝对误差、平方误差、百分比误差和对称误差。所有这些度量标准下的指标只是这些基本误差的不同聚合。因此,在不失一般性的情况下,可以讨论这些广泛的部分,它们也适用于这些标题下的所有度量标准。

绝对误差

这类误差测量使用误差的绝对值作为基础。

平方误差

不取绝对值,而是将误差平方使其为正,这是这些度量的基础。

百分比误差

在这类误差测量中,通过真实值缩放绝对误差,将其转换为百分比形式。

对称误差

对称误差被提出作为百分比误差的替代方案,其中取预测值和真实值的平均值作为缩放绝对误差的基础。

实验

不仅仅说这些是某某度量的缺点和优点,而是设计一些实验,亲自看看这些优点和缺点是什么。

尺度依赖性

在这个实验中,尝试找出时间序列尺度在聚合度量中的影响。对于这个实验:

  • 生成10000个不同尺度但具有相同误差的合成时间序列。
  • 将这些序列分成10个直方图箱
  • 样本大小=5000;遍历每个箱
  • 从当前箱中采样50%,其余从其他箱中等分布采样。
  • 计算这组时间序列的聚合度量
  • 记录相对于箱下限的值
  • 针对箱边缘绘制聚合度量

对称性

误差度量应该对输入(即预测和真实值)对称。如果交换预测和实际值,理想情况下误差度量应该返回相同的值。 为了测试这一点,为实际值和预测值创建一个0到10的网格,并在该网格上计算误差度量。

互补对

在这个实验中,取互补的真实值和预测对,它们加起来是一个常量,并测量每个点的性能。具体来说,使用与对称性实验相同的设置,并计算沿交叉对角线的点,其中真实值+预测值总是加起来等于10。

损失曲线

度量标准取决于两个实体——预测和真实值。可以固定一个,并使用对称误差范围(例如-10到10)变化另一个,然后期望度量在该范围的两侧表现相同。在实验中,选择固定真实值,因为在现实中,那是固定量,并且是针对真实值测量预测。

过度和不足预测实验

在这个实验中,生成4个随机时间序列——真实值、基线预测、低预测和高预测。这些只是在范围内生成的随机数。真实值和基线预测是在2和4之间生成的随机数。低预测是在0和3之间生成的随机数,高预测是在3和6之间生成的随机数。在这种设置下,基线预测应该作为基线,低预测是持续不足预测的预测,高预测是持续过度预测的预测。现在计算这三个预测的MAPE,并重复实验1000次。

10000次实验中的样本

异常值影响

为了检查对异常值的影响,设置以下实验。 想检查异常值在两个轴上的相对影响——异常值的数量、异常值的尺度。因此定义一个网格——异常值数量[0%-40%]和异常值尺度[0到2]。然后随机选择一个合成时间序列,并根据之前定义的网格参数迭代引入异常值,并记录误差度量。

结果与讨论

绝对误差

对称性

那是一个很好的对称热图。沿对角线看到零误差,并且更高的误差以良好的对称模式远离对角线分布。

损失曲线

再次对称。如果在曲线的两侧移动,MAE同样变化。

互补对

再次好消息。如果改变预测,保持实际值不变,反之亦然,度量的变化也是对称的。

过度和不足预测

正如预期,过度或不足预测对MAE没有太大影响。两者都受到同等惩罚。

尺度依赖性

这是MAE的阿喀琉斯之踵。在这里,随着时间序列基本水平的增加,可以看到MAE线性增加。这意味着当比较跨时间序列的性能时,这不是想要使用的度量。例如,当比较两个时间序列,一个水平为5,另一个水平为100,使用MAE总是将更高的误差分配给水平为100的时间序列。另一个例子是当想要比较时间序列集合的不同子部分以查看误差更高的地方(例如不同的产品类别等),那么使用MAE总是会告诉你平均销售额较高的子部分也会有较高的MAE,但这并不意味着该子部分表现不佳。

平方误差

对称性

平方误差也显示出所寻找的对称性。但这里可以看到的另一点是误差偏向更高的误差。颜色的分布从对角线开始不像在绝对误差中看到的那样均匀。这是因为平方误差(由于平方项)将更高的影响分配给更高的误差而不是更低的误差。这也是为什么平方误差通常更容易因异常值而失真。

旁注:由于平方误差和绝对误差也被用作许多机器学习算法中的损失函数,这也对此类算法的训练有影响。如果选择平方误差损失,对较小误差不太敏感,对较高误差更敏感。如果选择绝对误差,则同等惩罚较高和较低误差,因此单个异常值不会对总损失产生太大影响。

损失曲线

在这里可以看到相同的模式。它围绕原点对称,但由于二次形式,较高误差比较低误差具有不成比例的更多误差。

互补对 相同的故事。对称,但是二次的。

过度和不足预测

与MAE类似,由于对称性,过度和不足预测具有几乎相同的影响。

尺度依赖性

与MAE类似,RMSE也有尺度依赖性问题,这意味着讨论的所有MAE缺点也适用于这里,但更糟。可以看到当增加尺度时,RMSE二次缩放。

百分比误差

百分比误差是行业中最流行的误差度量。它非常流行的几个原因是:

  • 尺度独立——正如之前在尺度依赖性图中看到的,当增加时间序列的尺度时,MAPE线是平坦的。
  • 可解释性——由于误差以百分比形式表示,这是非常流行和可解释的,误差度量也立即变得可解释。如果说RMSE是32,单独来看没有任何意义。但另一方面,如果说MAPE是20%,立即知道预测的好坏。

对称性

现在看起来不对,是吗?百分比误差,其中最流行的,看起来根本不对称。事实上,可以看到当实际值接近零时误差达到峰值,当实际值为零时趋于无穷大(底部无色的带是因为除以零而误差无穷大)。

这里可以看到百分比误差的两个缺点:

  • 当真实值为零时未定义(因为除以零)
  • 当真实值较低时分配更高的误差(右上角)

让我们查看损失曲线和互补对图以了解更多。

损失曲线

突然,看到的不对称性不再存在。如果保持真实值固定,百分比误差围绕原点对称。

互补对

但当查看互补对时,看到之前在热图中看到的不对称性。当实际值较低时,相同误差的百分比误差比预测较低时的相同误差高得多。

所有这些都是因为采取的缩放基础。即使有相同大小的误差,如果真实值较低,百分比误差将较高,反之亦然。例如,回顾两种情况: F = 8, A=2 –> 绝对百分比误差 = F=2, A=8 –> 绝对百分比误差 =

有无数的论文和博客声称百分比误差的不对称性是一个致命问题。流行的说法是绝对百分比误差惩罚过度预测多于不足预测,或者换句话说,它激励不足预测。

反对这一点的论点是,这种不对称性仅因为改变真实值而存在。对于期望值为2的时间序列,误差6比期望值为6的时间序列误差2严重得多。因此根据这种直觉,百分比误差正在做它应该做的事情,不是吗?

过度和不足预测

不完全。在某些层面上,对百分比误差的批评是合理的。这里看到不足预测的预测始终具有比过度预测更低的MAPE。低MAPE的分布也显著低于其他。但这是否意味着就业务而言,总是预测较低侧的预测是更好的预测?绝对不是。在供应链中,这导致缺货,如果要在市场上保持竞争力,这不是想要的位置。

对称误差

对称误差被提出作为百分比误差的更好替代方案。百分比误差有两个关键缺点——当真实值为零时未定义和不对称性。对称误差通过使用真实值和预测值的平均值作为计算百分比误差的基础,旨在解决这两个问题。

对称性

立即可以看到,这围绕对角线对称,几乎类似于绝对误差的对称情况。底部空的条现在有颜色(这意味着它们不是未定义的)。但仔细观察会发现更多。它不围绕第二对角线对称。看到当实际值和预测值都较低时误差较高。

损失曲线

这在损失曲线中进一步明显。可以看到当在原点两侧增加误差时的不对称性。与名称相反,对称误差惩罚不足预测多于过度预测。

互补对

但当查看互补对时,可以看到它是完全对称的。这可能是因为基础,保持恒定。

过度和不足预测

在这里也可以看到相同的情况。过度预测序列始终具有比不足预测序列更低的误差。因此,在努力规范百分比误差对不足预测的偏差时,对称误差走向了另一个方向,并偏向过度预测。

异常值影响

除了上述实验,还运行了一个实验来检查异常值(单个预测严重偏离)对聚合度量的影响。

所有四种误差度量在异常值方面具有类似的行为。异常值的数量比异常值的尺度具有更大的影响。

在这四种中,RMSE受异常值的影响最大。可以看到等高线间隔很远,显示当引入异常值时变化率很高。在光谱的另一端,sMAPE受异常值的影响最小。从平坦且紧密间隔的等高线可以明显看出。MAE和MAPE行为几乎相似,可能MAPE稍好一些。

总结

最后,没有一种度量标准能够满足误差度量的所有要求。根据用例,需要挑选和选择。在四种内在度量(及其所有聚合如MAPE、MAE等)中,如果不关心可解释性和尺度依赖性,应该选择绝对误差度量(这也是一个一般性陈述。绝对和平方误差度量的可靠性存在担忧)。当寻找尺度独立的度量时,百分比误差是现有的最佳选择(即使有所有缺点)。在这种情况下,外在误差度量如缩放误差提供了更好的替代方案(也许在另一篇博客文章中也会涵盖这些)。

重现实验的所有代码都在github存储库中: https://github.com/manujosephv/forecast_metrics/tree/master

查看系列中的其余文章 预测误差度量:通过实验理解它们 预测误差度量:缩放、相对和其他误差 预测误差度量:间歇性需求

特色图片来源

进一步阅读

Shcherbakov等人,2013年,预测误差度量调查 Goodwin & Lawton,1999年,关于对称MAPE的不对称性

编辑

修复了等高线图中的错误标签

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计