用python作时间序列预测一:初识概念

利用时间序列预测方法,咱们能够基于历史的状况来预测将来的状况。好比共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的状况来预测的。python

什么是时间序列?

  • 时间序列,是指同一个变量在连续且固定的时间间隔上的各个数据点的集合,好比每5分钟记录的收费口车流量,或者每一年记录的药物销量都是时间序列。

时间序列的类型

  • 根据时间间隔的不一样,时间序列能够是按年度(Annual)、季度、月度、周、小时、分钟、秒等频率采集的序列。

时间序列的成分

  • 趋势(Trend),好比长期上涨或长期下跌。
  • 季节性(Seasonal),好比羽绒服的销量通常会在冬季更高,或者某家烧烤店的生意通常会在每周五和周六晚上更好。
  • 周期性(Cyclic),好比你时不时搞个大促,那么销量在那段时间就会比较好。
  • 偏差。

什么是时间序列预测?

  • 就是用同一个变量的历史值预测将来值,或者除了历史值之外,还加入一些预测因子(又称外生变量)来预测将来值。前者称为单变量时间序列预测,后者称为多变量时间序列预测。
  • 好比,咱们要预测某海滩下个月的的游客数量,除了用历史游客数量作预测外,还能够加入温度这个因子。那么只用历史游客数量作预测就是单变量时间预测,加入温度这个因子就是多变量时间预测,固然还能够加入其它合理的预测因子,好比该海滩的每个月广告支出等。

一些简单的预测方法

均值法

全部将来的预测值等于历史数据的平均值。网络

朴素法

简单的将最后一次观测值做为将来的预测值。学习

季节性朴素法

相比朴素法,就是考虑了季节性,也就是说将同期的最后一次观测值做为本期的预测值,好比预测本周的数值,那么就将上周的周一观测值做为本周的周一预测值,上周的周二观测值做为本周的周二预测值,以此类推。blog

漂移法(drift )

在起始观测值和最后一次观测值之间画一条链接线,延伸到预测时间点,做为预测值,公式以下:

下面的2副图展现了上面四种方法的预测效果:

深度学习

经常使用的时间序列预测法

  • Exponential smoothing 指数平滑
    简单说就是用过去的观测值的加权平均值来做为预测值,权重随着与当前时刻的距离变远而呈指数衰减。
  • ARIMA
    简单说就是用变量的自回归(AR)与历史预测偏差的自回归(MA)构成的时间序列预测模型。
  • 基于深度学习的方法
    简单说就是利用神经网络强大的学习能力,从时间序列历史数据中提取各类可能的特征,从而对将来进行预测。这部分的模型比较多,好比LSTM,Seq2seq等。

注意,上述的方法并不能说谁必定比谁好,不一样的预测场景下每一个方法都有可能作出更好的预测,因此一般须要相互比较,以便作出更合理的预测。变量

本篇介绍了时间序列的相关概念,下一篇将介绍时间序列的通常数据格式和基于python的可视化方法。可视化

ok,本篇就这么多内容啦~,感谢阅读O(∩_∩)O。cli

相关文章
相关标签/搜索