具体案例可参见
[1] ARIMA建模实例
[2] Python时间序列数据分析–以示例说明
[3] 时间序列模式(ARIMA)—Python实现
[4] BOX-JENKINS预测法
p p p阶自回归模型 A R ( P ) AR(P) AR(P): y t = c + ∅ 1 y t − 1 + ∅ 2 y t − 2 + ⋯ + ∅ p y t − p + e t y_{t}=c+\emptyset_{1} y_{t-1}+\emptyset_{2} y_{t-2}+\cdots+\emptyset_{p} y_{t-p}+e_{t} yt=c+∅1yt−1+∅2yt−2+⋯+∅pyt−p+et
其中, y t y_t yt为时间序列第 t t t时刻的观察值,即为因变量; y t − 1 , y t − 2 , ⋯   , y t − p y_{t-1},y_{t-2},\cdots,y_{t-p} yt−1,yt−2,⋯,yt−p为时序 y t y_t yt的滞后序列,这里作为自变量; e t e_t et是独立同分布的随机变量/误差序列(白噪声序列); c c c是常数,表示序列数据没有0均值化; ∅ 1 , ∅ 2 , ⋯   , ∅ p \emptyset_{1},\emptyset_{2},\cdots,\emptyset_{p} ∅1,∅2,⋯,∅p为待估的自回归参数。
建立随机变量与之前序列值的线性回归模型。
q q q阶移动平均模型 M A ( q ) MA(q) MA(q): y t = μ + e t − θ 1 e t − 1 − θ 2 e t − 2 − ⋯ − θ q e t − q y_{t}=\mu+e_{t}-\theta_{1} e_{t-1}-\theta_{2} e_{t-2}-\cdots-\theta_{q} e_{t-q} yt=μ+et−θ1et−1−θ2et−2−⋯−θqet−q
其中, μ \mu μ为时间序列的平均数,但当{ y t y_{t} yt}序列在0上下变动时,显然 μ = 0 \mu=0 μ=0,可删除此项; e t , e t − 1 , e t − 2 , ⋯   , e t − q e_{t},e_{t-1},e_{t-2},\cdots,e_{t-q} et,et−1,et−2,⋯,et−q为模型在第 t t t时刻,第 t − 1 t-1 t−1时刻,…,第 t − q t-q t−q时刻的误差; θ 1 , θ 2 , ⋯   , θ q \theta_{1}, \theta_{2}, \cdots, \theta_{q} θ1,θ2,⋯,θq为待估的移动平均参数。
随机变量取值与以前各时刻序列值无关,建立随机变量与前 q q q时刻的随机扰动的线性回归模型。
模型的形式为: y t = c + ϕ 1 y t − 1 + ϕ 2 y t − 2 + ⋯ + ϕ p y t − p + e t − θ 1 e t − 1 − θ 2 e t − 2 − ⋯ − θ q e t − q y_{t}=c+\phi_{1} y_{t-1}+\phi_{2} y_{t-2}+\cdots+\phi_{p} y_{t-p}+e_{t}-\theta_{1} e_{t-1}-\theta_{2} e_{t-2}-\cdots-\theta_{q} e_{t-q} yt=c+ϕ1yt−1+ϕ2yt−2+⋯+ϕpyt−p+et−θ1et−1−θ2et−2−⋯−θqet−q
显然, A R M A ( p , q ) ARMA(p,q) ARMA(p,q)模型为自回归模型和移动平均模型的混合模型。当 q = 0 q=0 q=0时,退化为自回归模型 A R ( p ) AR(p) AR(p);当 p = 0 p=0 p=0时,退化为移动平均模型 M A ( q ) MA(q) MA(q)。
这里的 d d d是对原时序进行逐期差分的阶数,差分的目的时为了让某些非平稳序列变换成平稳的,通常来说 d d d的取值一般为0,1,2
对于非平稳序列,不能直接建立ARMA模型,只能经过平稳化处理,然后对新的平稳时序建立ARMA模型。这里的平稳化处理可以是差分处理,也可以是对数变换,也可以是两者的结合,先对数变换,再进行差分处理。
对于具有季节性的非平稳时序,也同样需要进行季节性差分,从而得到平稳时序。这里的 D D D即为季节性差分的阶数; P , Q P,Q P,Q分别是季节性自回归阶数和季节性移动平均阶数; S S S为季节周期的长度,如时序为月度数据,则 S = 12 S=12 S=12,时序为季度数据,则 S = 4 S=4 S=4
- p——代表预测模型中采用的时序数据本身的滞后数(lags) ,也叫做AR/Auto-Regressive项
- d——代表时序数据需要进行几阶差分化,才是稳定的,也叫Integrated项。
- q——代表预测模型中采用的预测误差的滞后数(lags),也叫做MA/Moving Average项
Y的预测值 = 常量c and/or 一个或多个最近时间的Y的加权和 and/or 一个或多个最近时间的预测误差。
对于纯随机序列,也称为白噪声序列,序列的各项之间没有任何的关系, 序列在进行完全无序的随机波动, 可以终止对该序列的分析(可通过Q统计量进行验证)。
对于平稳非白噪声序列, 它的均值和方差是常数。ARMA 模型是最常用的平稳序列拟合模型。
对于非平稳序列, 由于它的方差和均值不稳定, 处理方法一般是将其转化成平稳序列。 可以使用ARIMA 模型进行分析。
时序图检验:根据平稳时间序列的均值和方差都是常数的特性,平稳序列的时序图显示该序列值时钟在一个参数附近随机波动,而且波动的范围是有界的。如果有明显的趋势或者周期性, 那它通常不是平稳序列。
自相关图检验:平稳序列具有短期相关性, 这个性质表明对平稳序列而言, 通常 只有近期的序列值得影响比较明显, 间隔越远的过去值对现在的值得影响越小。 而非平稳序列的自相关系数衰减的速度比较慢。
单位根检验(ADF检验):单位根检验是指检验序列中是否存在单位根, 如果存在单位根, 那就是非平稳时间序列。 目前最常用的方法就是单位根检验。
通常在时间序列分析中,采用自相关函数(ACF)、偏自相关函数(PACF) 来判别ARMA(p,q)模型的参数。
自相关函数(ACF)描述时间序列观测值与其过去的观测值之间的线性相关性。
偏自相关函数(PACF)描述在给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性。
平稳随机时间序列模型 | 自相关系数 | 偏相关系数 |
---|---|---|
AR( p) | 拖尾 | p阶截尾 |
MA(q) | q阶截尾 | 拖尾 |
ARMA(p,q) | 拖尾 | 拖尾 |
这里的拖尾是指以指数率单调或振荡衰减,截尾是指从某个开始非常小(不显著非零)。在平稳时间序列中,应用自相关函数和偏自相关函数在初步判断ARMA模型的阶数p和q的基础上,然后通过最小信息准则AIC、BIC进行定阶。ARMA模型中p和q的的最佳估计可以通过AIC或者BIC准则给出,AIC比较适合在被观察样本数据较少的情况下使用。
模型选择AIC和BIC:为了选择更简单的模型
AIC(Akaike Informaton Criterion):赤池信息准则
A I C = 2 k − 2 l n ( L ) AIC=2k - 2ln(L) AIC=2k−2ln(L)
BIC(Bayesian Information Criterion):贝叶斯信息准则
B I C = k l n ( n ) − 2 l n ( L ) BIC=kln(n)-2ln(L) BIC=kln(n)−2ln(L)
其中,k表示模型参数的个数,n表示样本的数量,L表示似然函数
使得k越小,L越大约好;AIC和BIC越小越好
时间序列分析模型的阶数在确定之后,然后应当对ARMA模型进行参数估计。比较常用是最小二乘法CLS进行参数估计,但是在所有的时间序列模型中,MA模型的参数估计相对比较困难,因此,尽量避免使用高阶的MA模型和ARMA模型。