Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
neko
Associate
Associate
0 Kudos
793

预测计划中的时间序列预测模型性能评估 

简介 

预测计划功能可以为您简化构建时间序列预测模型的过程您要做的仅是评估模型的性能并检查其是否满足要求。预测计划提供实现此目的所需的一切内容。在本博客文章中,我将指导您评估在预测计划中创建的时间序列预测模型的性能 

整体性能指标 

整体性能指标是用于估算时间序列预测模型的准确性的指标。这些性能指标是在预测建模报表的第一部分中默认情况下,预测计划会显示期望的平均绝对百分比误差,因为它是一个良好的、通用的性能指标 

neko_0-1720081438546.png

 

 

 

除了期望的平均绝对百分比误差,预测计划还提供了另外4个性能指标:期望的平均绝对误差期望的平均绝对方根误差、期望的均方根误差和期望的 R²。 

如果您需要配置显示的性能指标及其显示方式,可以单击整体性能指标的可视化设置按钮在可视化对象设置对话框中,可以选择要显示的性能指标,如下所示: 

neko_1-1720081438546.png

 

 

单击确定后,全局性能指标可视化将更新显示所选的指标,如下所示: 

neko_2-1720081438547.png

 

 

 

如何选择性能指标? 

你可能想知道为什么需要不同的性能指标,以及应该使用哪个指标来评估时间序列预测模型的性能。 

  

性能指标的选择取决于您的业务需求。一个预测项目的首要步骤之一便是定义有关预测性能的需求。可接受的预测误差量是多少?它是以错误百分比还是绝对错误量来表示?是否需要特别关注单个日期的较大偏差?不同的要求会自然映射到不同的性能指标。 

  

我们将在下一部分详细介绍每一个性能指标,但如果您没有足够时间阅读整篇文章可以先从下面的总结开始 

  • 如果要确保多个时间序列的性能可比较(例如比较模型的实体时),请使用平均绝对百分比误差。如果您真的不知道应该使用哪个性能指标那么平均绝对百分比误差 大概是一个不错的选择。然而,如果要预测的时间序列包含大量的零值,请勿使用 平均绝对百分比误差(请参阅此博客的“平均绝对百分比误差的一个常见问题”部分) 
  • 如果您希望表示错误的单位和时间序列的单位相同,并且不需要比较多个时间序列的性能,请使用平均绝对误差 
  • 如果大的误差是您的重点关注对象,请使用均方根误差而非平均绝对误差。 
  • 通常,平均绝对方根误差和 R² 对于经验丰富的数据科学家进行更深入分析更为有用。 

我们建议您熟悉预测计划提供的不同性能指标。接下来我们深入了解一下更多细节。 

 

平均绝对百分比误差 

平均绝对百分比误差,即MAPE公式定义为 

neko_3-1720081438547.png

 

 

其中 Ai 是实际值,Fi 是预测值。 

  

平均绝对百分比误差表示的是忽略正负号的误差平均百分比即正误差不会与负误差相抵消)。因此,平均绝对百分比误差的值越低越好。它是预测计划中默认的性能指标,因为它以百分比表示,可以比较不同时间序列的性能。 

 

平均绝对误差 

平均绝对误差,即MAE,公式定义为 

 

neko_4-1720081438548.png

 

 

其中 Ai 是实际值,Fi 是预测值。 

平均绝对误差表示的是忽略正负号的绝对错误量(即正误差不会与负误差相抵消)。平均绝对误差的主要优点是误差的表示直接使用预测时间序列的对应单位。如果您在预测一个以美元为单位的数据,那么可以直接将平均绝对误差表示为“平均误差为56美元”。平均绝对误差的值越低越好(因为它是误差量)。它的主要缺点是其值取决于时间序列的比例(预测量是大还是小)因此它无法正确比较两个时间序列的性能。例如,假设您正在预测产品 A 和产品 B 的销售单位数量每个月平均销售 1000 单位的产品 A 和 100000 单位的产品 B。那么同样 500 个单位的平均绝对误差,对于产品 A 可能被认为相当高,对于产品 B 而言则相当低。 

 

平均绝对方根误差 

平均绝对方根误差,即MASE,会将基于 MAE 评估后的时间序列模型性能与朴素模型进行比较,而不是提供误差量。 

平均绝对方根误差的公式定义为:  

neko_5-1720081438548.png

 

 

