ARIMA 模型为我的温度数据预测一条直线

ARIMA Model Predicting a straight line for my temperature data

我有一个 427 天的温度数据集(每日温度数据)我正在训练 ARIMA 模型 360 天并尝试预测其余 67 天的数据并比较结果。在测试数据中拟合模型时,我只是得到一条直线作为预测,我做错了什么吗? `

from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(train['max'],order=(1,1,2),)
results = model.fit()
results.summary()
start = len(train)
end = len(train) + len(test) -1
predictions= pd.DataFrame()
predictions['pred'] = results.predict(start=start, end=end, typ='levels').rename('ARIMA(1,1,1) Predictions')

您的 ARIMA 模型使用最后两个观察值进行预测,这意味着 t(361) 的预测基于 t(360) 和 t(359) 的真实值。 t(362) 的预测基于已经预测的 t(361) 和真实的 t(360)。 t(363) 的预测基于两个预测值 t(361) 和 t(360)。该预测基于先前的预测,这意味着预测错误将对新预测产生负面影响。 t(400) 的预测是基于基于预测等的预测的预测。想象一下,您的预测每个时间步长仅偏离 1%,您尝试的时间步长越多,预测误差就会变得越来越大预测。在这种情况下,预测通常会在某个点形成一条直线。

如果您使用 ARIMA(p, d, q) 模型,那么您最多可以预测未来 q 步。预测未来的 67 步是一个非常遥远的范围,而 ARIMA 很可能无法做到这一点。相反,尝试仅预测下一个或几个时间步长。