我对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()
之前的所有内容都将以相同的数字显示。