2017-08-26 117 views
1

我希望從文件(日期和數量列)中讀取數據並將它們繪製到帶有ARIMA預測的圖上。努力使用statsmodels製作可用的ARIMA預測圖

不幸的是,我沒有運用我用過的在線指南,每個指南都讓我面對不同的問題。

這是我基本的代碼(這只是繪製數據沒有預測):

from pandas import Series 
from matplotlib import pyplot 
from statsmodels.tsa.arima_model import ARIMA 

series = Series.from_csv('Quantity.csv',header=0) 

model = ARIMA(series, order=(2,0,1)) 
series.plot() 
pyplot.show() 

下面是我練與數據:

Date Quantity 
2010/01/01 1358 
2010/07/02 0 
2010/08/03 0 
2011/02/04 0 
2011/11/05 0 
2011/12/06 274 
2012/06/07 1074 
2012/08/30 2223 
2013/04/16 0 
2013/03/18 1753 
2014/02/22 345 
2014/01/27 24 
2015/12/15 652 
2015/09/28 275 
2016/05/04 124 
2017/11/07 75 
2017/09/22 32 
2017/04/04 12 

那麼,怎樣才能創建一個ARIMA預測並將其放到我的切除情節中?另外,我不完全確定一個ARIMA的Python預測是如何繪製的(我只在R中看過它們,但是從我看到它與Python不一樣),所以也許一個例子會很好。

回答

0

首先,我建議使用read_csv方法,在這裏分析日期:

series = pd.read_csv('Quantity.csv', header=0, parse_dates=[0]) 
series.columns = ['Date', 'Quantity'] 

您需要從庫中使用的擬合方法,轉化數量列,以避免錯誤float64你mentionned:

model = ARIMA(series['Quantity'].astype(float), order=(2,0,1), dates=series['Date']) 

(DISP = 0,如果你不希望打印的計算的所有細節)

然後你從擬合模型USI您的預測值NG:

fittedModel.forecast(steps=1) 
+0

我只是去嘗試,並得到這個錯誤:endog - = np.dot(exog,ols_params).squeeze() 類型錯誤:無法施展ufunc減去從D類輸出( 'float64')至D型('int64')與鑄造規則'same_kind' – Impact

+0

任何想法如何解決這一個?我認爲它是一個轉換錯誤,但我不知道在哪裏解決它。 – Impact

+0

@Impact檢查編輯 –