【发布时间】: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