2013-03-19 22 views
0

預測多元數據我試圖預測銷售週報數據。這些數據由104周的週數,銷售額,平均價格/ perunit,假期(不管該周是否包含假期)和促銷(如果有任何促銷正在進行)組成。所以基本上最後6個obs的數據集看起來如下:與Auto.arima

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屆和1o6th)對第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 

輸出看起來不正確,因爲銷售的預測值是作爲先前值的銷售額非常少的(培訓)值generallly數千範圍。

如果有人能告訴我,爲什麼它是未來不正確的/出乎意料的,那將是巨大的。

+0

使用dput(變量名)的輸出,使您使用的數據的重複的例子。 – user974514 2013-03-19 09:25:41

+0

手段?..沒有得到你? – user2007506 2013-03-19 10:30:52

+0

在你的問題中,不是將數據顯示爲表格,而是在這裏輸出命令'dput(sales)'的輸出。 – user974514 2013-03-19 11:28:06

回答

-3

哪裏模型中的51個傻瓜?沒有他們,你無法捕捉季節性。

+0

只有104個觀察值,所以你不想添加51個虛擬變量。 – 2013-03-19 22:41:04

+0

Rob ----是的,我錯過了。好的,然後使用AR52或季節差異。 – 2013-03-20 12:26:54

+0

一個AR(52)有同樣的問題 - 52個自由度。季節性差異將數據集減半。您需要使用具有更強假設和更少參數的模型來解決這些類型的問題。 – 2013-03-21 00:17:20

0

如果你知道一個先驗的是,在今年年內或某些事件的某些周者可能是重要的,你可以形成一個傳遞函數是couild是有用的。您可能需要包含一些ARIMA結構來處理短期的自迴歸結構和/或一些脈衝/水平位移/局部趨勢來處理未指定的確定性序列(省略變量)。如果你想發佈你的所有數據,我會很樂意向你證明這一點,從而爲你提供零地幫助。或者,您可以通過電子郵件發送給我[email protected],我將分析它並將數據和結果發佈到列表中。關於這個問題的其他評論員可能也想爲比較分析做同樣的事情。

相關問題