评估预测误差——预测指标概览

在上一章中,我们开始深入了解预测的细节,了解了如何生成多步预测。这涵盖了其中一个方面,但预测的另一个方面同样重要且令人困惑——如何评估预测.。

在现实世界中,我们生成预测是为了让下游流程能够更好地规划并采取相关行动。例如,某自行车租赁公司的运营经理需要决定第二天下午4点在地铁站应该提供多少辆自行车。然而,他可能不想盲目使用预测,而是想知道哪些预测值得信赖,哪些不可靠。这只能通过衡量预测的好坏来实现。

我们在书中一直使用几个指标,现在是时候深入细节,理解这些指标、何时使用以及何时不使用它们。我们还将通过实验阐明这些指标的某些方面。

本章涵盖以下主要主题:

技术要求

您需要按照本书前言中的说明设置Anaconda环境,以获得一个包含本书代码所需的所有包和数据集的运行环境。

本章的相关代码可在此处找到:https://github.com/PacktPublishing/Modern-Time-Series-Forecasting-with-Python/tree/main/notebooks/Chapter19

对于本章,您需要运行本书GitHub仓库中Chapters02Chapter04文件夹中的笔记本。

预测误差度量分类

测量是通向控制并最终实现改进的第一步。

——H. James Harrington

传统上,在回归问题中,我们只有很少的通用损失函数,例如均方误差或平均绝对误差,但当您踏入时间序列预测的世界时,您会接触到大量不同的指标。

由于本书重点讨论点预测(而非概率预测),我们将只回顾点预测指标。

有几个关键因素区分了时间序列预测中的指标:

上述因素以及其他一些因素,导致预测度量数量激增。在Hewamalage等人(参考文献1)最近的一篇综述中,涉及的度量数量达到了38个。让我们尝试将这些度量按某种结构统一起来。图19.1展示了预测误差度量的分类:

图18.1 – 预测误差度量分类

图19.1:预测误差度量分类

我们可以将不同的预测度量语义上分为两个类别——内在外在内在度量仅使用生成的预测和相应的实际值来衡量预测质量。顾名思义,这是一种非常内向的度量。外在度量则除了生成的预测和真实值外,还使用外部参考或基准来衡量预测质量。

在开始介绍度量之前,让我们建立一些符号以便理解。yt和$\hat{y}_i$分别是时间t的实际观测值和预测值。预测范围记为H。在存在时间序列数据集的情况下,假设有M个时间序列,由m索引,最后,$e_t = y_t - \hat{y}_t$表示时间步t的误差。现在,让我们从内在度量开始。

内在度量

内在度量用于评估预测,无需任何外部信息。这些是模型开发、超参数调整等的理想选择。这并不意味着我们不能用这类度量向非技术人员报告性能,但需要结合其他基准来表明我们的表现。

有四种主要的基误差——绝对误差、平方误差、百分比误差和对称误差——它们以不同方式在各种度量中被聚合或汇总。因此,这些基误差的任何属性也适用于聚合度量,所以让我们先看看这些基误差。

绝对误差

误差et可以是正或负,取决于$y_t \lt \hat{y}_t$与否,但在计算并将误差累加在预测范围内时,正负误差可能会相互抵消,从而描绘出更乐观的图景。因此,我们在et之上添加一个函数,以确保误差不会相互抵消。

绝对函数是这些函数之一:绝对误差AE = |et|)。绝对误差是一种尺度依赖误差。这意味着误差的大小取决于时间序列的尺度。例如,如果你有一个AE为10,除非将其置于上下文中,否则它没有任何意义。对于一个值在500到1000左右的时间序列,AE为10可能是一个非常好的数值,但如果时间序列的值在50到70左右,那么它就不好。

