【问题标题】:How to combine an output from a forecast thats in a loop如何组合循环中的预测输出
【发布时间】:2020-06-07 17:39:12
【问题描述】:

我正在尝试构建滚动多步 ARIMA 预测。但我不能将预测的输出与更新的输出结合起来。

from pandas import read_csv
from statsmodels.tsa.arima_model import ARIMA

data = read_csv('data_woc.csv', header=0, squeeze=True)
size = 4763
X = data.iloc[:,1:2]
train, test = X[0:size], X[size:len(X)]
history = train
predictions = list()
error = list()
original = list()

for t in range(len(test)):
    model = ARIMA(history, order=(2, 1, 0))
    model_fit = model.fit(disp=0)
    output = model_fit.forecast(steps=7)[0]
    predictions = predictions + output
    obs = test[t:t + 2]
    history = history + obs
print(model_fit.summary())

运行会报错

Traceback(最近一次调用最后一次): 文件“C:/Users/Usama/Documents/Thesis - Model/ARIMA2_7.py”,第 45 行,在 预测 = 预测 + 输出 ValueError: 操作数不能与形状 (0,) (7,) 一起广播

【问题讨论】:

  • 请将此减少并增强为预期的MRE。显示中间结果与预期结果的偏差。最紧迫的是,错误信息中引用的数据对象的类型和值是什么?由于您未能向我们提供复制代码,我们甚至无法为您完成这部分工作。
  • @Prune 我已经尝试创建 MRE,希望它现在有所帮助
  • 好多了。但是,您还没有完成 MRE。打印出有问题的数据值。你期望他们是什么?
  • @Prune,对不起,我没听懂你。我试图将这个模型的预测组合成一个数组。这样我就可以绘制循环结束后组合的所有预测。
  • 查看debugging help 这个可爱的参考。特别是,当错误消息告诉您某些值导致运行时错误时,我们希望您打印这些值并解释您的预期。

标签: python numpy arima multi-step


【解决方案1】:

预测输出的形状不同。为了执行任何算术运算,请使用 python 广播或纠正两个参数的形状。

【讨论】:

  • 我得到两个数字数组,我想在每次迭代后基本上将它们组合起来。
猜你喜欢
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 2016-05-11
  • 2014-12-24
  • 2020-09-02
  • 2019-02-10
  • 1970-01-01
相关资源
最近更新 更多