在实际值之上绘制auto_arima预测



我对python仍然很陌生,我不知道如何做到这一点:

我有一个pandas dataframe (data),它有两列:日期和值(整数)。我将此数据框输入auto_arima方法。

stepwise_model = auto_arima(data, start_p=1, start_q=1,
test='adf',
max_p=2, max_q=2, m=7,
start_P=0, seasonal=True,
d=None, D=1, trace=True,
error_action='ignore',  
suppress_warnings=True, 
stepwise=True)
plt.plot(data,color='r')
plt.plot(stepwise_model.predict(),color='g')
plt.show()

我的目标是绘制实际值并重叠模型将生成的值,以便比较两条线。然而,我的predict方法只给我10个值。

如果我设置:

plt.plot(stepwise_model.predict(0,len(data)),color='g')

它给了我一个错误,说

raise ValueError('Prediction must have `end` after `start`.')

我该怎么做?也许有另一种方法比使用predict绘制正确的值?

这里的ARIMA模型是一种不同的实现,例如statmodels。predict()方法只需要一个参数来定义预测的长度,默认为10。而不是:

plt.plot(stepwise_model.predict(0,len(data)),color='g')

你只需要给出你想要预测的时间步长(不像在statmodels中那样开始或结束):

plt.plot(stepwise_model.predict(len(data)),color='g')

这是你的模型:https://alkaline-ml.com/pmdarima/modules/generated/pmdarima.arima.ARIMA.html

这是它的predict()方法:https://alkaline-ml.com/pmdarima/modules/generated/pmdarima.arima.ARIMA.html pmdarima.arima.ARIMA.predict

如果你想在实际数据上绘制预测数据,你可以这样做:

plt.plot(stepwise_model.predict(len(data)),color='g')
plt.plot(actual_data)
plt.show()

plt.show()之前的所有内容都将以相同的数字显示。

最新更新