当我们查看单个时间序列时,尺度依赖并不是一个大问题,但当我们聚合或比较多个时间序列时,尺度依赖的误差会使指标偏向于大尺度的时间序列。有趣的是,这并不一定是坏事。有时,时间序列的尺度是有意义的,从业务角度来看,更关注大尺度时间序列而不是小尺度时间序列是有道理的。例如,在零售场景中,人们会更关心高销量产品的预测准确性,而不是低销量产品。在这些情况下,使用尺度依赖的误差会自动偏向高销量产品。

你可以通过自己进行实验来了解这一点。生成一个随机时间序列A。类似地,为该时间序列生成一个随机预测F。现在,我们将预测F和时间序列A乘以100,得到两个新的时间序列及其预测,分别为AscaledFscaled。如果我们计算这两组时间序列和预测的预测指标,尺度依赖的指标会给出非常不同的值,而尺度无关的指标会给出相同的值。

许多指标都基于这种误差:

$$MAE = \frac{1}{H} \sum_{t=1}^{H} |e_t|$$

$$WMAE = \frac{\sum_{t=1}^{H} w_t |e_t|}{\sum_{t=1}^{H} w_t}$$

这里,wt是特定时间步的权重。这可用于对特殊日期(如周末或促销日)赋予更大的权重。

要计算ND,我们只需将所有时间序列和预测范围内的绝对误差求和,并按实际观测值缩放:

$$ND = \frac{\sum_{m=1}^{M} \sum_{t=1}^{H} |e_{(t,m)}|}{\sum_{m=1}^{M} \sum_{t=1}^{H} |y_{t,m}|}$$

平方误差

平方是另一个使误差为正并从而防止误差相互抵消的函数:

$$Squared \ Error \ (SE) = e_t^2$$

有许多基于该误差的指标:

$$MSE = \frac{1}{H} \sum_{t=1}^{H} (e_t^2)$$

$$NRMSE = \frac{\sqrt{\frac{1}{MH} \sum_{m=1}^{M} \sum_{t=1}^{H} (e_{t,m}^2)}}{\frac{1}{MH} \sum_{m=1}^{M} \sum_{t=1}^{H} |y_{t,m}|}$$

百分比误差

虽然绝对误差和平方误差是尺度依赖的,但百分比误差是一种无尺度误差度量。在百分比误差中,我们使用实际时间序列观测值对误差进行缩放:$Percent \ Error (PE) = \frac{100 e_t}{y_t}$。一些使用百分比误差的指标如下:

$$MAPE = \sum_{t=1}^{H} \frac{100 |e_t|}{y_t}$$

$$MdAPE = median \left( \frac{100 |e_t|}{y_t} \right)$$

$$WAPE = \frac{\sum_{t=1}^{H} |e_t|}{\sum_{t=1}^{H} |y_t|}$$

对称误差

百分比误差存在一些问题——它是不对称的(我们将在本章后面详细讨论),并且当实际观测值为零时(由于除以零)它会失效。对称误差被提出作为避免这种不对称性的替代方案,但事实证明,对称误差本身也是不对称的——稍后会详细讨论,目前,我们首先了解什么是对称误差:

$$Symmetric \ Error(SE) = \frac{200 |e_t|}{|y_t| + |\hat{y}_t|}$$

在此基础误差下,常用的度量只有两个:

$$sMAPE = \frac{1}{H} \sum_{t=1}^{H} \frac{200 |e_t|}{|y_t| + |\hat{y}_t|}$$

$$sMsAPE = median \left( \frac{200 |e_t|}{|y_t| + |\hat{y}_t|} \right)$$

其他内在指标

还有一些本质上属于内在指标但不属于其他指标的几个指标。其中值得注意的有三个指标,用于衡量预测的超前或滞后程度:

$$CFE = \sum_{t=1}^{H} e_t$$

$$FB = \frac{\sum_{t=1}^{H} e_t}{\sum_{t=1}^{H} y_t}$$

但最终,这个值应该只是起点,用于开始回溯测试,以确定在你的数据中引发正确警报的阈值:

$$TS_w = \frac{\sum_{t=0}^{w} e_t}{\frac{1}{w} \sum_{t=0}^{w} |e_t|}$$

