分析复杂的季节模式
当时间序列数据的频率高于季度或月度时,许多预测程序在分析季节性影响方面遇到了障碍。
澳大利亚蒙纳士大学的研究人员在美国统计协会杂志(JASA)上发表了一篇有趣的论文,以及一个R程序,以处理这种情况 - 可称为“复杂的季节性”。
我已经更新并修改了他们的一项计算 - 使用每周而不是每日的美国常规汽油价格数据 - 并发现整个事情非常有趣。
如果您查看图表下方图例中的颜色代码,则更容易阅读和理解。
我从FRED那里抓住了传统的每周美国汽油价格。这些价格是“常规” - 泵的普通选择。在查看之前的数据后,我确定了2000年第一周的开始日期。然后,我在Hyndman R Forecast软件包中使用了tbats(。),可以下载熟悉本站点的读者,以便在开源矩阵编程语言R中使用。
然后,我建立了2012年第一周称为newGP的时间序列的结束日期,预测将tbats(。)应用于2000年的历史数据:1到2012:1其中第二个数字指的是从1到52的周数。请注意,需要进行一些数据清理工作,以便将天然气价格数据一致地划分为52周。我将“第53周”的平均值与最接近的一周(第二年的52或1)进行平均,然后摆脱了53周。
104周的预测显示在上图中的红色实线上。
这实际上看起来很有希望,好像它可能为美国运输机构编码一些有用的信息。
JASA论文的草稿可以PDF格式下载。它被称为具有复杂季节性模式的预测时间序列,使用指数平滑以及每日美国天然气价格,分析土耳其的日常电力需求和银行呼叫中心数据。
我只是分析天然气价格数据的一部分,因为我还没有接受每日数据。但是每周数据中由tbats(。)识别的季节性模式很有趣,如下所示。
每周频率可以让我们以一定的精度“进入”模式的年中摆动。从模型的样本外性能来看,这种“摆动”在某些情况下可能会更加突出并且非常重要。
适合于较高频率数据的Trignometric系列提取tbats(。)中的季节性模式,其还具有其他高级特征,例如估计残差的ARMA(自回归移动平均)模型的能力。
我没有完全优化估算,但这些结果足够强大,可以鼓励探索切换和开关程序。
在此聚合级别工作的另一个例程是stlf(。)例程。这是使用STL分解在第36章基于时间序列分解的模式发现中详细描述的数据挖掘论文集。