statsmodels ARIMA predict 给我差分信号的预测,而不是实际信号的预测。我犯了什么错误?

statsmodels ARIMA predict is giving me predictions of the differenced signal instead of predictions of the actual signal. What mistake am I making?

信号看起来是这样

original signal

使用plot(output.diff())得到的差分信号看起来是这样的

differenced signal

接下来通过分析ACF和PACF得到ARIMA模型的参数

模型按以下方式拟合

model = ARIMA(output.values, order=(2,1,1))

model_fit = model.fit(disp=0)

我用的时候

model_fit.plot_predict(动态=假)

plt.show()

完美!

result using plot_predict

但是当我使用 plt.plot(model_fit.predict(dynamic=False))

它给出了差分信号的预测

result using predict of arima

如果您使用的是模型sm.tsa.ARIMA,那么您可以使用以下:

plt.plot(model_fit.predict(dynamic=False, typ='levels'))

但是,此模型已弃用,并将在未来的 Statsmodels 版本中删除。为了与未来版本兼容,您可以使用新的 ARIMA 模型:

from statsmodels.tsa.arima.model import ARIMA

import statsmodels.api as sm

model = sm.tsa.arima.ARIMA(output.values, order=(2,1,1))

这个较新的模型将自动生成实际信号的预报和预测,因此在这种情况下您不需要使用 typ='levels'