这里,w 是用于计算 TS 的过去窗口。

现在,让我们将注意力转向几个外部指标。

外部指标

外部指标通过将预测质量不仅与实际值比较,还与某些外部参考或基准进行比较来评估预测质量。该基准可以是基线模型、行业标准或竞争对手的预测。这些指标更适合向非技术人员报告模型性能,他们可以立即了解模型表现如何。假设你有一个现有预测并试图改进它;以该预测为参考将立即让你的指标变得可解释。

外部指标下有两个主要类别——相对误差和缩放误差。

相对误差

内在指标的一个问题是,除非有基准分数,否则它们意义不大。例如,如果我们听说MAPE是5%,这并没有太大意义,因为我们不知道那个时间序列的可预测性如何。也许5%是一个很差的错误率。相对误差通过在计算中引入基准预测来解决这个问题,从而将我们测量的预测误差与基准进行比较,进而显示预测的相对增益。因此,除了我们已经建立的符号之外,我们还需要添加一些内容。

令 $y_t^e$ 为基准预测,$e_t^* = y_t - y_t^*$ 为基准误差。我们可以通过两种方式将基准包含在指标中:

让我们来看看几个相对误差:

$$MRAE = \frac{1}{H} \sum_{t=1}^{H} \frac{|e_t|}{|e_t^*|}$$

$$MdRAE = median \left( \frac{|e_t|}{|e_t^*|} \right)$$

$$GMRAE = \sqrt[H]{\prod_{t=1}^{H} \frac{|e_t|}{|e_t^*|}}$$

$RelMAE = \frac{MAE}{MAE^*}$,其中 $MAE^*$ 是基准预测的 MAE。

$RelRMSE = \frac{RMSE}{RMSE^*}$,其中 $RMSE^*$ 是基准预测的 RMSE。

$$AvgRelMAE = \left( \prod_{m=1}^{M} \left( \frac{MAE_m}{MAE_m^*} \right)^{h_m} \right)^{\frac{1}{\sum_{m=1}^{M} h_m}}$$

缩放误差

Hyndman 和 Koehler 于 2006 年提出了缩放误差的概念。这是相对误差的一种替代方案,旨在克服选择基准预测的一些缺陷和主观性。缩放误差使用基准方法(如朴素预测)的样本内 MAE 来缩放预测误差。设整个训练历史长度为 T 个时间步,索引为 i

因此,缩放误差定义如下:

$$SE = \frac{|e_t|}{\frac{1}{T-1} \sum_{i=2}^{T} |y_t - y_{t-1}|}$$

有几个指标采用这一原则:

$$MASE = \frac{1}{H} \sum_{t=1}^{H} |SE|$$

$$RMSSE = \frac{1}{H} \sum_{t=1}^{H} \frac{e_t^2}{\frac{1}{T-1} \sum_{i=2}^{T} (y_t - y_{t-1})^2}$$

其他外部指标

还有一些外部指标不属于我们之前对误差的分类。其中一个误差度量如下。

百分比更优PB)是一种基于计数的方法,可以应用于单个时间序列以及时间序列数据集。其思想是使用一个基准方法,统计给定方法优于基准的次数,并以百分比形式报告。形式上,我们可以使用MAE作为参考误差来定义它,如下所示:

$$PB_{MAE} = 100 \times mean(\mathbb{I}\{MAE \lt MAE^*\})$$

这里,$\mathbb{I}$是指示函数,条件成立时返回1,否则返回0。

在前面的章节中,我们已经看到了许多指标,但现在需要更深入地理解它们的工作原理及其适用场景。

研究误差度量

仅仅知道不同的指标是不够的;我们还需要了解它们如何工作、适用于什么以及不适用于什么。我们可以从基本误差入手,逐步深入,因为理解基本误差的性质,如绝对误差平方误差百分比误差对称误差,将有助于我们理解其他指标,因为大多数其他指标都是这些基本误差的衍生,要么聚合它们,要么使用相对基准。

