参考:《时间序列分析—基于R王燕 编著》
一、时间序列分析
时间序列分法主要针对动态数据进行处理。该方法是以数理统计学方法和随机过程理论为基础,并对一序列随机数据所遵从的统计规律进行研究,以方便解决实际工作中存在的问题。
实质:时间序列分析就是对时间序列进行观察、研究,寻找它变化发展的规律,预测它将来的走势。
时间序列分析法的基本过程主要有:时间序列分析预处理、时间序列基本模型、ARIMA模型建模。
1.1 数据预处理
对于一组观察值序列,首先要对它的平稳性和纯随机性进行检验,根据检验的结果可以将序列分为不同的类型,对不同类型的序列采用不同的分析方法。
-
自协方差函数
γ ( t , s ) = E [ ( X t − μ t ) ( X s − μ s ) ] \gamma \left( t,s \right) =E\left[ \left( X_t-\mu _t \right) \left( X_s-\mu _s \right) \right] γ(t,s)=E[(Xt−μt)(Xs−μs)] -
自相关系数(ACF)
p ( t , s ) = γ ( t , s ) D X t ⋅ D X s p\left( t,s \right) =\frac{\gamma \left( t,s \right)}{\sqrt{DX_t\cdot DX_s}} p(t,s)=DXt⋅DXsγ(t,s)
自协方差函数和自相关系数度量的是同一事件在两个不同时期之间的相关程度
(1)平稳性检验
时间序列的分析方法的关键步骤就是对数据预先进行平稳性检验。通常我们首先使用时间序列图和自相关图粗略的观察数据是否平稳,对于不确定的序列再进一步构造检验统计量进行假设检验。
一个时间序列,如果均值没有系统的变化(无趋势)、方差没有系统变化,且严格消除了周期性变化,就称之是平稳的
-
严平稳:当序列所有的统计性质都不会随着时间的推移而发生变化时,该序列被认为平稳。
F t 1 , t 2 , ⋯ , t m ( x 1 , x 2 , ⋯ , x m ) = F t 1 + k , t 2 + k , ⋯ , t m + k ( x 1 , x 2 , ⋯ , x m ) F_{t_1,t_2,\cdots ,t_m}\left( x_1,x_2,\cdots ,x_m \right) =F_{t_{1+k},t_{2+k},\cdots ,t_{m+k}}\left( x_1,x_2,\cdots ,x_m \right) Ft1,t2,⋯,tm(x1,x2,⋯,xm)=Ft1+k,t2+k,⋯,tm+k(x1,x2,⋯,xm) -
宽平稳:只要求序列二阶平稳,对于高于二阶的矩没有任何要求
{ ( 1 ) E X t 2 < ∞ , ∀ t ∈ T ( 2 ) E X = μ , μ 为常数, ∀ t ∈ T ( 3 ) γ ( t , s ) = γ ( k , k + s − t ) , ∀ t , s , k 且 k + s − k ∈ T \left\{ \begin{array}{l} \left( 1 \right) EX_t^2<\infty \text{,}\forall t\in T\\ \\ \left( 2 \right) EX=\mu \text{,}\mu \text{为常数,}\forall t\in T\\ \\ \left( 3 \right) \gamma \left( t,s \right) =\gamma \left( k,k+s-t \right) \text{,}\forall t,s,k\ \text{且\ }k+s-k\in T\\ \end{array} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧(1)EXt2<∞,∀t∈T(2)EX=μ,μ为常数,∀t∈T(3)γ(t,s)=γ(k,k+s−t),∀t,s,k 且 k+s−k∈T
通常情况下,严平稳序列也满足宽平稳条件,而宽平稳序列不能反推严平稳成立。宽平稳一般推不出严平稳,但当序列服从多元正态分布时,二阶平稳可以推出严平稳。
平稳时间序列的统计性质
- 常数均值 E X t = μ , ∀ t ∈ T EX_t=\mu \text{,}\forall t\in T EXt=μ,∀t∈T
- 自协方差函数和自相关函数只依赖于时间的平移长度而与时间的起止点无关
{ γ ( t , s ) = γ ( k , k + s − t ) , ∀ t , s , k ∈ T γ ( k ) = γ ( t , t + k ) D X t = γ ( t , t ) = γ ( 0 ) p k = γ ( t , t + k ) D X t ⋅ D X t + k = γ ( k ) γ ( 0 ) \left\{ \begin{array}{l} \gamma \left( t,s \right) =\gamma \left( k,k+s-t \right) \text{,}\forall t,s,k\in T\\ \\ \gamma \left( k \right) =\gamma \left( t,t+k \right)\\ \\ DX_t=\gamma \left( t,t \right) =\gamma \left( 0 \right)\\ \\ p_k=\frac{\gamma \left( t,t+k \right)}{\sqrt{DX_t\cdot DX_{t+k}}}=\frac{\gamma \left( k \right)}{\gamma \left( 0 \right)}\\ \end{array} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧γ(t,s)=γ(k,k+s−t),∀t,s,k∈Tγ(k)=γ(t,t+k)DXt=γ(t,t)=γ(0)pk=DXt⋅DXt+kγ(t,t+k)=γ(0)γ(k)
自相关系数的性质
(1) 规范性
p
0
=
1
且
∣
p
k
∣
≤
1
,
∀
k
p_0=1\ \text{且\ }\left| p_k \right|\le 1\text{,}\forall k
p0=1 且 ∣pk∣≤1,∀k
(2)对称性
p
k
=
p
−
k
p_k=p_{-k}
pk=p−k
(3)非负定性
平稳性的检验(图检验方法)
- 时序图检验
根据平稳时间序列均值、方差为常数的性质,平稳序列的时序图应该显示出该序列始终在一个常数值附近随机波动,而且波动的范围有界、无明显趋势及周期特征
- 自相关图检验(ACF)
平稳序列通常具有短期相关性。该性质用自相关系数来描述就是随着延迟期数的增加,平稳序列的自相关系数会很快地衰减向零
该序列的自相关系数一直都比较小,始终控制在2倍的标准差范围以内,可以认为该序列自始至终都在零轴附近波动,这是随机性非常强的平稳时间序列通常具有的自相关图特征。
(2)纯随机性检验
拿到一个观察值序列之后,首先是判断它的平稳性,通过平稳性检验,序列可以分为平稳序列和非平稳序列两大类
对于非平稳序列,由于它不具有二阶矩平稳的性质,所以对它的统计分析要费一些周折,通常要通过进一步的检验、变换或处理,才能确定适当的拟合模型
对于平稳序列,则继续进行纯随机性检验
如果时间序列 { X t } \left\{ X_t \right\} {Xt} 满足如下性质:
- 任取 t ∈ T t\in T t∈T ,有 E X t = μ EX_t=\mu EXt=μ ;
- 任取 t , s ∈ T t,s\in T t,s∈T , 有
γ ( t , s ) = { σ 2 , t = s 0 , t ≠ s \gamma \left( t,s \right) =\left\{ \begin{array}{l} \begin{array}{c} \sigma ^2\ \text{,}t=s\\ \end{array}\\ \begin{array}{c} \\ 0\ \ \ \text{,}t\ne s\\ \end{array}\\ \end{array} \right. γ(t,s)=⎩⎨⎧σ2 ,t=s0 ,t=s
则称序列 { X t } \left\{ X_t \right\} {Xt} 为纯随机序列,也称为白噪声序列。即如果一个纯随机过程的期望和方差为常数,则称为白噪声过程,白噪声过程是平稳的随机过程。
白噪声序列的性质
- 纯随机性 γ ( k ) = 0 , ∀ k ≠ 0 \gamma \left( k \right) =0\ ,\ \forall k\ne 0 γ(k)=0 , ∀k=0,各序列值之间没有任何相关关系,即为“没有记忆”的序列
- 方差齐性 ,即序列中每个变量的方差相等, D X t = γ ( 0 ) = σ 2 DX_t=\gamma \left( 0 \right) =\sigma ^2 DXt=γ(0)=σ2,如果不满足方差齐性,则该序列具有异方差性质。
纯随机性检验也称为白噪声检验,是专门用来检验序列是否为纯随机序列的一种方法,如果一个序列是纯随机序列,那么它的序列值之间应该没有任何相关关系,即满足 γ ( k ) = 0 , ∀ k ≠ 0 \gamma \left( k \right) =0\ ,\ \forall k\ne 0 γ(k)=0 , ∀k=0,这是一种理论上才会出现的理想状况.实际上,由于观察值序列的有限性,导致纯随机序列的样本自相关系数不会绝对为零。
样本自相关图显示这个纯随机序列没有一个样本自相关系数严格等于零。但这些自相关系数确实都非常小,都在零值附近以一个很小的幅度随机波动,从统计意义上来判断序列的纯随机性质
如果一个时间序列是纯随机的,得到一个观察期数为n的观察序列,那么该序列的延迟非零期的样本自相关系数将近似服从均值为零、方差为序列观察期数倒数的正态分布。
(3)单位根检验
在实际生活中,当我们直接拿出一组时间序列数据时,常常是不清楚时间序列的产生过程的,如果我们需要建立相对准确的模型,第一要解决的就是序列是否平稳的问题,其后才能继续往下建模。
所谓单位根检验就是判断序列中是否存在单位根,称之为DF检验方法。DF检验常用于检验 AR(1) 过程的平稳性。随着研究的进一步推进,为了更好的得到检验效果,学者们进一步改进修正了DF检验,得到ADF检验。
这里主要介绍DF和ADF检验单位根检验的方法原理。
1) DF检验
以一阶自回归序列为例:
一个序列经过预处理被识别为平稳非白噪声序列,那就说明该序列是一个蕴涵着相关信息的平稳序列。
二、适用于平稳序列的三种基本模型
平稳时间序列模型主要包含三种类型:AR、MA和ARMA,它们有各自的适用范围和条件。
2.1 自回归模型—AR模型
p阶自回归模型(
A
R
(
p
)
AR\left( p \right)
AR(p))结构如下:
{
x
t
=
ϕ
0
+
ϕ
1
x
t
−
1
+
ϕ
2
x
t
−
2
+
⋯
+
ϕ
p
x
t
−
p
+
ε
t
ϕ
p
≠
0
E
(
ε
t
)
=
0
,
V
a
r
(
ε
t
)
=
σ
ε
2
,
E
(
ε
t
ε
s
)
=
0
,
s
≠
t
E
(
x
s
ε
t
)
=
0
,
∀
s
<
t
\left\{ \begin{array}{l} x_t=\phi _0+\phi _1x_{t-1}+\phi _2x_{t-2}+\cdots +\phi _px_{t-p}+\varepsilon _t\\ \\ \phi _p\ne 0\\ \\ E\left( \varepsilon _t \right) =0\text{,}Var\left( \varepsilon _t \right) =\sigma _{\varepsilon}^2\text{,}E\left( \varepsilon _t\varepsilon _s \right) =0\text{,}s\ne t\\ \\ E\left( x_s\varepsilon _t \right) =0\text{,}\forall s<t\\ \end{array} \right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧xt=ϕ0+ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+εtϕp=0E(εt)=0,Var(εt)=σε2,E(εtεs)=0,s=tE(xsεt)=0,∀s<t
ϕ 1 , ϕ 2 , ⋯ , ϕ p \phi _1,\phi _2,\cdots ,\phi _p ϕ1,ϕ2,⋯,ϕp为自回归系数,当 ϕ 0 = 0 \phi _0=0 ϕ0=0 时,自回归模型为中心化模型,中心化模型是最常见的。
x t x_t xt 的变化主要与时间序列的历史数据有关,与其它因素无关。因此模型含义为:用时间序列的历史数据的线性组合来表达当前预测值。
AR模型平稳性判别
判别原因
- AR模型是常用的平稳序列的拟合模型之一,但并非所有的AR模型都是平稳的
判别方法
- 单位根判别法
- 平稳域判别法
记 B k B^k Bk 为 k 步滞后算子,即 B k x t = x t − k B^kx_t=x_{t-k} Bkxt=xt−k ,则AR模型可以表示为
x t = ( ϕ 1 B + ϕ 2 B 2 + ⋯ + ϕ p B p ) x t + ε t x_t=\left( \phi _1B+\phi _2B^2+\cdots +\phi _pB^p \right) x_t+\varepsilon _t xt=(ϕ1B+ϕ2B2+⋯+ϕpBp)xt+εt
令
ϕ
(
B
)
=
1
−
ϕ
1
B
−
⋯
−
ϕ
p
B
p
\phi \left( B \right) =1-\phi _1B-\cdots -\phi _pB^p
ϕ(B)=1−ϕ1B−⋯−ϕpBp ,则模型可以表示为:
ϕ
(
B
)
x
t
=
ε
t
\phi \left( B \right) x_t=\varepsilon _t
ϕ(B)xt=εt
因此,AR模型的自回归系数多项式
ϕ
(
B
)
=
1
−
ϕ
1
B
−
⋯
−
ϕ
p
B
p
\phi \left( B \right) =1-\phi _1B-\cdots -\phi _pB^p
ϕ(B)=1−ϕ1B−⋯−ϕpBp 的根,即
ϕ
(
B
)
=
0
\phi \left( B \right) =0
ϕ(B)=0的根,都在单位圆外。
2.2 移动平均模型—MA(q)模型
q 阶自回归模型( M A ( q ) MA\left( q \right) MA(q))结构如下:
{ x t = μ + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − ⋯ − θ q ε t − q θ q ≠ 0 E ( ε t ) = 0 , V a r ( ε t ) = σ ε 2 , E ( ε t ε s ) = 0 , s ≠ t \left\{ \begin{array}{l} x_t=\mu +\varepsilon _t-\theta _1\varepsilon _{t-1}-\theta _2\varepsilon _{t-2}-\cdots -\theta _q\varepsilon _{t-q}\\ \\ \theta _q\ne 0\\ \\ E\left( \varepsilon _t \right) =0\text{,}Var\left( \varepsilon _t \right) =\sigma _{\varepsilon}^2\text{,}E\left( \varepsilon _t\varepsilon _s \right) =0\text{,}s\ne t\\ \end{array} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧xt=μ+εt−θ1εt−1−θ2εt−2−⋯−θqεt−qθq=0E(εt)=0,Var(εt)=σε2,E(εtεs)=0,s=t
其中, θ 1 , θ 2 , ⋯ , θ q \theta _1,\theta _2,\cdots ,\theta _q θ1,θ2,⋯,θq 为移动平均系数
模型含义:
用过去各个时期的随机干扰或预测误差的线性组合来表达当前预测值。
若用滞后算子
B
k
B^k
Bk 表示,令
θ
(
B
)
=
1
−
θ
1
B
−
θ
2
B
2
−
⋯
−
θ
q
B
p
\theta \left( B \right) =1-\theta _1B-\theta _2B^2-\cdots -\theta _qB^p
θ(B)=1−θ1B−θ2B2−⋯−θqBp 为 q 阶移动平均系数多项式。则模型可以写为
x
t
=
θ
(
B
)
ε
t
x_t=\theta \left( B \right) \varepsilon _t
xt=θ(B)εt任何条件下,MA(q)模型都是平稳的。MA(q)模型的可逆条件是模型的系数多项式的根都在单位圆外。
2.3 自回归移动平均模型 —ARMA(p,q) 模型
模型结构如下:
{
x
t
=
ϕ
0
+
ϕ
1
x
t
−
1
+
⋯
+
ϕ
p
x
t
−
p
+
ε
t
−
θ
1
ε
t
−
1
−
⋯
−
θ
q
ε
t
−
q
ϕ
p
≠
0
,
θ
q
≠
0
E
(
ε
t
)
=
0
,
V
a
r
(
ε
t
)
=
σ
ε
2
,
E
(
ε
t
ε
s
)
=
0
,
s
≠
t
E
(
x
s
ε
t
)
=
0
,
∀
s
<
t
\left\{ \begin{array}{l} x_t=\phi _0+\phi _1x_{t-1}+\cdots +\phi _px_{t-p}+\varepsilon _t-\theta _1\varepsilon _{t-1}-\cdots -\theta _q\varepsilon _{t-q}\\ \\ \phi _p\ne 0\text{,}\theta _q\ne 0\\ \\ E\left( \varepsilon _t \right) =0\text{,}Var\left( \varepsilon _t \right) =\sigma _{\varepsilon}^2\text{,}E\left( \varepsilon _t\varepsilon _s \right) =0\text{,}s\ne t\\ \\ E\left( x_s\varepsilon _t \right) =0\text{,}\forall s<t\\ \end{array} \right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧xt=ϕ0+ϕ1xt−1+⋯+ϕpxt−p+εt−θ1εt−1−⋯−θqεt−qϕp=0,θq=0E(εt)=0,Var(εt)=σε2,E(εtεs)=0,s=tE(xsεt)=0,∀s<t
ϕ 1 , ϕ 2 , ⋯ , ϕ p \phi _1,\phi _2,\cdots ,\phi _p ϕ1,ϕ2,⋯,ϕp为自回归系数, θ 1 , θ 2 , ⋯ , θ q \theta _1,\theta _2,\cdots ,\theta _q θ1,θ2,⋯,θq 为移动平均系数
对于ARMA(p,q) 模型,当 q=0 时,模型即为 A R ( p ) AR\left( p \right) AR(p)模型;当 p=0 时,模型即为 MA(q)模型
如果用滞后算子
B
k
B^k
Bk 表示,则 ARMA(p,q) 模型可以写为:
ϕ
(
B
)
=
θ
(
B
)
ε
t
\phi \left( B \right) =\theta \left( B \right) \varepsilon _t
ϕ(B)=θ(B)εt
ARMA(p,q) 模型的平稳条件是: ϕ ( B ) = 0 \phi \left( B \right) =0 ϕ(B)=0的根,都在单位圆外。
实际问题中,多数要用此模型。因此建模解模的主要工作是求解 p、q 和 ϕ , θ \phi \text{,}\theta ϕ,θ 的值,检验 ε t \varepsilon _t εt 和 x t x_t xt 的值。
实际应用中p、q一般不超过2。
2.4 平稳序列建模
平稳序列模型就包括上述的 AR、MA、ARMA模型
2.4.1 建模步骤
假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列建模.建模的基本步骤如下:
(1)求出该观察值序列的样本自相关系数(ACF)和样本偏自相关系数(PACF)的值
(2)根据样本自相关系数和偏自相关系数的性质,选择阶数适当的 ARMA(p,q) 模型进行拟合
(3)估计模型中未知参数的值
(4)检验模型的有效性.如果拟合模型未通过检验,回到步骤(2),重新选择模型拟合
(5)模型优化。如果拟合模型通过检验,仍然回到步骤(2),充分考虑各种可能,建立多个拟合模型,从所有通过检验的拟合模型中选择最优模型
(6)利用拟合模型,预测序列将来的走势
事实上,可以总结为四步:
- 步骤1:模型识别
- 步骤2:模型估计
- 步骤3:模型的诊断检验
- 步骤4:模型预测
(1)模型识别
- 自相关函数ACF
- 偏自相关函数PACF ——度量了消除中间滞后项影响后两滞后变量之间的相关关系
- 以及各自的相关图(即ACF、PACF相对于滞后长度描图)
求出该观察值序列的样本自相关系数(ACF)和样本偏自相关系数(PACF)的值,用统计软件绘制出 ACF 与 PACF 的图形,根据取值以及图形,结合下表初步得出模型形式。
通过图形判别方式:
-
如果样本自相关系数 ACF 或 偏自相关系数 PACF 在最初的 d 阶明显超过2倍标准差范围,而后几乎95%的自相关系数都落在2倍标准差的范围以内,而且由非零自相关系数衰减为小值波动的过程非常突然,这时,通常视为自相关系数截尾,截尾阶数为d.
-
如果有超过5%的样本自相关系数落入2倍标准差范围之外,或者由显著非零的自相关系数衰减为小值波动的过程比较缓慢或者非常连续,这时,通常视为自相关系数不截尾
书中例子
例1——AR
序列没有显著非平稳特征
上图,除了延迟1~3阶的自相关系数在2倍标准差范围之外,其他阶数的自相关系数都在2倍标准差范围内波动,根据自相关系数的这个特点可以判断该序列具有短期相关性,进一步确定序列平稳。
考察自相关系数衰减到零的过程,可以看到有明显的正弦波动轨迹,这说明自相关系数衰减到零不是一个突然的过程,而是一个连续渐变的过程,这是自相关系数拖尾的典型特征,我们可以把拖尾特征形象地描述为“坐着滑梯落水”。
考察偏自相关系数衰减到零的过程,除了1~2阶偏自相关系数在2倍标准差范围之外,其他阶数的偏自相关系数都在2倍标准差范围内,这是一个偏自相关系数2阶截尾的典型特征,可以把这种截尾特征形象地描述为“2阶之后高台跳水,溅起水花点点”.
综上,根据自相关系数拖尾,偏自相关系数2阶截尾属性
可以初步确定拟合模型为AR(2) 模型
实际中,一般AR过程的ACF函数呈单边递减或阻尼振荡,一般用 PACF 函数判别(从p阶开始的所有偏自相关系数近似为0)。
例2——MA
自相关图显示除了延迟1阶的自相关系数在2倍标准差范围之外,其他阶数的自相关系数都在2倍标准差范围内波动,根据自相关系数的这个特点可以判断该序列具有短期相关性,进一步确定序列平稳,同时,可以认为该序列自相关系数1阶截尾。
偏自相关系数显示出非截尾的性质。
综合该序列自相关系数和偏自相关系数的性质,为拟合模型定阶为MA(1)
实际中,一般MA过程的PACF函数呈单边递减或阻尼振荡,一般用ACF函数判别(从q 阶开始的所有自相关系数近似为0)。
例3——ARMA
自相关系数显示出不截尾的性质
偏自相关系数显示出不截尾的性质
尝试使用ARMA(1,1) 模型 拟合该序列
(2)模型估计
估计模型中未知参数的值,估计方法有:
- 矩估计
- 极大似然估计
- 非线性估计
- 最小二乘估计
(3)模型的诊断检验
检验:
- 模型的显著性检验
- 参数的显著性检验
优化:
- AIC准则
- BIC准则
(4)模型预测
- AR序列预测
- MA序列预测
- ARMA序列预测
三、非平稳序列
ARIMA(p,d,q) 模型
这里的d是对原时序进行逐期差分的阶数,差分的目的是为了让某些非平稳(具有一定趋势的)序列变换为平稳的,通常来说d的取值一般为0,1,2。
ARIMA建模流程图
数据平稳化处理
模型识别
参数估计
模型检验