【问题标题】:Prediction in incorrect days in ARIMA model pythonARIMA模型python中错误日期的预测
【发布时间】:2020-09-09 10:52:45
【问题描述】:

我有一个时间序列数据集。我正在使用 python、pandas 和 statsmodels 来尝试预测下个月的数据。

我有每日数据:

首先我运行 autoarima 来查看我必须在我的 Sarimax 模型中放入哪些变量:

auto_arima(df['occurrences'],seasonal=True,m=7).summary()

我得到了这个结果:

所以,现在我将数据集拆分为训练数据和测试数据。我想尝试预测下个月,所以我这样做了:

train = df.loc[:'2020-04-30']
test = df.loc['2020-05-01':]

我训练模型

model = SARIMAX(df['occurrences'],order=(1, 1, 1))
results = model.fit()
results.summary()
start=len(train)
end=len(train)+len(test)
predictions = results.predict(start=start, end=end, dynamic=False, typ='levels')

但是现在当我绘制预测时,我可以看到预测是如何提前一天的:

ax = test['occurrences'].plot(legend=True,figsize=(12,6),title=title)
predictions.plot(legend=True)
ax.autoscale(axis='x',tight=True)
ax.set(xlabel=xlabel, ylabel=ylabel);

如果我在前一天使用 shift 命令生成所有预测:

ax = test['occurrences'].plot(legend=True,figsize=(12,6),title=title)
predictions.shift(-1).dropna().plot(legend=True)
ax.autoscale(axis='x',tight=True)
ax.set(xlabel=xlabel, ylabel=ylabel);

您可以看到现在是如何在正确的日期安装的,为什么会发生这种情况?

【问题讨论】:

    标签: python statsmodels arima


    【解决方案1】:

    该模型会在正确的日子为您提供正确的预测。 ARIMA 模型相对简单,根据现在和过去预测未来。因此,当模型今天看到较大的值时(例如在观察 11 中),它对明天的预测会更大。

    例如,请参阅此 StackExchange 问题和答案:https://stats.stackexchange.com/questions/330928/time-series-prediction-shifted

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 2020-12-17
      • 1970-01-01
      • 2020-11-18
      相关资源
      最近更新 更多