ARMA模型建模的基本条件是要求待预测的数列满足平稳的条件,即个体值要围绕序列均值上下波动,不能有明显的上升或下降趋势,如果出现上升或下降趋势,需要对原始序列进行差分平稳化处理。
数据平稳性与差分
平稳性就是要求经由样本时间序列所得到的拟合曲线,在未来的一段期间内仍然能顺着现有的形态"惯性"地延续下去。
平稳性要求序列的均值和方差不随时间发生明显变化。
严平稳:表示随机变量的分布不随时间的改变而改变,比如:白噪声(正态),无论怎么取值,期望都是0,方差都是1。
弱平稳:期望与相关系数(依赖性)不变,未来某时刻的 t t t的值 X t X_{t} Xt依赖于过去的信息。
一阶差分法:时间序列在
t
t
t与
t
−
1
t-1
t−1时刻的差值。
二阶差分则是一阶差分的差分。
AR模型,MA模型,ARMA模型,ARIMA模型
首先,了解自回归模型AR;
AR描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测,自回归模型必须满足平稳性要求, p p p阶自回归模型的公式定义为: y t = μ + ∑ i = 1 p γ i y t − i + e t y_{t}=\mu+\sum_{i=1}^{p}\gamma_{i}y_{t-i}+e_{t} yt=μ+i=1∑pγiyt−i+et其中, y t y_{t} yt是当前值, μ \mu μ是常数项, p p p是阶数, γ i \gamma_{i} γi是自相关系数, e t e_{t} et是误差。
自回归模型通常要求数据具有自相关性,如果自相关性太小,则不适合采用。
然后了解移动平均模型MA;
移动平均模型关注的是自回归模型中的误差项的累加,移动平均可以消除预测中的随机波动, q q q阶的公式定义为: y t = μ + e t + ∑ i = 1 q θ i e t − i y_{t}=\mu+e_{t}+\sum_{i=1}^{q}\theta_{i}e_{t-i} yt=μ+et+i=1∑qθiet−i我们结合AR和MA得到模型ARMA,即自回归移动平均模型: y t = μ + ∑ i = 1 p γ i y t − i + e t + ∑ i = 1 q θ i e t − i y_{t}=\mu+\sum_{i=1}^{p}\gamma_{i}y_{t-i}+e_{t}+\sum_{i=1}^{q}\theta_{i}e_{t-i} yt=μ+i=1∑pγiyt−i+et+i=1∑qθiet−iARIMA模型则是在ARMA的基础上增加了数据的差分处理,全称ARIMA(p,d,q),即差分自回归移动平均模型,p为自回归项数,d为时间序列成为平稳序列所需的差分次数,q为移动平均项数。
ARIMA的原理是将非平稳时间序列差分转化为平稳时间序列后,将因变量对输出的滞后值与误差的滞后值进行回归建模。
相关性函数
首先,我们了解自相关函数ACF;
ACF为有序的随机变量序列与其自身相比较,自相关函数反映了同一序列在不同时序的取值之间的相关性,公式为:
A
C
F
(
k
)
=
ρ
k
=
C
o
v
(
y
t
,
y
t
−
k
)
V
a
r
(
y
t
)
ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}
ACF(k)=ρk=Var(yt)Cov(yt,yt−k)其中,
ρ
k
\rho_{k}
ρk的取值在
[
−
1
,
1
]
[-1,1]
[−1,1],-1和1分别代表负相关和正相关,注意,正负相关都是相关,越接近0才代表越不相关。
虚线表示置信区间,举例,95%的置信区间表示,假设当前有100个数据,至少有95个是符合我们定义的逻辑。横轴lag表示阶数
k
k
k。
偏自相关函数PACF:对于自相关系数,实际得到的并不是单纯的 y t y_{t} yt和 y t − k y_{t-k} yt−k之间的相关关系, y t y_{t} yt同时会受到中间 k − 1 k-1 k−1个随机变量 y t − 1 , . . . , y t − k + 1 y_{t-1},...,y_{t-k+1} yt−1,...,yt−k+1的影响,这 k − 1 k-1 k−1个随机变量又都和 y t − k y_{t-k} yt−k具有相关关系,因此PACF是严格的 y t y_{t} yt与 y t − k y_{t-k} yt−k之间的相关性度量。
参数p,d,q的确定与模型检验
d为差分的次数,d通常不超过2,p和q参数由下表的规则确定:
模型 | ACF | PACF |
---|---|---|
A R ( p ) AR(p) AR(p) | - | p阶后截尾 |
M A ( q ) MA(q) MA(q) | q阶后截尾 | - |
其中,截尾表示落在置信区间内的阶数(通常是95%置信区间)。
比如:
比如上图,应该选择p=2,q=10。
在确定p,d,q三个参数后,我们对 μ , γ , θ \mu,\gamma,\theta μ,γ,θ进行学习,学习的方式是灵活的,比如以MSE为损失进行梯度下降。
对于模型检验;
我们将模型得到的输出数据与真实值进行求差操作(计算残差),并进行白噪声检验,如果残差序列是白噪声序列,就说明时间序列中有用的信息已经被提取完毕了,剩下的全是随机扰动,是无法预测和使用的,残差序列如果通过了白噪声检验,则建模就可以终止了,因为没有信息可以继续提取。如果残差不是白噪声,就说明残差中还有有用的信息,需要修改模型或者进一步提取。