评估预测误差——预测指标概览
在上一章中,我们开始深入了解预测的细节,了解了如何生成多步预测。这涵盖了其中一个方面,但预测的另一个方面同样重要且令人困惑——如何评估预测.。
在现实世界中,我们生成预测是为了让下游流程能够更好地规划并采取相关行动。例如,某自行车租赁公司的运营经理需要决定第二天下午4点在地铁站应该提供多少辆自行车。然而,他可能不想盲目使用预测,而是想知道哪些预测值得信赖,哪些不可靠。这只能通过衡量预测的好坏来实现。
我们在书中一直使用几个指标,现在是时候深入细节,理解这些指标、何时使用以及何时不使用它们。我们还将通过实验阐明这些指标的某些方面。
本章涵盖以下主要主题:
- 预测误差度量分类
- 探究误差度量
- 误差度量的实验研究
- 选择评估指标的指南
技术要求
您需要按照本书前言中的说明设置Anaconda环境,以获得一个包含本书代码所需的所有包和数据集的运行环境。
本章的相关代码可在此处找到:https://github.com/PacktPublishing/Modern-Time-Series-Forecasting-with-Python/tree/main/notebooks/Chapter19。
对于本章,您需要运行本书GitHub仓库中Chapters02和Chapter04文件夹中的笔记本。
预测误差度量分类
测量是通向控制并最终实现改进的第一步。
——H. James Harrington
传统上,在回归问题中,我们只有很少的通用损失函数,例如均方误差或平均绝对误差,但当您踏入时间序列预测的世界时,您会接触到大量不同的指标。
由于本书重点讨论点预测(而非概率预测),我们将只回顾点预测指标。
有几个关键因素区分了时间序列预测中的指标:
- 时间相关性:我们所作预测的时间方面是预测范式的一个关键方面。诸如预测偏差和跟踪信号等指标考虑了这一方面。
- 聚合度量:在大多数商业用例中,我们预测的不是单一时间序列,而是一组相关或不相关的时间序列。在这种情况下,查看单个时间序列的度量变得不可行。因此,需要能够捕捉这一混合时间序列特性的度量。
- 过度预测或欠预测:时间序列预测中的另一个关键概念是过度预测和欠预测。在传统回归问题中,我们并不真正担心预测值是否高于或低于预期,但在预测范式中,我们必须注意始终过度预测或欠预测的结构性偏差。当与时间序列的时间维度结合时,这会累积误差并导致下游规划出现问题。
上述因素以及其他一些因素,导致预测度量数量激增。在Hewamalage等人(参考文献1)最近的一篇综述中,涉及的度量数量达到了38个。让我们尝试将这些度量按某种结构统一起来。图19.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,得到两个新的时间序列及其预测,分别为Ascaled和Fscaled。如果我们计算这两组时间序列和预测的预测指标,尺度依赖的指标会给出非常不同的值,而尺度无关的指标会给出相同的值。
许多指标都基于这种误差:
$$MAE = \frac{1}{H} \sum_{t=1}^{H} |e_t|$$
- 平均绝对误差(MAE):
- 中位数绝对误差:MdAE = median(|et|)
- 几何平均绝对误差:$GMAE = \sqrt[H]{\prod_{t=1}^{H} |e_t|}$
- 加权平均绝对误差:这是一种更为深奥的方法,允许你对预测范围的特定时间步施加更大的权重:
$$WMAE = \frac{\sum_{t=1}^{H} w_t |e_t|}{\sum_{t=1}^{H} w_t}$$
这里,wt是特定时间步的权重。这可用于对特殊日期(如周末或促销日)赋予更大的权重。
- 归一化偏差(ND):这是一个严格用于计算时间序列数据集上聚合指标的指标。这也是业界用于衡量不同时间序列上聚合性能的流行指标之一。它不是尺度无关的,会偏向于大尺度时间序列。该指标与另一个称为加权平均百分比误差(WAPE)的指标有很强的联系。我们将在后续讨论WAPE时探讨这些联系。
要计算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)$$
- 均方误差:
- 均方根误差(RMSE):
$RMSE = \sqrt{\frac{1}{H} \sum_{t=1}^{H} (e_t^2)}$
- 中位根平方误差:
$RMdSE = median(\sqrt{e_t^2})$
- 几何均方根误差:
$GRMSE = \sqrt[2n]{\prod_{t=1}^{H} (e_t^2)}$
- 归一化均方根误差(NRMSE):这是一个在精神上与ND非常相似的指标。唯一的区别是,我们在分子中取平方误差的平方根,而不是绝对误差:
$$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):
$$MAPE = \sum_{t=1}^{H} \frac{100 |e_t|}{y_t}$$
- 中位数绝对百分比误差:
$$MdAPE = median \left( \frac{100 |e_t|}{y_t} \right)$$
- WAPE:WAPE 是一种度量,它包容尺度依赖性,并显式地用时间步长的尺度对误差进行加权。如果我们希望更加关注预测区间上的高值,可以给这些时间步长赋予比其它步长更大的权重。WAPE 不是简单的平均,而是对绝对百分比误差进行加权平均。我们可以选择任何权重,但通常情况下,权重取为观测值本身。在这种特殊情况下,通过一些假设,数学推导出一个简单公式,这让我们想起 ND。区别在于,ND 是跨多个时间序列聚合的度量,而 WAPE 是跨时间步长加权的度量。
$$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):
$$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):CFE 简单地说就是所有误差的总和,包括误差的符号。这里,我们希望正负误差相互抵消,以便了解在给定视界内预测是否持续超前或滞后。CFE 接近零意味着预测模型既没有超前也没有滞后:
$$CFE = \sum_{t=1}^{H} e_t$$
- 预测偏差(FB):CFE 衡量超前和滞后的程度,但它仍然依赖于尺度。当我们希望跨时间序列进行比较或对超前/滞后程度有一个直观理解时,可以用实际观测值对 CFE 进行缩放。这被称为预测偏差:
$$FB = \frac{\sum_{t=1}^{H} e_t}{\sum_{t=1}^{H} y_t}$$
- 跟踪信号(TS):跟踪信号是另一个用于衡量预测中相同超前和滞后情况的指标。CFE 和预测偏差更多用于离线场景,而跟踪信号则适用于在线环境,即我们定期(如每小时或每周)跟踪超前和滞后的情况。它有助于检测预测模型中的结构性偏差。通常,跟踪信号与阈值一起使用,当超过或低于该阈值时发出警告。虽然一个经验法则是使用 $\pm 3.75$,但为你的问题确定合适的阈值完全取决于你。值 3.75 源于正态分布的性质,对应于 99% 的置信区间,这意味着该值足够敏感,能在存在结构性偏差时触发警告,同时避免误报。
但最终,这个值应该只是起点,用于开始回溯测试,以确定在你的数据中引发正确警报的阈值:
$$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):
$$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):
$RelMAE = \frac{MAE}{MAE^*}$,其中 $MAE^*$ 是基准预测的 MAE。
- 相对均方根误差(RelRMSE):
$RelRMSE = \frac{RMSE}{RMSE^*}$,其中 $RMSE^*$ 是基准预测的 RMSE。
- 平均相对绝对误差:Davydenko 和 Fildes(参考文献 2)提出了另一种严格用于跨时间序列计算聚合得分的指标。他们认为,对各个时间序列的 RelMAE 使用几何平均优于算术平均,因此他们定义了平均相对绝对误差如下:
$$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):
$$MASE = \frac{1}{H} \sum_{t=1}^{H} |SE|$$
- 均方根缩放误差(RMSSE):为平方误差开发了类似的缩放误差,并于2020年在M5预测竞赛中应用:
$$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)的关系。这两个图显然是对称的,这意味着对实际观测值两侧同等偏离得到同等惩罚,并且如果我们交换实际观测值和预测值,指标保持不变。
平方误差
现在,我们来看平方误差:

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

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

