2017-08-26 55 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检查编辑 –