一、arima原理
1.1自回归模型AR
自回归模型描述当前值与历史值之间的关系,用变量自身的历史事件数据对自身进行预测。自回归模型必须满足平稳性的要求。
1)自回归模型首先需要确定一个阶数p,表示用几期历史值来预测当前值。p阶自回归模型的公式定义为:
a)用自身数据进行预测
b)时序数据必须具有平稳性,均值为0
c)自回归只适用于预测与自身前期相关的现象
d)自相关系数呈复指数衰减-有拖尾性
e)偏自相关系数有截尾性
1.2移动平均模型MA
移动平均模型关注的是自回归模型中的误差项的累加,q阶自回归过程公式定义如下:
移动平均能有效地消除预测中的随机波动。
1)自相关系数截尾巴
2)偏自相关系数拖尾
1.3自回归移动平均模型ARMA
自回归模型AR和移动平均模型MA模型相结合,
模型 自相关系数 偏自相关系数
AR§ 拖尾 p阶截尾
MA(q) q阶截尾 拖尾
ARMA(p,q) 拖尾 拖尾
1.4差分自回归移动平均模型ARIMA
将自回归模型、移动平均模型和差分法结合。ARIMA(p,d,q),的就是差分的阶数。
二、建立ARIMA模型的过程
2.1数据平稳性处理和判断
平稳性就是要求经由样本时间序列所得到的拟合曲线在未来一段时间仍能沿着现有的形态惯性地延续下去。平稳性要求序列的均值和方差不发生明显的变化。
严平稳是一种条件比较苛刻的平稳性定义,它认为只有当序列所有的统计性质都不会随着时间的推移而发生变化时,该序列才能被认为平稳.
宽平稳是使用序列的特征统计量来定义的一种平稳性.它认为序列的统计性质主要由它的低阶矩决定,所以只要保证序列低阶矩平稳(二阶),就能保证序列的主要性质近似稳定。
2.1.1平稳性处理
a.对数变化
b.平滑法
c.差分
d.分解
差分原理:
a)data=
[1,12,23,34,45,56,67,78,89]
b)data_shift_1 = data.shift(1)
[NaN, 1,12,23,34,45,56,67,78]
c)data_result = data - data_shift_1
[NaN,11,11,11,11,11,11,11,11]
2.1.2平稳性检验
ADF是一种常用的单位根检验方法,他的原假设为序列具有单位根,即非平稳。对于一个平稳的时序数据,就需要在给定的置信水平上显著,拒绝原假设。
如果时序数据的pvalue显著小于0.05,则认为原时序平稳:
移动平均序列的ADF检验结果为: (-3.2829771685725424, 0.015656755989236697, 22, 1324, {‘1%’: -3.4352986582786715, ‘5%’: -2.8637254386150706, ‘10%’: -2.5679335359525743}, 15240.134057880518)
adf为-3.28,低于5%,10%,pvalue为0.015,接近0,则认为95%水平拒绝该假设,则数据平稳。
数据平稳性判断流程:
a)判断原数据是否平稳,如果不平稳,执行b);如果平稳执行d)
b)进行一阶差分,判断一阶后是否平稳,如果不平稳,执行c);如果平稳执行d)
c)进行二阶差分,判断二阶后是否平稳,如果不平稳,执行e),如果平稳执行d)
d)返回平稳后结果
e)返回数据不平稳的判断结果
2.2季节分解(不建议用sarima包自动分解)
时间序列包含4中变动要素:长期趋势 T、循环趋势C、季节趋势S、不规则变动I。
季节调整分解方式:
1)加法
2)乘法、伪加法、对数加法(要求不能有0)(快消品补数据处理的好,建议优化这一步)
2.2.1 长期趋势(生命周期可以在这个基础上也试一下)
1)中心化移动平均(存在补数或者对齐问题)
对
2)右端对齐
3)加权移动平均(高斯滤波)
4)指数平滑
缺点:
1)加权移动平均的权重计算耗。
2)移动平均不能应用到数据边缘的数据,但是边缘数据都很重要。
3)右端对齐移动平均,损失精度较大。
2.2.2 季节趋势
循环周期叠加
2.2.3 不规则变动(残差信息待优化)
去除,将来可以用来计算置信区间
2.2.4 长期趋势提取线性
2.3模型识别和定阶(数据规律和长度优化确定后,这里要重新选择)
使用拟合效果的信息准则法确定阶数,这里的信息准侧有AIC(赤池信息准则)和BIC(贝叶斯信息准则),它们的分析原理都是拟合残差最小的阶数p和q就是最合适的。
2.4模型预测
1、长期趋势-arima
2、季节趋势-周期叠加(如果以后采用乘法和伪乘法分解,FFT在可以提取即时周期)
3、线性趋势-线性回归延长
2.5模型合成
result = 长期趋势+季节趋势+线性趋势