时间序列模式(ARIMA)---Python实现
Posted 蜘蛛侠不会飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列模式(ARIMA)---Python实现相关的知识,希望对你有一定的参考价值。
时间序列分析的主要目的是根据已有的历史数据对未来进行预测。如餐饮销售预测可以看做是基于时间序列的短期数据预测, 预测的对象时具体菜品的销售量。
1.时间序列算法:
常见的时间序列模型;
2.时序模型的预处理
1. 对于纯随机序列,也称为白噪声序列,序列的各项之间没有任何的关系, 序列在进行完全无序的随机波动, 可以终止对该序列的分析。
2. 对于平稳非白噪声序列, 它的均值和方差是常数。ARMA 模型是最常用的平稳序列拟合模型。
3. 对于非平稳序列, 由于它的方差和均值不稳定, 处理方法一般是将其转化成平稳序列。 可以使用ARIMA 模型进行分析。
对平稳性的检验:
1.时序图检验:根据平稳时间序列的均值和方差都是常数的特性,平稳序列的时序图显示该序列值时钟在一个参数附近随机波动,而且波动的范围是有界的。如果有明显的趋势或者周期性, 那它通常不是平稳序列。
2.自相关图检验:平稳序列具有短期相关性, 这个性质表明对平稳序列而言, 通常 只有近期的序列值得影响比较明显, 间隔越远的过去值对现在的值得影响越小。 而非平稳序列的自相关系数衰减的速度比较慢。
3.单位根检验:单位根检验是指检验序列中是否存在单位根, 如果存在单位根, 那就是非平稳时间序列。 目前最常用的方法就是单位根检验。
原假设是 非平稳序列过程, 备择假设是 平稳序列, 趋势平稳过程
3.时间序列分析:
?平稳性:
?平稳性要求经由样本时间序列所得到的拟合曲线,在未来一段时间内仍然沿着现有的形态‘惯性’地延续下去。
?平稳性要求序列的均值和方差不发生明显的变化。
?弱平稳:期望和相关系数(依赖性)不变,未来某个时刻t 的值,Xt 要依赖于它过去的信息。
?差分法:时间序列在 T 与 T-1 时刻的差值(使用差分使其满足平稳性),一般差分1,2 阶就可以了。
?AR(自回归模型):
?描述当前值与历史值之间的关系, 用变量自身的历史时间数据对自身进行预测。自回归模型必须满足平稳性的要求。
公式定义:
自回归模型的限制:
1.自回归模型是使用自身的数据进行预测的
2.必须具有平稳性
3.必须具有相关性,如果相关性小于 0.5 , 则不宜使用
4.自回归模型只适用于预测与自身前期相关的预测。
?MA(移动平均模型):
?移动平均模型关注的是自回归模型中的误差项的累加
?移动平均法能有效地消除预测中的随机波动。
?ARMA(自回归平均模型):
?自回归和移动平均的结合。
?ARIMA(p,d,q)差分自回归移动平均模型(Autoregressive Integrated Moving Average Model ,简称ARIMA)
?AR 是自回归, p 是自回归项, MA 是移动平均, q 为移动平均项, d 为时间序列称为平稳时 所做的差分次数。
?原理: 将非平稳时间序列转换成平稳时间序列, 然后将因变量仅对它的滞后值(p阶)以及随机误差项的现值和滞后值进行回顾所建立的模型。
?ARIMA 建模流程:
?1.将序列平稳化(差分法确定 d)
?2.p 和 q 阶数的确定(ACF 和 PACF 确定)
?3.建立模型 ARIMA (p , d , q )
使用ARIMA 模型对某餐厅的销售数据进行预测
#使用ARIMA 模型对非平稳时间序列进行建模操作
#差分运算具有强大的确定性的信息提取能力, 许多非平稳的序列差分后显示出平稳序列的性质, 这是称这个非平稳序列为差分平稳序列。
#对差分平稳序列可以还是要ARMA 模型进行拟合, ARIMA 模型的实质就是差分预算与 ARMA 模型的结合。
利用模型向前预测的时期越长, 预测的误差就会越大,这是时间预测的典型特点。
以上是关于时间序列模式(ARIMA)---Python实现的主要内容,如果未能解决你的问题,请参考以下文章
时间序列ARIMA模型详解:python实现店铺一周销售量预测
使用 Python 训练 arima 模型时如何解决 LinAlgError 和 ValueError