努力使用statsmodels制作一个有效的ARIMA预测图

时间:2017-08-26 21:11:04

标签: python pandas 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预测并把它放到我的切割图上呢?

另外,我不完全确定Python中的ARIMA预测是如何看待曾经被绘制过的(我只是在R中看过它们,但是从我看到它不同的情况来看对于Python),所以也许一个例子会很好。

1 个答案:

答案 0 :(得分:0)

首先,我建议使用read_csv方法并在此处解析您的日期:

npm install

您需要使用库中的fit方法,将Quantity列转换为float64,以避免您提到的错误:

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

(如果你不想打印计算的所有细节,则发送= 0)

然后使用以下方法从拟合模型中获得预测值:

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