1. 时间序列探索性分析
时间序列的探索性分析用于理解时间序列数据,便于后续的建模与评估。
1.1 数据统计性描述
同其他数据的分析一样,我们需要数据的统计性描述。比如我们需要知道数据的单位,数据的统计特征如最大值,最小值,四分位数等。
1.2 数据预处理
同其他数据的分析一样,我们需要对数据的缺失值进行预处理,如果缺失值位于时间序列的开头或尾部,通常做法是直接删除;如果缺失值位于时间序列的中间,通常做法是进行替换插值,可以选择序列平均值,临近点的平均值,临近点的中位数,线性插值和邻近点的回归预测值等。
1.3 时序图
我们收集到时间序列数据后,通常是通过画图的方式展示数据的直观特征。对于时间序列数据,最常用的图就是时间序列图。表示方式:
t
t
t为横坐标,
X
t
X_t
Xt为纵坐标,将观察值
(
t
,
X
t
)
,
t
=
1
,
2
,
n
\left(t,X_t\right),t=1,2,n
(t,Xt),t=1,2,n列在平面上,按时间序列绘成折线图:
接着我们可以从时间序列图中观察数据的长期趋势、季节变动等变化影响因素。
举一个例子方便理解:
原始数据:
长期趋势:
季节变动:
不规则变动(残差):
1.4 平稳性分析
在使用很多时间序列模型的时候,如 ARMA、ARIMA,都会要求时间序列是平稳的,所以一般在研究一段时间序列的时候,第一步都需要进行平稳性检验,除了用肉眼检测的方法,另外比较常用的严格的统计检验方法就是ADF检验,也叫做单位根检验。ADF检验全称是 Augmented Dickey-Fuller test,顾名思义,ADF是 Dickey-Fuller检验的增广形式。DF检验只能应用于一阶情况,当序列存在高阶的滞后相关时,可以使用ADF检验,所以说ADF是对DF检验的扩展。
在做ADF检验,也就是单位根检验时,需要先明白一个概念,也就是要检验的对象——单位根。
当一个自回归过程中: X t = b X t − 1 + a + ϵ t X_t=bX_{t-1}+a+\epsilon_t Xt=bXt−1+a+ϵt,如果滞后项系数b为1,就称为单位根。当单位根存在时,自变量和因变量之间的关系具有欺骗性,因为残差序列的任何误差都不会随着样本量(即时期数)增大而衰减,也就是说模型中的残差的影响是永久的。这种回归又称作伪回归。如果单位根存在,这个过程就是一个随机漫步见附录(random walk)。
1.5 白噪音分析
平稳性的时间序列也有可能是白噪音,对白噪音进行建模分析是没有必要的。因此有必要在检验平稳性后,检验是否为白噪音。
如果 { x t } \{x_t\} {xt}是白噪音序列,那么:
ρ s = 1 , s = 00 , s ≠ 0 \rho_s=1,s=00,s≠0 ρs=1,s=00,s=0
一般用样本自相关系数(如下)进行估计:
r s = ρ s ^ = ∑ t = s + 1 T ( x t − x ˉ ) ( x t − s − x ˉ ) ∑ t = 1 T ( x t − x ˉ ) 2 r_s=\widehat{\rho_s}=\frac{\sum_{t=s+1}^{T}\left(x_t-\bar{x}\right)\left(x_{t-s}-\bar{x}\right)}{\sum_{t=1}^{T}\left(x_t-\bar{x}\right)^2} rs=ρs =∑t=1T(xt−xˉ)2∑t=s+1T(xt−xˉ)(xt−s−xˉ)
Ljung and Box 在1978年提出的Q检验能帮助我们检验残差是否为白噪声:
原假设为:
H
0
:
ρ
1
=
ρ
2
=
⋯
=
ρ
s
=
0
H_0:ρ_1=ρ_2=⋯=ρ_s=0
H0:ρ1=ρ2=⋯=ρs=0
即认为
{
x
t
}
\{x_t\}
{xt}是白噪音序列。
备择假设为:
H
1
:
ρ
i
(
i
=
1
,
2
,
…
,
s
)
至少有一个不为0
H_1:\rho_i\left(i=1,2,\ldots,s\right)\text{至少有一个不为0}
H1:ρi(i=1,2,…,s)至少有一个不为0
即认为
{
x
t
}
\{x_t\}
{xt}不是白噪音序列。
在
H
0
H_0
H0成立的条件下,存在统计量Q(如下)服从卡方分布,即:
Q
=
T
(
T
+
2
)
∑
k
=
1
s
r
k
2
T
−
K
∼
χ
s
−
n
2
Q=T\left(T+2\right)\sum_{k=1}^{s}\frac{r_k^2}{T-K}\sim\chi_{s-n}^2
Q=T(T+2)k=1∑sT−Krk2∼χs−n2
其中
T
T
T表示样本个数;
n
n
n表示模型中未知参数的个数;
s
s
s根据样本量的大小决定,一般可以取8、6、12等,在实际应用中由计算机决定。
具体应用中,计算机会帮我们计算出p值,一般认为p值小于0.05则拒绝原假设。
1.6 季节性分析
可视化时间序列是一种检查季节模式的简单方法。但是可视化太主观了,所以就需要更系统的方法来描述时间序列的而季节性。具体地,可以通过CH测试和OCSB测试检验季节性,它们的原假设都是时间序列不存在季节性变动。具体的数学形式不再列举,具体应用可以通过Python的pmdarima 库轻松实现它们。
1.7 异方差检验
下面介绍如何判断扰动项存在条件异方差。
方法一:画时序图,判断是否存在“波动性聚集”。
方法二:用ADL模型进行估计得到残差序列
{
ϵ
t
}
\{\epsilon_t\}
{ϵt},再估计回归(如下)中的系数是否显著。
ϵ
t
2
=
α
0
+
α
1
ϵ
t
−
1
2
+
…
+
α
p
ϵ
t
−
p
2
+
e
t
\epsilon_t^2=\alpha_0+\alpha_1\epsilon_{t-1}^2+\ldots+\alpha_p\epsilon_{t-p}^2+e_t
ϵt2=α0+α1ϵt−12+…+αpϵt−p2+et
方法三:用ADL模型进行估计得到残差序列 { ϵ t } \{\epsilon_t\} {ϵt},检验其平方的自相关性。
方法四:直接使用ARCH模型和GARCH模型,观察异方差方程中系数是否显著。
方法五:进行专门的异方差检验,如arch模型下的LM检验。具体原理不再介绍,在Python库中有库函数可以轻松使用。
2. 引用
统计基础知识-7.3时间序列的探索性分析 - 倔强的文章 - 知乎https://zhuanlan.zhihu.com/p/632153642
3. 附录
3.1 随机漫步
对于时间序列 { x t } \{x_t\} {xt},如果满足如下条件,该时间序列是一个随机漫步(也称随机游走):
x t = w t + w t − 1 + … + w 0 x_t=w_t+w_{t-1}+\ldots+w_0 xt=wt+wt−1+…+w0
其中,
w
t
w_t
wt是一个均值为0,方差为
σ
2
\sigma^2
σ2的白噪声。
所以随机游走是白噪声的一个累积。