图19.5: 对称误差的损失曲线与互补对
对称误差的提出主要源于百分比误差中存在的非对称性。MAPE(使用百分比误差)是最常用的指标之一,而sMAPE被提出直接挑战并取代MAPE。如其声称,它确实解决了百分比误差中的非对称性,但自身也带来了新的非对称性。在第一张图中,可以看到对于特定的实际值,如果预测值向两侧偏移,受到的惩罚是不同的,因此实际上该指标倾向于过度预测(这与百分比误差相反,后者倾向于欠预测)。
外部误差
在完成所有内部度量后,我们也可以考察外部度量。对于外部度量,绘制损失曲线和检查对称性并不那么容易。我们不再有两个变量,而是有三个——实际观测值、预测值和参考预测值。度量值可能随其中任何一个变化。我们可以使用等高线图,如图19.6所示:

图19.6: 损失曲面的等高线图——相对绝对误差和绝对缩放误差
等高线图使我们能够在二维图中绘制三个维度。两个维度(误差和参考预测值)位于x轴和y轴上。第三个维度(相对绝对误差和绝对缩放误差的值)用颜色表示(参考彩色图片文件:https://packt.link/gbp/9781835883181),等高线划分相同颜色区域。误差关于误差(水平)轴对称。这意味着,如果保持参考预测值不变而改变误差,两个度量在误差两侧的变化相等。这并不奇怪,因为这两个误差都基于绝对误差,而绝对误差是对称的。
值得注意的是对参考预测值的依赖性。我们可以看到,对于相同的误差,相对绝对误差对应不同的参考预测值有不同的值,但缩放误差没有这个问题。这是因为缩放误差不直接依赖于参考预测值,而是使用朴素预测的MAE。这个值对于时间序列是固定的,消除了选择参考预测值的任务。因此,缩放误差对绝对误差具有良好的对称性,并且对参考预测值的依赖很小或固定。
倾向于过度预测或欠预测的偏差
我们在考察的几个度量中已经看到了倾向于过度预测或欠预测的迹象。事实上,流行指标MAPE似乎倾向于欠预测。为了最终验证这一点,我们可以用合成时间序列进行另一个实验;我们在该实验中包含了更多指标,以便知道哪些是安全的,哪些需要仔细审视。
笔记本提示:
用于自行运行这些实验的笔记本是 Chapter19 文件夹中的 02-Over_and_Under_Forecasting.ipynb。
实验简单且详细如下:
- 我们从
2和5之间的均匀分布中随机采样一个长度为100的整数计数时间序列:np.random.randint(2,5,n) - 我们用同样的过程生成一个预测,它也来自
2和5之间的均匀分布:np.random.randint(2,5,n) - 现在,我们生成两个额外的预测,一个来自
0与4之间的均匀分布,另一个来自3与7之间的均匀分布。前者主要是欠预测,后者则是过预测:np.random.randint(0,4,n)# Underforecast np.random.randint(3,7,n) # Overforecast - 我们使用所有三个预测来计算我们想要研究的所有度量。
- 我们将此重复10,000次以平均随机抽取的影响。
实验完成后,我们可以绘制不同指标的箱线图,以展示在这10,000次实验运行中,每个预测的每个指标的分布。让我们看看 图19.7 中的箱线图:

图19.7:过预测与欠预测实验
首先,我们回顾一下对这个实验的预期。过预测(绿色)和欠预测(红色)的预测误差将高于基线(蓝色)。过预测和欠预测的误差将相似。
就此,让我们总结我们的主要发现:
- MAPE明显偏向低预测,其MAPE低于高预测。
- WAPE虽然基于百分比误差,但通过显式加权克服了这个问题。这可能抵消了百分比误差的偏差。
- sMAPE试图修正MAPE,却在相反方向上表现更差。sMAPE高度偏向高预测。
- 基于绝对误差和平方误差的指标(如MAE和RMSE)对高预测或低预测都没有偏好。
- MASE和RMSSE(均使用缩放误差的变体)也表现良好。
- MRAE尽管在参考预测上存在一些不对称,但从高预测和低预测的角度来看是无偏的。
- 基于绝对误差和平方误差的相对度量(RelMAE和RelRMSE)也没有偏向高预测或低预测。
- 平均绝对百分比误差的相对度量RelMAPE继承了MAPE对低预测的偏向。
我们已经研究了不同误差度量的几个属性,并了解了其中一些的基本属性。为了进一步加深理解并更接近帮助我们为问题选择合适的度量,让我们使用本书一直使用的伦敦智能电表数据集再做一次实验。
误差度量的实验研究
如前所述,多年来人们提出了许多预测度量指标。尽管这些指标有不同的公式,但它们在度量内容上可能有相似之处。因此,如果在建模时选择主要和次要度量指标,我们应该选择一些多样化的、衡量预测不同方面的指标。
通过这个实验,我们将尝试找出哪些度量指标彼此相似。我们将使用本书一直使用的伦敦智能电表数据集的子集,并为每个家庭生成一些预测。我选择使用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中:

图19.8: 预测方法与聚合指标之间的斯皮尔曼秩相关
以下是主要观察结果:
- 我们可以看到,meanMASE、meanWAPE和ND(均基于绝对误差)高度相关,表明它们可能衡量预测的相似潜在因素。
- 另一对高度相关的是meanRMSSE和NRMSE,它们都基于平方误差。
- meanMASE和meanRMSSE之间存在弱相关,可能是因为它们都使用缩放误差。
- meanMRAE和Forecast Bias似乎高度相关,尽管这种共同行为没有强有力的依据。一些相关性可能是由于偶然因素,需要在更多数据集上进一步验证。
- meanMRAE和AvgRelRMSE似乎与其他指标以及彼此之间衡量的潜在因素非常不同。
类似地,我们计算了所有家庭中预测方法与指标之间的斯皮尔曼秩相关(图19.9)。这使我们能够在物品层面上进行与之前相同的比较:

图19.9: 预测方法与物品级指标之间的Spearman秩相关
主要观察结果如下:
- 我们可以看到有五组高度相关的指标(五个较深的绿色方块)。
- 第一组是MASE和RMSSE,它们高度相关。这可能是由于这两种指标都采用了缩放误差公式。
- WAPE、MAPE和sMAPE是第二组。坦白说,这有点令人困惑,因为我原本预期MAPE和sMAPE的相关性会较低。从过度预测和不足预测的角度来看,它们的行为恰恰相反。也许我们用来检查这种相关性的所有预测都没有出现过度或不足预测,因此相似性源于共有的百分比误差基础。这需要进一步研究。
- MAE、MdAE、MSE和RMSE构成了高度相似指标的第三组。MAE和MdAE都是绝对误差指标,而MSE和RMSE都是平方误差指标。这两组之间的相似性可能是因为预测中缺乏异常误差。这两种基础误差的唯一区别在于平方误差对异常误差赋予更大的权重。
- 下一组相似指标是各种相对度量的混合——MRAE、RelMAE、RelRMSE、RelMAPE和PB(MAE)——但这一组内的相互相关性不如其他组强。在低相互相关性方面显著突出的指标对有MRAE与RelRMSE以及RelMAPE与RelRMSE。
- 最后一组完全独立,与任何其他指标的相关性都低得多,但彼此之间相关性较高,它们是Forecast Bias和CFE。两者都基于无符号误差计算,并衡量过度或不足预测的程度。
- 如果观察组间相似性,唯一突出的是缩放误差组与绝对误差和平方误差组之间的相似性。
基于单个数据集计算的聚合指标Spearman秩相关需谨慎对待。物品级相关性由于跨越多个家庭而更具意义,但其中仍有一些地方值得进一步研究。我建议你在其他数据集上重复这个实验,在将其作为规则采纳之前检查是否观察到相同的模式。
既然我们已经探索了不同的指标,现在是时候总结一下,并为你提供选择指标的一些指南。
选择评估指标的指南
通过本章的学习,我们了解到很难选择一种通用的预测指标并普遍应用。每个指标都有其优缺点,在选择指标时意识到这些优缺点,才是唯一的理性做法。
让我们总结并指出本章通过不同实验观察到的一些要点:
- 绝对误差和平方误差都是对称损失函数,从欠预测或过预测的角度看是无偏的。
- 平方误差由于包含平方项,确实有放大异常误差的趋势。因此,如果使用基于平方误差的指标,对高误差的惩罚将远大于对低误差的惩罚。
- RMSE 通常比 MSE 更受青睐,因为 RMSE 与原始输入在同一量纲上,因此更易于解释。
- 百分比误差和对称误差并非完全对称,分别偏向于欠预测和过预测。MAPE 是一个非常流行的指标,但受到这一缺陷的困扰。例如,如果我们预测需求,优化 MAPE 会导致选择保守的预测,从而欠预测。这将导致库存短缺和缺货情况。sMAPE 尽管有诸多缺点,已不再受实践者青睐。
- 相对度量是基于百分比误差的指标的一个良好替代,因为它们本质上也具有可解释性,但相对度量依赖于基准方法的质量。如果基准方法表现不佳,相对度量往往会削弱被评估模型误差的影响。另一方面,如果基准预测接近先知预测且误差接近于零,相对度量会夸大模型的误差。因此,选择基准预测时必须小心,这又增加了一个需要担忧的因素。
- 尽管几何平均数相对于算术平均数有一些优点(例如对异常值的鲁棒性以及数据变异较大时更好的近似),但它也有自身的问题。基于几何平均数的度量意味着,即使单个序列(跨时间序列聚合时)或单个时间步(跨时间步聚合时)表现得非常好,由于乘法运算,整体误差也会大幅下降。
- PB 尽管是一个直观的指标,但有一个缺点。我们只是简单地计数表现更好的实例,但它并不评估我们表现得好坏。无论我们的误差比参考误差小 50% 还是 1%,对 PB 分数的影响都是相同的。
Hewamalage 等人(参考文献 1)提出了一个非常详细的流程图来辅助决策,但这更多是关于什么不该使用的指南。选择单一指标是一个非常具有争议性的任务。有很多相互矛盾的观点,我只是在噪音中再添一个。以下是我提出的一些指南,帮助你选择预测指标:
- 避免使用 MAPE。在任何情况下,总有更好的指标来衡量你想要的东西。至少,对于单一时间序列数据集,坚持使用 WAPE。
- 对于单一时间序列数据集,最佳选择的指标是MAE或RMSE(取决于你是否希望对较大误差施加更多惩罚)。
- 对于多个时间序列数据集,使用ND或NRMSSE(取决于是否希望对较大误差施加更多惩罚)。作为第二选择,也可以使用meanMASE或meanRMSSE。
- 如果时间序列在预测范围内发生较大变化(即时间序列水平出现巨大偏移),则可以使用诸如PB或MRAE之类的指标。
- 无论选择哪种指标,务必使用预测偏差、CFE或跟踪信号来关注结构性的过度预测或欠预测问题。
- 如果预测的时间序列是间歇性的(即包含许多零值的时间步),请使用RMSE并避免使用MAE。MAE倾向于生成全零的预测。避免所有基于百分比误差的指标,因为间歇性暴露了它们的另一个缺点——当实际观测值为零时,指标未定义(延伸阅读部分提供了一个博客链接,探讨了适用于间歇性序列的其他指标)。
恭喜你完成了这充满新术语和指标的一章。希望你已经获得了必要的直觉,能够为下一个预测任务智能地选择关注的指标!
小结
在本章中,我们探讨了预测指标这一充满争议且内容丰富的领域。我们从预测指标的基本分类入手,帮助你对这一领域的所有指标进行归类和组织。
然后,我们开展了一些实验,通过这些实验了解了这些指标的不同性质,逐渐更好地理解了这些指标衡量的是什么;通过观察合成时间序列实验,我们了解到MAPE和sMAPE分别偏向于欠预测和过预测。
我们还分析了这些指标在真实数据上的秩相关性,以了解不同指标之间的相似程度,最后通过提供一些指南来帮助你为自己的问题选择预测指标。
在下一章(也是最后一章)中,我们将讨论时间序列的交叉验证策略。
参考文献
以下是我们在本章中使用的参考文献:
- 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..
- 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..
- 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/..
延伸阅读
- 如果您想进一步了解预测指标,可以查看Manu Joseph的博文Forecast Error Measures: Intermittent Demand:https://deep-and-shallow.com/2020/10/07/forecast-error-measures-intermittent-demand/
留下评论!
感谢您从Packt Publishing购买本书——希望您喜欢!您的反馈非常宝贵,有助于我们改进和成长。阅读完成后,请花一点时间在亚马逊上留下评论;只需一分钟,但对像您这样的读者意义重大。
扫描二维码或访问链接以免费获取您选择的一本电子书。