gpt4 book ai didi

python - 在 Python 中更新 ARIMA 预测

转载 作者:行者123 更新时间:2023-12-02 04:36:00 26 4
gpt4 key购买 nike

我有一个包含 3068 个观察值的系列。我想为第一个 3037 次观察生成一个 ARIMA(0,1,1) 模型,并用这个模型预测第 3038 个实际观察到第 3037 个。然后我想用 3038 个实际观察更新这个 ARIMA(0,1,1) 模型,并用这个模型预测第 3039 个实际观察到第 3038 个实际观察。继续...一些草稿代码示例将不胜感激。

最佳答案

在我看来,更新整个 ARIMA 模型的速度很快,但我还没有找到仅将下一个观察值附加到模型的方法。我的完整模型重新拟合代码:

    for t in range(len(test)):
model = ARIMA(history, order=(ar, i, ma))
model_fit = model.fit(disp=0, solver=solver, max_iter=max_iter)
output = model_fit.forecast()
yhat = output[0]
predictions.append(yhat)
obs = test[t] # the real observation (the expected value)
history.append(obs)

您还可以通过在一个步骤中预测多个值来避免为每个新观察重新拟合完整模型。我一次性预测所有值的代码(使用安全网模型可能无法预测您需要的所有点):

    iter = 0
while iter < len(test):
model = ARIMA(history, order=(ar, i, ma))
model_fit = model.fit(disp=0, solver=solver)
remaining_steps = len(test)-iter
yhats, _, _ = model_fit.forecast(steps=remaining_steps)
len_new = len(yhats) # length of new predictions
predictions = numpy.concatenate([predictions, yhats])
history = numpy.concatenate([history, test[iter:iter+len_new]])
iter += len_new

这是关于如何在 R 中完成的相关答案:https://stats.stackexchange.com/a/34191/149565

关于python - 在 Python 中更新 ARIMA 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com