ARIMA模型循环python

发布于 2025-01-11 08:45:39 字数 535 浏览 1 评论 0原文

我有一个在 train[:350] test[350:427] 值的数据集中训练的 arima 模型。我正在将模型拟合到训练值中,我的 (p,d,q) 值为 (1,1,2)。目前我一次只能预测一个时间步。我想循环运行模型,以便每次输出一个预测值时,都会将其添加到训练数据集中,并使用新值来预测另一个新的预测值。我无法理解如何做到这一点,到目前为止这就是我所得到的。

historical = train['max']
predictions = []

for t in range(len(test)):
    model = ARIMA(historical, order=(1,1,2))
    model_fit = model.fit()
    output = model_fit.forecast(exog=test['max'][t])
    predictions.append(output)
    observed = test['max'][t]
    historical.append(predictions)
    print(len(historical))

I have an arima Model trained in a dataset of train[:350] test[350:427] values. I Am fitting the model in train values and my (p,d,q) values are (1,1,2). Currently i can predict only one time step at a time. I want to run the model in loop so that everytime it outputs one forecasted value, it is added to the train dataset and the new value is used to predict another new forecasted value. I am unable to understand how to do it and so far this is what i have got.

historical = train['max']
predictions = []

for t in range(len(test)):
    model = ARIMA(historical, order=(1,1,2))
    model_fit = model.fit()
    output = model_fit.forecast(exog=test['max'][t])
    predictions.append(output)
    observed = test['max'][t]
    historical.append(predictions)
    print(len(historical))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单调的奢华 2025-01-18 08:45:39

为此,您不需要循环,而是使用预测方法:

model_fit.predict(start, end, endog=test["max"],dynamic=True)

在这种情况下,ARIMA 将添加将预测值添加到您的数据中,以便做出新的预测。如果您想使用实际值更新数据,请设置 dynamic=False

https://www.statsmodels.org/dev/ generated/statsmodels.tsa.arima.model.ARIMAResults.predict.html#statsmodels.tsa.arima.model.ARIMAResults.predict

You do not need a loop for this, you use the predict method instead:

model_fit.predict(start, end, endog=test["max"], dynamic=True)

In this case ARIMA will add the predicted values to your data in order to make new predictions. If you want to update your data with the real values instead, you set dynamic=False

https://www.statsmodels.org/dev/generated/statsmodels.tsa.arima.model.ARIMAResults.predict.html#statsmodels.tsa.arima.model.ARIMAResults.predict

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文