让我们通过几个实验来进行研究,并通过结果来理解它们。

笔记本提示:

供您自行运行这些实验的笔记本位于 Chapter19 文件夹中的 01-Loss_Curves_and_Symmetry.ipynb

损失曲线与互补性

所有这些基本误差都依赖于两个因素——预测值和实际观测值。如果我们固定其中一个因素,并在对称的潜在误差范围内改变另一个因素,就可以检查这些指标的行为。预期是指标在两侧的行为相同,因为在一个无偏的指标中,偏离实际观测值无论在哪一侧都应受到同等惩罚。我们也可以交换预测值和实际观测值;这也不应影响指标。

在笔记本中,我们正好进行了这些实验——损失曲线和互补对。

绝对误差

当我们为绝对误差绘制这些时,我们得到图19.2

图19.2:绝对误差的损失曲线和互补对

第一个图绘制了带符号误差与绝对误差的关系,第二个图绘制了绝对误差与所有实际值和预测值的组合(总和为10)的关系。这两个图显然是对称的,这意味着对实际观测值两侧同等偏离得到同等惩罚,并且如果我们交换实际观测值和预测值,指标保持不变。

平方误差

现在,我们来看平方误差:

图18.3 – 平方误差的损失曲线与互补对

图19.3:平方误差的损失曲线与互补对

这些图表看起来也是对称的,因此平方误差在非对称误差分布上也没有问题——但我们可以注意到一点。平方误差随着误差的增大呈指数级增长。这指向了平方误差的一个特性——它赋予异常值过高的权重。如果预测在少数时间步上非常差,而在其他所有点上都非常好,平方误差会放大那些异常误差的影响。

百分比误差

现在,我们来看百分比误差:

图18.4 – 百分比误差的损失曲线与互补对

图19.4:百分比误差的损失曲线与互补对

对称性就此消失。当你在真实值两侧移动时,百分比误差是对称的(主要是因为我们将真实值保持不变),但互补对却告诉我们一个完全不同的故事。当真实值为1且预测值为9时,百分比误差为8,但当我们交换它们时,百分比误差降为1。这种不对称性可能导致该指标偏向于低估预测。图19.4中第二个图表的右半部分全是低估预测的情况,我们可以看到,与左半部分相比,那里的误差非常低。

我们将在另一个实验中详细讨论低估与高估预测。

对称误差

现在,我们继续看最后一个误差——对称误差:

图18.5 – 对称误差的损失曲线与互补对

图19.5: 对称误差的损失曲线与互补对

对称误差的提出主要源于百分比误差中存在的非对称性。MAPE(使用百分比误差)是最常用的指标之一,而sMAPE被提出直接挑战并取代MAPE。如其声称,它确实解决了百分比误差中的非对称性,但自身也带来了新的非对称性。在第一张图中,可以看到对于特定的实际值,如果预测值向两侧偏移,受到的惩罚是不同的,因此实际上该指标倾向于过度预测(这与百分比误差相反,后者倾向于欠预测)。

外部误差

在完成所有内部度量后,我们也可以考察外部度量。对于外部度量,绘制损失曲线和检查对称性并不那么容易。我们不再有两个变量,而是有三个——实际观测值、预测值和参考预测值。度量值可能随其中任何一个变化。我们可以使用等高线图,如图19.6所示:

图18.6 – 损失曲面的等高线图 – 相对绝对误差和绝对缩放误差

图19.6: 损失曲面的等高线图——相对绝对误差和绝对缩放误差