其中 MAE 是此时间序列模型的平均绝对误差,MAE naive 是朴素 lag1 模型的平均绝对误差,即,一个在日期 d 预测日期 d-1 的值的模型。 

  

若平均绝对方根误差的值小于 1表示求值模型的执行效果优于朴素模型值大于 1 表示朴素模型执行效果优于求值的模型。 

均方根误差 

均方根误差,即RMSE公式定义为 

 

neko_6-1720081438548.png

 

 

其中 Ai 是实际值,Fi 是预测值。 

  

均方根误差与平均绝对误差有一些相似之处均方根误差也以与预测时间序列相同的单位表示误差量,因此易于解释,但不允许比较多个时间序列的性能。均方根误差和平均绝对误差的区别在“正方形”术语中:它使均方根误差对离群值更加敏感(通常是大的误差)。如果大误差不是一个特别的问题,平均绝对误差通常是更好的选择。 

 

 

 

R²(R 平方)表示由模型解释并由公式定义的时间序列的比例方差: 

neko_7-1720081438548.png

 

  

其中 Ai 是实际值,μ是实际值的平均值,Fi 是预测值。 

 

R²也可以理解为求值模型与朴素模型之间的比较,其中朴素模型总是预测时间序列的平均值使用时必须谨慎,因为它要求时间序列将特定属性(静态性)作为可靠的性能估计值。 

 

使用平均绝对百分比误差时的一个常见问题 

预测计划之所以会将平均绝对百分比误差作为评估时间序列预测模型的默认性能指标,是因为它有几个有趣的特质:易于解读(即以百分比表示的误差量)并且可以在不同的模型(或实体)之间进行比较。大多数情况下,平均绝对百分比误差是一个非常合适的评估时间序列预测模型的指标。 

但是,当时间序列包含大量接近零的值时,应避免使用平均绝对百分比误差来评估时间序列预测模型的性能,因为此时,百分比误差的值往往会变得格外大。在这种情况下,时间序列模型的性能似乎非常差(误差百分比非常高),但实际上它可能是一个相当好的模型。 

例如下图中,预测模型在捕获时间序列的变化方面做得非常好。但是,期望的平均绝对百分比误差值为277.23%这是因为时间序列有许多等于或接近零的实际值。 

 

neko_8-1720081438549.png

 

 

这一现象可以通过平均绝对百分比误差的计算公式来解释。由于我们对于时间序列的每个点都计算误差量除以实际值如果实际值接近零,结果将出现较大偏差 

 

通常情况下,如果时间序列预测模型具有异常高的平均绝对百分比误差,应检查要预测的时间序列是否包含许多接近零的值。如果是,建议使用其他性能指标项(平均绝对误差、平均绝对方根误差、均方根误差),而非平均绝对百分比误差 

 

为什么性能指标要添加“期望的作为前缀? 

您可能注意到了,预测计划中提供的性能指标项均以“期望”为前缀。这是什么意思呢 

标准性能指标(平均绝对百分比误差、平均绝对误差等)的计算方式是将测试集的每个点的预测值与实际值进行比较。这些度量是对模型在过去数据上的表现的“认可”,但是在估测未来的值时,它们无法告诉您能够预期怎样的出现。预测计划使用“期望”度量尝试模仿的是时间序列预测模型在估算未来值时可能实现的性能。 

12%的平均绝对百分比误差表明时间序列模型在测试数据上产生12%的误差。期望的平均绝对百分比误差为12%表明您可以预期未来的预测会有12%的误差 

  

如何计算“期望的性能指标? 

时间序列模型在内部会生成与请求区间点一样多的预测。每个预测对应一个不同的区间。对于每个区间,将计算每个区间的性能指标。性能指标的期望值是已计算的所有每个区间性能指标的平均值。 

 

预测与实际 

在预测与实际可视化中,您可以查看预测值以及预测区间。给定日期的预测值是时间序列预测模型的最佳推测,但它附带一定程度的不确定性。实际值肯定不会严格等于预测值。预测间区间表明实际值可能的取值范围,置信度为 95% 

虽然预测区间主用于提供有关未来可以期望的实际值的更多信息,但也可以将其解释为有关模型性能的可视提示:较小的预测区间意味着对未来值的不确定性较小,可以理解为时间序列模型更有能力提供精确预测。 

评估多实体时间序列预测模型 

“多实体”时间序列预测模型是指一种时间序列预测模型,其中创建了多个子模型来处理称为实体的计划模型的不同切片的特性。创建此类模型时需要在实体设置中提供一组维度。 

