1

http://www.statsmodels.org/stable/generated/statsmodels.tsa.arima_model.ARMAResults.predict.html#statsmodels.tsa.arima_model.ARMAResults.predict

statsmodels.tsa.arima_model.ARMAResults.predict用来确定 ARIMA 模型的预测值。当我使用训练数据中的起始索引调用该函数时,该函数返回正确的值数组。但是,如果我使用训练数据之外的起始索引,则返回的数组由于某种原因是完全不正确的。

原始代码,带有start=1000end=1481rARMAResult来自先前拟合的具有 481 个数据点的模型。

注意:这end-1是因为调用 predict 返回一个数组,其中包含 的索引处的预测end

p = r.predict(start, end-1)
print(end-start)
print(len(p))

从这段代码中,我得到以下输出:

481
1000

我通过使用此代码切片列表来解决问题。

p = r.predict(0, end)[start:end]
print(end-start)
print(len(p))

输出:

481
481

我的问题是,为什么会发生这种情况?我end可以超出原始数据集的长度并predict完美返回,但即使start索引是数据集长度之外的第一个数字,返回的数组也太长并且数字不同。我的猜测是它与数据如何需要在下一个值之前计算先前的值有关,但是这些值已经是ARMAResult对象的一部分,我完全被卡住了。

4

0 回答 0