基于实际值的ARIMA预测

2024-04-27 18:50:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个ARIMA模型来预测电力消耗。我还检测到最佳AR I和AM系数(1,0,6)。这些值每五分钟测量一次,并作为csv文件导入。 一天是时间序列建模,另一天是预测。 我的代码如下:

from statsmodels.tsa.arima_model import ARIMA
rcParams['figure.figsize'] = 15, 10
timeseries = df_5min['2010-07-06']
model = ARIMA(timeseries, order=(1,0,6))
result_AR = model.fit(disp=-1)
time_series_df = result_AR.fittedvalues

result_AR.plot_predict(1,600, alpha=0.05)
x = result_AR.forecast(steps=600)
plt.plot(linewidth=1, legend=None)
plt.ylabel('Verbrauch (W)')
plt.xlabel('Zeit (t)')
plt.show()

输出为ARIMA FORECAST

正如你所看到的,预测真的很糟糕。 ARIMA使用回归,因此它取最后一个值,并根据它们预测下一个值

我现在的问题是: 我还有预测日(7月7日至8日)的实际值。 现在我希望ARIMA仅预测接下来的六个步骤,例如,基于最后六个实际值。在预测了性步骤之后,它再次计算最后六个真实值,并根据它们预测接下来的六个


Tags: csv模型dfmodelplot步骤pltresult
1条回答
网友
1楼 · 发布于 2024-04-27 18:50:06

如果可能的话,您应该切换到使用SARIMAX模型,它有更多的功能,并且在未来会得到更好的支持(ARIMA模型将在下一个版本中被弃用)。所以你应该使用

from statsmodels.tsa.api import SARIMAX
model = SARIMAX(timeseries, order=(1, 0, 6))
...

然后,results对象将具有名为extendappend的方法,这些方法将允许您创建一个新的results对象,并使用新值进行扩展。"Cross-validation" section of this example notebook有一些使用extend的例子

相关问题 更多 >