【发布时间】:2015-06-29 17:40:25
【问题描述】:
我已经编写了以下代码来使用统计模型的 ARIMA 预测数据,但我的结果与实际数据不匹配,并且在最初的几次预测后,预测值变得几乎恒定,在图上给出了一条直线水平线。
如果由于我使用了 d=2 而预测是二阶差分顺序,我如何才能获得同一模型的原始数据的预测。
arima_mod = sm.tsa.ARIMA(df, (1,2,0)).fit()
print(arima_mod.params)
print(arima_mod.summary())
predict_workshop = arima_mod.predict('2011-04-01', '2011-05-30',dynamic=True)
print(predict_workshop)
实际数据
2011-04-01 356.839
2011-04-02 363.524
2011-04-03 332.864
2011-04-04 336.228
2011-04-05 264.749
2011-04-06 321.212
2011-04-07 384.382
2011-04-08 273.250
2011-04-09 307.062
2011-04-10 326.247
2011-04-11 222.521
2011-04-12 135.326
2011-04-13 374.953
2011-04-14 329.583
2011-04-15 358.853
2011-04-16 343.169
2011-04-17 312.086
2011-04-18 339.302
2011-04-19 300.534
2011-04-20 367.166
2011-04-21 178.670
2011-04-22 320.823
2011-04-23 349.995
2011-04-24 323.120
2011-04-25 331.665
2011-04-26 352.993
2011-04-27 359.253
2011-04-28 308.281
2011-04-29 329.357
2011-04-30 301.873
预测值
2011-04-01 -50.693560
2011-04-02 30.715553
2011-04-03 -19.081318
2011-04-04 11.378766
2011-04-05 -7.253263
2011-04-06 4.143701
2011-04-07 -2.827670
2011-04-08 1.436625
2011-04-09 -1.171787
2011-04-10 0.423744
2011-04-11 -0.552221
2011-04-12 0.044764
2011-04-13 -0.320404
2011-04-14 -0.097036
2011-04-15 -0.233667
2011-04-16 -0.150092
2011-04-17 -0.201214
2011-04-18 -0.169943
2011-04-19 -0.189071
2011-04-20 -0.177371
2011-04-21 -0.184528
2011-04-22 -0.180150
2011-04-23 -0.182828
2011-04-24 -0.181190
2011-04-25 -0.182192
2011-04-26 -0.181579
2011-04-27 -0.181954
2011-04-28 -0.181724
2011-04-29 -0.181865
2011-04-30 -0.181779
【问题讨论】:
-
查看
predict的文档字符串,看看是否不能回答您的问题。至于预测变得恒定,这在 ARMA 模型中是预期的。如果过程稳定,预测会收敛到长期预期值。 -
据我所知,使用 diff=2 进行预测的修复还没有在 statsmodels 的发布版本中,它在 master 中。 github.com/statsmodels/statsmodels/pull/2014
标签: python time-series statsmodels