如何在预测中考虑假期的影响

机器算法验证 时间序列 预测 有马 异常值
2022-01-19 06:22:20

我有一个相当可预测的每日时间序列,具有每周的季节性。当没有假期时,我能够提出看起来非常准确的预测(通过交叉验证确认)。但是,当有假期时,我有以下问题:

  1. 尽管所有历史假期都是 0,但我的预测中的假期数字非零。但这确实不是主要问题。问题是...
  2. 由于不在节假日发生的处理“溢出”到节假日之后的几天,一个简单的虚拟变量并不能减少它,因为这些异常值似乎是短期的创新。如果没有每周的季节性,我也许可以提出一个估计,用于在假期后的五天左右分发假期的未处理数据(如您如何创建反映假期的领先和滞后影响的变量中所建议的那样/时间序列分析中的日历效应?)。然而,“溢出”的分布取决于假期发生在一周中的哪一天,以及假期是圣诞节还是感恩节,订单的下单率低于一年中的其他时间。

以下是我的交叉验证中的一些快照,显示了一周中不同日子出现的假期的预测(蓝色)与实际(红色)结果:

在此处输入图像描述

我也担心圣诞节的影响取决于它所在的星期几,而我只有六年左右的历史数据。

有没有人对如何在预测的背景下处理这些类型的创新异常值有任何建议?(很遗憾我不能分享任何数据)

1个回答

您不能为假期创建一个虚拟变量,一个用于假期+1,一个用于假期+2,并且只要它们在工作日就将它们设置为1吗?

至于感恩节和圣诞节,为这些假期引入单独的虚拟变量似乎是您最糟糕的选择(因为您只有六年的数据)。在某种程度上,这可能是你唯一的选择——人们在那些假期的行为与他们在七月四日的行为不同(如果你正在研究零售销售模式,那么你肯定只需要忍受这些作为“特殊”假期,肯定会想单独分析它们)。但是,也许以下想法对您有帮助:

  • 感恩。它总是在一周中的同一天(星期四)不应该让它更容易吗?即感恩节假人即使在六年的数据集中也可能是可行的,因为工作日模式总是相同的。
  • 圣诞节。在我看来,从您的图表来看,主要问题是效果持续时间比其他假期后更长 - 如果您将“圣诞节”定义为平安夜(12 月 24 日),那将是因为许多人也会呆在家里圣诞节(12 月 25 日)(在某些地方甚至节礼日(12 月 26 日))。我会再考虑一下。

我希望这有帮助。