每日数据的时间序列预测:带回归的ARIMA


15

我使用的是每日时间序列的销售数据,其中包含大约2年的每日数据点。根据一些在线教程/示例,我试图确定数据的季节性。似乎有一个每周一次,每月一次,可能还有每年一次的周期性/季节性。

例如,有发薪日,尤其是在该月中的第1个发薪日,该发炎日在一周中持续几天。还有一些特定的假日效应,通过观察观察可以清楚地识别出来。

配备了一些观察结果之后,我尝试了以下操作:

  1. ARIMA(带有R-forecast包Arimaauto.arima来自R-forecast包),使用回归器(以及函数中需要的其他默认值)。我创建的回归器基本上是一个0/1值的矩阵:

    • 11个月(n-1)个变量
    • 12个假期变量
    • 无法计算发薪日部分...因为它的影响比我想象的要复杂得多。发薪日效应的工作方式有所不同,具体取决于每月1日的工作日。

    我使用7(即每周频率)对时间序列进行建模。我尝试了该测试-一次预测7天。结果是合理的:预测11周的平均准确度平均每周RMSE为5%。

  2. TBATS模型(来自R-forecast包)-使用多个季节性(7,30.4375,365.25),并且显然没有回归。在每周平均RMSE 3.5%的情况下,准确性出乎意料地优于ARIMA模型。

    在这种情况下,没有ARMA错误的模型的性能会稍好一些。现在,如果我仅将#1中所述的ARIMA模型的假日效应系数应用于TBATS模型的结果,则每周平均RMSE改善为2.95%

现在,在对这些模型的基础理论没有足够的背景知识或知识的情况下,我感到困惑的是,这种TBATS方法是否有效。尽管它在11周的测试中显着提高了RMSE,但我想知道它将来是否可以保持这种准确性。甚至将ARIMA的假日效果应用于TBATS结果是合理的。任何/所有贡献者的任何想法都将受到高度赞赏。

测试数据链接

注意:执行“将链接另存为”以下载文件。


1
欢迎使用该站点@CKI。如果您可以将数据上传到网络上的某个地方,则可以在此处发布链接。
gung-恢复莫妮卡

我有兴趣进一步了解回归器的设置方式。
轨道

一周中的6天假人,11个每月假人和假期是简单的0/1回归变量。每月的固定日期,假日前后的超前和滞后,时间趋势,季节性脉搏和脉搏均基于启发式搜索。
汤姆·赖利

那么CKI,您是如何解决的?
汤姆·赖利

您好CKI,您能否分享一些用于创建季节性矩阵的R脚本
艾哈迈德(Ahmed)

Answers:


9

您应该评估来自不同视野,来自不同来源的模型和预测,而不是一个数字,以便评估一种方法。

我假设您的数据来自美国。我更喜欢3年以上的每日数据,因为您可以在周末有两个假期,而平日则无法读取。您的感恩节影响似乎在2012年休息一天,或者出现某种记录错误,导致模型错过了感恩节的影响。

如果以年份的百分比表示,一月通常在数据集中较低。周末很高。假人反映了这种行为.... MONTH_EFF01,FIXED_EFF_N10507,FIXED_EFF_N10607

我发现将AR组件与每日数据结合使用时,通常假设一周模式的最后两周是该模式的大致情况,这是一个很大的假设。我们从11个每月的虚拟变量和6个每日的虚拟变量开始。一些退出了模型。B ** 1表示假期后第二天会有滞后影响。一个月中有6个特殊的日子(可能是2、3、5、21、29、30 ----- 21天是虚假的?)和3个时间趋势,2个季节性脉动(一周中的某天开始偏离通常,此数据之前为0,之后每第7天为1)和2个离群​​值(请注意感恩节!),这花费了不到7分钟的时间。在此处下载所有结果www.autobox.com/se/dd/daily.zip

它包含一个快速且肮脏的XLS表,用于检查模型是否合理。当然,XLS%实际上是不好的基准,因为它们是原始基准。

尝试估算此模型:

Y(T) =  .53169E+06                                                                                        
       +[X1(T)][(+  .13482E+06B** 1)]                                       M_HALLOWEEN
       +[X2(T)][(+  .17378E+06B**-3)]                                       M_JULY4TH
       +[X3(T)][(-  .11556E+06)]                                            M_MEMORIALDAY
       +[X4(T)][(-  .16706E+06B**-4+  .13960E+06B**-3-  .15636E+06B**-2                                                 
       -  .19886E+06B**-1)]                                                 M_NEWYEARS
       +[X5(T)][(+  .17023E+06B**-2-  .26854E+06B**-1-  .14257E+06B** 1)]   M_THANKSGIVI
       +[X6(T)][(-  71726.    )]                                            MONTH_EFF01
       +[X7(T)][(+  55617.    )]                                            MONTH_EFF02
       +[X8(T)][(+  27827.    )]                                            MONTH_EFF03
       +[X9(T)][(-  37945.    )]                                            MONTH_EFF09
       +[X10(T)[(-  23652.    )]                                            MONTH_EFF10
       +[X11(T)[(-  33488.    )]                                            MONTH_EFF11
       +[X12(T)[(+  39389.    )]                                            FIXED_EFF_N10107
       +[X13(T)[(+  63399.    )]                                            FIXED_EFF_N10207
       +[X14(T)[(+  .13727E+06)]                                            FIXED_EFF_N10307
       +[X15(T)[(+  .25144E+06)]                                            FIXED_EFF_N10407
       +[X16(T)[(+  .32004E+06)]                                            FIXED_EFF_N10507
       +[X17(T)[(+  .29156E+06)]                                            FIXED_EFF_N10607
       +[X18(T)[(+  74960.    )]                                            FIXED_DAY02
       +[X19(T)[(+  39299.    )]                                            FIXED_DAY03
       +[X20(T)[(+  27660.    )]                                            FIXED_DAY05
       +[X21(T)[(-  33451.    )]                                            FIXED_DAY21
       +[X22(T)[(+  43602.    )]                                            FIXED_DAY29
       +[X23(T)[(+  68016.    )]                                            FIXED_DAY30
       +[X24(T)[(+  226.98    )]                                            :TIME TREND        1                   1/  1   1/ 3/2011   I~T00001__010311stack
       +[X25(T)[(-  133.25    )]                                            :TIME TREND      423                  61/  3   2/29/2012   I~T00423__010311stack
       +[X26(T)[(+  164.56    )]                                            :TIME TREND      631                  91/  1   9/24/2012   I~T00631__010311stack
       +[X27(T)[(-  .42528E+06)]                                            :SEASONAL PULSE  733                 105/  5   1/ 4/2013   I~S00733__010311stack
       +[X28(T)[(-  .33108E+06)]                                            :SEASONAL PULSE  370                  53/  6   1/ 7/2012   I~S00370__010311stack
       +[X29(T)[(-  .82083E+06)]                                            :PULSE           326                  47/  4  11/24/2011   I~P00326__010311stack
       +[X30(T)[(+  .17502E+06)]                                            :PULSE           394                  57/  2   1/31/2012   I~P00394__010311stack
      +                    +   [A(T)]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.