预测计划中的时间序列预测模型最多可由1000个实体(子模型)组成:您不能(也不应该分别评估每个实体自己的性能。为解决此问题,概述报告为需要专门评估的实体提供了汇总的性能指标项和提示。 

neko_9-1720081438550.png

 

 

最佳和最差实体 

概述报告的第一部分提供了最佳实体和最差实体的清单,目的是帮助您关注到一些特定实体: 

  • 最差实体:展示准确性最差的10个实体(按期望的平均绝对百分比误差降序排序)。通常来说这些实体值得特别关注思考其性能为何不如其他实体。 
  • 最佳实体:展示性能最佳的10个实体(按期望的平均绝对百分比误差升序排序)。 

显然,我们需要检查那些准确度较低的实体那为什么要注意准确度很高的实体呢毕竟准确度高是好消息——大多数时候是的。但它也会揭示一些隐藏的问题。 

 

例如以下截图中显示的 0% MAPE 应被视为可疑良好。当然,有时您要预测的 KPI 的变化本身就具有一定规律,所以能做到完美预测。一个完美的模型并不一定意味着哪里有问题,但是我们需要检查这些实体能被完美预测的原因。 

neko_10-1720081438551.png

 

 

通常,期望的平均绝对百分比误差值很小意味着实体的历史期间非常小 2 到 4 个历史数据点之间),如下所示: 

neko_11-1720081438551.png

 

  

在这个特定的示例中,我们可以看到时间序列预测模型仅使用两个数据点进行训练。期望的平均绝对百分比误差仅使用最后一个点计算,因此结果过于乐观。历史数据点数量非常小(少于 5 个点)的情况下,其实没有办法推断出实际的未来值。很少的数据历史往往标志着新兴实体(例如最近引入市场的新产品)或已终止实体(例如已从市场中移除的产品)。一般最好将此类实体从模型中排除,因为新兴实体太新,无法推断现实的趋势,而已停用的实体甚至不需要预测。如果您决定了要将这些实体保留在模型中因为确实需要预测,那您必须牢记,估算的准确性很可能会被高估。 

全局性能指标(多实体模型) 

概述报告也提供了聚合所有实体后的性能统计数据 

neko_12-1720081438552.png

 

 

您可以获取聚合了所有实体后计算出的每个性能指标的中值、平均值、第三四分位数和总和。默认情况下仅显示中位数和第三四分法则您可以在设置中选择显示平均值或总和。 

总和这一指标的提供,主要是为了与平均绝对误差配合使用如前所述,此性能指标易受数据规模的影响即较大实体的总合误差量将偏大。中值、平均和第三四分位数与平均绝对误差不太相关,因为它们无法比较不同实体因此,在使用平均绝对误差作为性能指标时,更应考虑所有实体的误差总量(总和)。 

选项中提供了平均值,以防您确实需要关注这一属性但请记住,在一些极端情况下(例如期望的平均绝对百分比误差非常高的实体),平均值很容易出现偏差。通常,中位数更能代表模型的全局性能。 

 

预测模型列表 

我们通常会尝试不同的设置来预测同一个时间序列,不同的模型带来不同的结果。您需要比较这些模型,并选择其中那个性能最佳的。预测模型列表支持您执行以上操作,它位于预测计划用户界面的底部。 

 

neko_13-1720081438552.png

 

 

此列表支持自定义因此您可以勾选最相关的性能指标来比较不同的模型。要显示列选择对话框(下方的屏幕截图),请单击“选择列”按钮(清单右上角的齿轮形状按钮) 

 

neko_14-1720081438553.png

 

 

您需要比较那些可比较的内容,才能使模型之间的比较有意义具体是什么意思呢?首先,需要比较处理相同业务案例的模型的性能。举例来说,将预测差旅费用的模型的性能与预测产品销售的模型的性能进行比较,是没有意义的 

从实际的角度来看,这意味着同一个预测场景中的不同预测模型应分别对应不同的实验,以回答相同的业务问题。每个预测问题应始终有一个不同的预测场景,避免将不相关的模型混合到同一个预测场景中。 

 

结论 

在本博客帖子中,您学习了如何使用预测计划用户界面评估时间序列预测模型的准确性。 

您是否想要了解有关预测计划的更多信息? 

原文作者:@david_serre

链接:Time Series Forecasting Model Performance Evaluation in Predictive Planning