等高线图使我们能够在二维图中绘制三个维度。两个维度(误差和参考预测值)位于x轴和y轴上。第三个维度(相对绝对误差和绝对缩放误差的值)用颜色表示(参考彩色图片文件:https://packt.link/gbp/9781835883181),等高线划分相同颜色区域。误差关于误差(水平)轴对称。这意味着,如果保持参考预测值不变而改变误差,两个度量在误差两侧的变化相等。这并不奇怪,因为这两个误差都基于绝对误差,而绝对误差是对称的。

值得注意的是对参考预测值的依赖性。我们可以看到,对于相同的误差,相对绝对误差对应不同的参考预测值有不同的值,但缩放误差没有这个问题。这是因为缩放误差不直接依赖于参考预测值,而是使用朴素预测的MAE。这个值对于时间序列是固定的,消除了选择参考预测值的任务。因此,缩放误差对绝对误差具有良好的对称性,并且对参考预测值的依赖很小或固定。

倾向于过度预测或欠预测的偏差

我们在考察的几个度量中已经看到了倾向于过度预测或欠预测的迹象。事实上,流行指标MAPE似乎倾向于欠预测。为了最终验证这一点,我们可以用合成时间序列进行另一个实验;我们在该实验中包含了更多指标,以便知道哪些是安全的,哪些需要仔细审视。

笔记本提示:

用于自行运行这些实验的笔记本是 Chapter19 文件夹中的 02-Over_and_Under_Forecasting.ipynb

实验简单且详细如下:

  1. 我们从 25 之间的均匀分布中随机采样一个长度为100的整数计数时间序列:
    np.random.randint(2,5,n)
    
  2. 我们用同样的过程生成一个预测,它也来自 25 之间的均匀分布:
    np.random.randint(2,5,n)
    
  3. 现在,我们生成两个额外的预测,一个来自 04 之间的均匀分布,另一个来自 37 之间的均匀分布。前者主要是欠预测,后者则是过预测:
    np.random.randint(0,4,n)# Underforecast
    np.random.randint(3,7,n) # Overforecast
    
  4. 我们使用所有三个预测来计算我们想要研究的所有度量。
  5. 我们将此重复10,000次以平均随机抽取的影响。

实验完成后,我们可以绘制不同指标的箱线图,以展示在这10,000次实验运行中,每个预测的每个指标的分布。让我们看看 图19.7 中的箱线图:

图18.7 – 过预测与欠预测实验

图19.7:过预测与欠预测实验

首先,我们回顾一下对这个实验的预期。过预测(绿色)和欠预测(红色)的预测误差将高于基线(蓝色)。过预测和欠预测的误差将相似。

就此,让我们总结我们的主要发现:

我们已经研究了不同误差度量的几个属性,并了解了其中一些的基本属性。为了进一步加深理解并更接近帮助我们为问题选择合适的度量,让我们使用本书一直使用的伦敦智能电表数据集再做一次实验。

误差度量的实验研究

如前所述,多年来人们提出了许多预测度量指标。尽管这些指标有不同的公式,但它们在度量内容上可能有相似之处。因此,如果在建模时选择主要和次要度量指标,我们应该选择一些多样化的、衡量预测不同方面的指标。

通过这个实验,我们将尝试找出哪些度量指标彼此相似。我们将使用本书一直使用的伦敦智能电表数据集的子集,并为每个家庭生成一些预测。我选择使用darts库进行这个练习,因为我需要多步预测。我使用了五种不同的预测方法——季节性朴素法、指数平滑法、Theta法、FFT和LightGBM(局部)——并生成了预测。此外,我还对这些预测计算了以下指标:MAPE、WAPE、sMAPE、MAE、MdAE、MSE、RMSE、MRAE、MASE、RMSSE、RelMAE、RelRMSE、RelMAPE、CFE、预测偏差和PB(MAE)。除此之外,我们还计算了几个聚合指标:meanMASE、meanRMSSE、meanWAPE、meanMRAE、AvgRelRMSE、ND和NRMSE。

使用斯皮尔曼秩相关

实验的基础是,如果不同的指标衡量相同的潜在因素,那么它们也会对不同家庭的预测进行排名。例如,如果我们说MAE和MASE衡量预测的某个潜在属性,那么这两个指标会对不同家庭给出相似的排名。在聚合层面上,有五种不同的模型和聚合指标衡量相同的潜在因素,并且也应该以类似的方式对它们进行排名。

我们先来看聚合指标。我们使用每个指标在聚合层面上对不同的预测方法进行排名,然后计算排名的皮尔逊相关系数。这样就得到了预测方法与指标之间的斯皮尔曼秩相关。相关矩阵的热图(参见彩色图片文件:https://packt.link/gbp/9781835883181)在图19.8中:

图18.8 – 预测方法与聚合指标之间的斯皮尔曼秩相关

图19.8: 预测方法与聚合指标之间的斯皮尔曼秩相关

以下是主要观察结果:

类似地,我们计算了所有家庭中预测方法与指标之间的斯皮尔曼秩相关(图19.9)。这使我们能够在物品层面上进行与之前相同的比较:

图18.9 – 预测方法与物品级指标之间的Spearman秩相关

图19.9: 预测方法与物品级指标之间的Spearman秩相关

主要观察结果如下:

基于单个数据集计算的聚合指标Spearman秩相关需谨慎对待。物品级相关性由于跨越多个家庭而更具意义,但其中仍有一些地方值得进一步研究。我建议你在其他数据集上重复这个实验,在将其作为规则采纳之前检查是否观察到相同的模式。

既然我们已经探索了不同的指标,现在是时候总结一下,并为你提供选择指标的一些指南。

选择评估指标的指南

通过本章的学习,我们了解到很难选择一种通用的预测指标并普遍应用。每个指标都有其优缺点,在选择指标时意识到这些优缺点,才是唯一的理性做法。

让我们总结并指出本章通过不同实验观察到的一些要点:

Hewamalage 等人(参考文献 1)提出了一个非常详细的流程图来辅助决策,但这更多是关于什么不该使用的指南。选择单一指标是一个非常具有争议性的任务。有很多相互矛盾的观点,我只是在噪音中再添一个。以下是我提出的一些指南,帮助你选择预测指标:

恭喜你完成了这充满新术语和指标的一章。希望你已经获得了必要的直觉,能够为下一个预测任务智能地选择关注的指标!

小结

在本章中,我们探讨了预测指标这一充满争议且内容丰富的领域。我们从预测指标的基本分类入手,帮助你对这一领域的所有指标进行归类和组织。

然后,我们开展了一些实验,通过这些实验了解了这些指标的不同性质,逐渐更好地理解了这些指标衡量的是什么;通过观察合成时间序列实验,我们了解到MAPEsMAPE分别偏向于欠预测和过预测。

我们还分析了这些指标在真实数据上的秩相关性,以了解不同指标之间的相似程度,最后通过提供一些指南来帮助你为自己的问题选择预测指标。

在下一章(也是最后一章)中,我们将讨论时间序列的交叉验证策略。

参考文献

以下是我们在本章中使用的参考文献:

  1. Hewamalage, Hansika; Ackermann, Klaus; and Bergmeir, Christoph. (2022). Forecast Evaluation for Data Scientists: Common Pitfalls and Best Practices. arXiv preprint arXiv: Arxiv-2203.10716: https://arxiv.org/abs/2203.10716v2..
  2. Davydenko, Andrey and Fildes, Robert. (2013). Measuring forecasting accuracy: the case of judgmental adjustments to SKU-level demand forecasts. In . In International Journal of Forecasting. Vol. 29, No. 3., 2013, pp. 510-522: https://doi.org/10.1016/j.ijforecast.2012.09.002..
  3. Hyndman, Rob J. and Koehler, Anne B. (2006). Another look at measures of forecast accuracy. In . In International Journal of Forecasting, Vol. 22, Issue 4, 2006, pp. 679-688: https://robjhyndman.com/publications/another-look-at-measures-of-forecast-accuracy/..

延伸阅读

留下评论!

感谢您从Packt Publishing购买本书——希望您喜欢!您的反馈非常宝贵,有助于我们改进和成长。阅读完成后,请花一点时间在亚马逊上留下评论;只需一分钟,但对像您这样的读者意义重大。

扫描二维码或访问链接以免费获取您选择的一本电子书。

https://packt.link/NzOWQ