R中的时间序列预测与年频率

机器算法验证 r 时间序列 预测
2022-04-10 12:24:03

我有一个时间序列,其中包含多年的日常观察(随着时间的推移对“超级碗”主题的兴趣)。数据的季节性也是每年一次,而且非常尖锐(全年几乎没有,1 月/2 月有大幅增加/峰值)。我已经开始使用 R 来完成这项任务(forecast包),并且对统计数据的经验很少。

x <- ts(myts, frequency=365)
fit <- HoltWinters(x)
plot(forecast(fit))

这很有效,并且可以捕捉数据的季节性。

现在,我已经阅读了有关指数平滑的更多信息(在http://otexts.com/fpp/7/上)并且了解到 HoltWinters 模型是在 ets 中实现的状态空间模型的一个实例。不幸的是,到目前为止,我无法使用 ets,因为它抱怨数据频率高。我绝对需要每日预测(大约 30-60 步)。

fit <- ets(x, 'AAA')
Error in ets(x, "AAA") : Frequency too high

为什么 HoltWinters 可以处理这个问题而不是 ets?有没有好的解决方法?对于季节性 ARIMA 模型,我有同样的问题,并考虑将数据拆分为几年,并使用过去几年作为外生输入。

附带说明:您通常如何处理破坏您 365 天周期的闰日?简单地删除它们?

非常感谢!

PS:我知道这一点:http ://robjhyndman.com/researchtips/longseasonality/ 但是,我还不能让它在我的数据上运行得很好。另一方面,HoltWinters 工作得相当好。


感谢所有有用的评论和讨论。我在http://timalthoff.de/data/data.zip上传了数据。 下图显示了 Super_bowl.dat。

如果您想查看更多示例,我冒昧地包含了更多时间序列。

在某些时间点,我想预测大约 60 天的时间序列。这些时间点通常位于代表对某个主题突然感兴趣的大尖峰的左侧。有关示例,请参见 example.png(垂直红线是开始样本外预测的这些时间点)。有关更多信息,请查看自述文件。

在此处输入图像描述

2个回答

尝试使用tbats()R 的预测包中的函数:

x <- ts(myts, frequency=365)
fit <- tbats(x)
plot(forecast(fit))

TBATS 是 ETS 模型的泛化,旨在处理高频数据。有关其背后的 JASA 论文,请参见http://robjhyndman.com/papers/complex-seasonality/ 。

由于您的问题的复杂性,R 可能对您几乎没有用处。我们最近对一个看起来“相似”但“不同”的每日系列进行了预测。

在此处输入图像描述.

它需要结合干预检测、因果变量(假期、促销等)和 ARIMA 结构。我们使用 AUTOBOX(我帮助开发的一个产品)来做到这一点。您可以在板上发布您的数据,我将发布一些结果。这确实是我们见过的最具挑战性的时间序列之一......我们已经寻找了很长时间!看看其他思想领袖如何分析这些数据并比较结果可能会很有趣。

EDITED 收到来自 OP 的数据后

像这样的数据需要结合固定事件,即每月/每天/节假日以及特别形成的一年中的几天,可以在事件周围检测到重要活动。OP 发布了数据,并要求在超级碗之前的 60 个时段进行预测。从 12008 年 1 月 1 日开始,他每天交付 1827 个值。预测有三个来源。仅使用到原点的数据来开发模型/参数。这三个来源是 2010 年 12 月 9 日(使用了 1074 个值)、2011 年 12 月 8 日(使用了 1438 个值)和 2012 年 12 月 5 日(使用了 1801 个值)。这里展示了三个实际拟合预测图。首先使用 1065 个值在此处输入图像描述,然后使用 1438 个值在此处输入图像描述,最后使用所有数据(1801 个值)在此处输入图像描述

完整的分析可以在

http://www.autobox.com/1074.zip

http://www.autobox.com/1438.zip

http://www.autobox.com/1801.zip

每个文件都包含一个 xls/xlsx 文件,其中包含 60 个预测和显示所有分析的其他文件。每个方程都不同,因为用于识别模型的观察次数发生了变化。以下是 2012 年 12 月 5 日期间用于预测超级碗周日前 60 天的公式。该等式使用每日指标反映超级碗周日之前的积累

M_SB 是一个 0/​​1 变量,表示超级碗的日期,而 M_1DB 到 M_22DB 是超级碗星期天之前的日子,而 M_1DA 到 M_3DA 是超级碗之后的日子。此外,其他 4 个假期也有显着反应。1 月和 2 月以及 6 个每日指标(N10107 到 N10607)都会产生重大影响。发现了一个重要的 ARIMA 结构来完善该模型。
Y(T) = -12757。
+[X1(T)][(+ 20512. )] M_SB

   +[X2(T)][(+  8680.2    )]                           M_1DB

   +[X3(T)][(+  1688.0    )]                           M_2DB

   +[X4(T)][(+  2778.1    )]                           M_3DB

   +[X5(T)][(+  1906.4    )]                           M_4DB

   +[X6(T)][(+  1222.0    )]                           M_5DB

   +[X7(T)][(+  829.06    )]                           M_6DB

   +[X8(T)][(+  948.29    )]                           M_7DB

   +[X9(T)][(+  397.93    )]                           M_8DB

   +[X10(T)[(+  509.42    )]                           M_10DF

   +[X11(T)[(+  804.90    )]                           M_11DB

   +[X12(T)[(+  1102.0    )]                           M_12DB

   +[X13(T)[(+  1867.1    )]                           M_13DB

   +[X14(T)[(+  10258.    )]                           M_14DB

   +[X15(T)[(+  754.71    )]                           M_15DB

   +[X16(T)[(+  328.09    )]                           M_17DB

   +[X17(T)[(+  10116.    )]                           M_21DB

   +[X18(T)[(+  1467.6    )]                           M_22DB

   +[X19(T)[(+  1113.0    )]                           M_1DA

   +[X20(T)[(-  673.57    )]                           M_2DA

   +[X21(T)[(+  601.89    )]                           M_3DA

   +[X22(T)[(+  584.44    B**-2+  1669.4    B**-1+  808.45 +  345.02    B** 1)]       M_MARDIGRAS
   +[X23(T)[(-  7812.7    )]                           M_MARTINLKING

   +[X24(T)[(-  541.22    )]                           M_NEWYEARS

   +[X25(T)[(-  529.21    -  389.18    B** 1)]         M_PRESIDENTS

   +[X26(T)[(+  705.02    )]                           MONTH_EFF01

   +[X27(T)[(+  605.10    )]                           MONTH_EFF02

   +[X28(T)[(+  13116.    )]                           FIXED_EFF_N10107

   +[X29(T)[(+  13017.    )]                           FIXED_EFF_N10207

   +[X30(T)[(+  12971.    )]                           FIXED_EFF_N10307

   +[X31(T)[(+  12974.    )]                           FIXED_EFF_N10407

   +[X32(T)[(+  12917.    )]                           FIXED_EFF_N10507

   +[X33(T)[(+  13036.    )]                           FIXED_EFF_N10607

         +     [(1-  .626B** 1)(1-  .249B** 7)]**-1  [A(T)]