最近做了一些时间序列的预测工作,走了不少弯路。发现网上关于时间序列的内容很多,实现代码的关键部分却都是错的。错的模型怎么让人看不出,就是用训练数据去做预测和画图展示,那肯定是误差小的。
我不说假话,也不放出被公开抄袭太多的东西,当然我的代码也是抄袭的,但绝对是比较少在公网暴露出的正确的代码(至少在我项目中预测的不错)。
经过比较,最简单的arima代码对于预测最近几个周期的趋势具有最高的准确率。在非季节性周期里,要优于SPSS(误差比较小,但落后于arima,见图),LSTM(误差比arima小,但对泛化性差)和Prophet(误差3位数)。
新做的是arima,预测组用的是SPSS,可见误差还是很大!
网上关于arima有非常详细的代码,说的非常清楚,但肯定是错误的。不相信,你可以拟合下面的历史数据,看看你可以预测出2019年5月的真实值吗(训练时要删除5月)?如果看网上的最全的一篇文章,他也错了一个关键的地方,导致不能预测成功。其余模型多数也不能预测近期趋势(spss,Prophet也不能,lstm可以5月误差只有7,但其他月的平均误差比arima大)。
co1,co2
16-Jan,14957
16-Feb,8533
16-Mar,14928
16-Apr,14364
16-May,15493
16-Jun,14430
16-Jul,16292
16-Aug,15340
16-Sep,14370
16-Oct,14478
16-Nov,12712
16-Dec,12550
17-Jan,9236
17-Feb,7618
17-Mar,11580
17-Apr,10935
17-May,11137
17-Jun,10218
17-Jul,10913
17-Aug,11665
17-Sep,10442
17-Oct,9936
17-Nov,10284
17-Dec,11149
18-Jan,9441
18-Feb,5533
18-Mar,8847
18-Apr,9798
18-May,10413
18-Jun,10099
18-Jul,10665
18-Aug,10430
18-Sep,9026
18-Oct,8456
18-Nov,8511
18-Dec,9655
19-Jan,8188
19-Feb,3951
19-Mar,7374
19-Apr,7725
19-May,7977
好了,给出百度网盘的arima正确代码:链接: 链接: 链接: https://pan.baidu.com/s/1eyyfgmxAcdXM2FAOBfCXrQ 提取码: ztqy