1

我对python还是很陌生,我不知道该怎么做:

我有一个带有两列的熊猫数据框(数据):日期和值(整数)。我将此数据框输入一个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方法只给了我十个值。

如果我设置:

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

它给了我一个错误,说

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

我怎样才能做到这一点?也许还有另一种方法,而不是使用predict绘制正确的值?

4

1 回答 1

0

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

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

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

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()将显示在同一个数字中。

于 2021-09-16T16:26:58.037 回答