/TimeSeries_Predict

客流量时间序列预测模型

Primary LanguagePython

时间序列分析

什么是时间序列?

时间序列定义为在一定时间间隔内按时间顺序测量的某个数量。 从最广泛的形式来说,时间序列分析是关于推断过去一系列数据点发生了什么,并试图预测未来会发生什么。

时间序列表现形式

1.随机性:由许多不确定因素引起的序列变化,当数据没有明显的模式特征的话,我们认为它是平稳的,Y值在一个范围内随着时间上下浮动

image

2.长期趋势变化:受某种基本因素的影响,数据依时间变化时表现为一种确定倾向,它按某种规则稳步地增长或下降。使用的分析方法有:移动平均法、指数平滑法、模型拟和法等

image

3.季节性周期变化:受季节更替等因素影响,序列依一固定周期规则性的变化,又称商业循环。采用的方法:季节指数

image

4.循环变化:周期不固定的波动变化

如何判断序列是否平稳?

判断序列平稳不平稳,一般采用两种方法:

1.观察法 观察法,通俗的说就是通过观察序列的趋势图与相关图是否随着时间的变化呈现出某种规律。 所谓的规律就是时间序列经常提到的周期性因素,现实中遇到得比较多的是线性周期成分,这类周期成分可以采用差分或者移动平均来解决,而对于非线性周期成分的处理相对比较复杂,需要采用某些分解的方法。

1.1.时序图

image

分析:什么样的图不平稳,先说下什么是平稳,平稳就是围绕着一个常数上下波动。

看看上面这个图,很明显的增长趋势,不平稳。(或具有年周期成分和长期趋势成分)

1.2.自相关系数和偏相关系数

自相关和偏相关图,Q统计量和伴随概率

image

分析:判断平稳与否的话,用自相关图和偏相关图就可以了。

平稳的序列的自相关图和偏相关图不是拖尾就是截尾。 截尾就是在某阶之后,系数都为 0 ,怎么理解呢,看上面偏相关的图,当阶数为 1 的时候,系数值还是很大, 0.914. 二阶长的时候突然就变成了 0.050. 后面的值都很小,认为是趋于 0 ,这种状况就是截尾。 再就是拖尾,拖尾就是有一个衰减的趋势,但是不都为 0 。

自相关图既不是拖尾也不是截尾。以上的图的自相关是一个三角对称的形式,这种趋势是单调趋势的典型图形。

2.ADF检验,也叫做单位根检验

ADF检验全称是 Augmented Dickey-Fuller test,顾名思义,ADF是 Dickey-Fuller检验的增广形式。DF检验只能应用于一阶情况,当序列存在高阶的滞后相关时,可以使用ADF检验,所以说ADF是对DF检验的扩展。

2.1.单位根(unit root) 在做ADF检验,也就是单位根检验时,需要先明白一个概念,也就是要检验的对象——单位根。

当一个自回归过程中: image ,如果滞后项系数b为1,就称为单位根。 当单位根存在时,自变量和因变量之间的关系具有欺骗性,因为残差序列的任何误差都不会随着样本量(即时期数)增大而衰减,也就是说模型中的残差的影响是永久的。 这种回归又称作伪回归。如果单位根存在,这个过程就是一个随机漫步(random walk)。

2.2.ADF检验的原理 ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。

所以,ADF检验的 H0 假设就是存在单位根,如果得到的显著性检验统计量小于三个置信度(10%,5%,1%),则对应有(90%,95,99%)的把握来拒绝原假设。

采用什么算法?

判断依据

如果自相关是拖尾,偏相关截尾,则用 AR 算法

如果自相关截尾,偏相关拖尾,则用 MA 算法

如果自相关和偏相关都是拖尾,则用 ARMA 算法, ARIMA 是 ARMA 算法的扩展版,用法类似 。

基本步骤

平稳序列

  • 获取时间序列
  • 时间序列绘图
  • 检验序列平稳性
  • 绘制ACF PACF
  • ADF检验
  • 模型预测
  • 预测值还原
  • 预测误差检验

非平稳序列

  • 1.获取时间序列
  • 2.时间序列绘图
  • 3.检验序列平稳性
  • 4.绘制ACF PACF
  • 5.ADF检验
  • 6.序列差分运算
  • 7.检验ACF PACF 值
  • 8.ADF检验(重复6-8步骤,做n阶差分,直至序列平稳)
  • 9.模型预测
  • 10.预测值还原
  • 11.预测误差检验