【问题标题】:ARIMA Forecasting based on real values基于真实值的 ARIMA 预测
【发布时间】:2020-06-20 13:53:40
【问题描述】:

我制作了一个 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 与回归一起工作,因此它采用最后一个值并根据它们预测下一个值。

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

【问题讨论】:

    标签: python prediction statsmodels forecasting arima


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2019-07-17
      • 2018-08-20
      • 1970-01-01
      • 2019-03-03
      相关资源
      最近更新 更多