我正在尝试预测每周数据的销售情况。数据包括这些变量,周数为no,sales,avgprice / perunit,holiday(无论该周是否包含假期)和促销(如果有任何促销),为期104周。所以基本上最后6个数据集的视图如下:
Week Sales Avg.price.unit Holiday Promotion
101 8,970 50 0 1
102 17,000 50 1 1
103 23,000 80 1 0
104 28,000 180 1 0
105 176 1 0
106 75 0 1
现在我要预测第105周和第106周。所以我使用ts函数创建了单变量时间序列x,然后通过发出命令运行auto.arima函数:
x<-ts(sales$Sales, frequency=7)
> fit<-auto.arima(x,xreg=external, test=c("kpss","adf","pp"),seasonal.test=c("ocsb","ch"),allowdrift=TRUE)
>fit
ARIMA(1,1,1)
**Coefficients:
ar1 ma1 Avg.price.unit Holiday Promotion
-0.1497 -0.9180 0.0363 -10.4181 -4.8971
s.e. 0.1012 0.0338 0.0646 5.1999 5.5148
sigma^2 estimated as 479.3: log likelihood=-465.09
AIC=942.17 AICc=943.05 BIC=957.98**
现在,当我想预测过去2周(第105周和第6周)的值时,我会提供第105周和第106周的回归量的外部值:
forecast(fit, xreg=ext)
where ext consists of future values of regressors for last 2 weeks.
The output comes as:
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
15.85714 44.13430 16.07853 72.19008 1.226693 87.04191
16.00000 45.50166 17.38155 73.62177 2.495667 88.50765
输出看起来不正确,因为预测的销售价值非常低,因为先前价值(培训)值的销售价值通常在数千的范围内。
如果有人能告诉我为什么它会变得不正确/意外,那就太棒了。
答案 0 :(得分:0)
如果您事先知道一年中的某些星期或一年中的某些事件可能很重要,那么您可以形成一个有用的转移功能。您可能必须包含一些ARIMA结构来处理短期自回归结构和/或某些脉冲/电平转换/局部趋势以处理未指定的确定性序列(省略变量)。如果您想发布所有数据,我很乐意证明您为此提供零点帮助。或者,您可以通过dave@autobox.com将其发送给我,我将对其进行分析并将数据和结果发布到列表中。关于这个问题的其他评论员可能也想对比较分析做同样的事情。
答案 1 :(得分:-3)
模特中每周有51个假人?没有它们你就无法捕捉季节性。