时间序列分析是一种统计技术, 专注于对随时间变化的数据序列进行深入研究, 旨在解决一系列问题, 包括预测未来趋势, 解释观察变化的驱动因素, 识别周期和持续时间以及监控异常情况.

传统的时间序列分析技术具有良好的数学解释性和严格的数学证明, 但在深度学习技术出现显著发展以后, 基于神经网络的万能逼近定理, 传统技术相较于神经网络仅具有可解释性的优势而在预测效果上毫无优势.

本文将聚焦于传统的时间序列分析技术, 在后续的文章中再讨论深度学习对于时间序列分析的应用.

第一章 时间序列分析的基本概念

在统计研究中, 按时间序列排列一组随机变量

$$
X_1, X_2, \cdots, X_t, \cdots
$$

来表示一个随机事件的时间序列, 记为$\{X_t, t \in T\}$或$\{X_t\}$. 并且用

$$
x_1, x_2, \cdots, x_t, \cdots
$$

表示该随机序列的$n$个有序观察值

第二章 时间序列的预处理

拿到一个观察值序列后, 首先需要对它的平稳性和纯随机性进行检验.

特征统计量

对于时间序列$\{X_t, t \in T\}$, 任取$t,s \in T$, 可有如下定义

自协方差函数:

$$
\gamma(t,s) = E[(X_t - \mu_t)(X_s - \mu_s)]
$$

自相关系数:

$$
\rho(t,s) = \frac{\gamma(t,s)}{\sqrt{DX_t \cdot DX_s}}
$$

平稳时间序列

严平稳: 序列的所有统计性质都不会随时间的推移而变换. 实践中一般不会出现严平稳随机序列.

宽平稳: 序列的所有统计性质主要由它的低阶矩决定.

平稳时间序列具有如下的统计性质

  1. 常数均值
  2. 自协方差函数与自相关系数只依赖时间平移长度而与时间的起止无关

纯随机检验

如果一个事件序列的纯随机的, 得到一个观察期数为n的观察序列, 那么这个序列的延迟非零期的样本自相关系数将近似服从均值为零, 方差为序列观察期数的倒数的正态分布, 即

$$
\hat{\rho_k} \sim N(0, \frac{1}{n}), \forall k \ne 0
$$

基于上述原理, 采用假设检验的方法即可判断一个序列是否为纯随机序列

提出原假设: 延迟期数小于或等于m期的序列值之间相互独立, 即

$$
H_0: \rho_1 = \rho_2 = \cdots = \rho_m = 0
$$

为了检验上述假设, 构造Q统计量

$$
Q = n \sum_{k=1}^m \hat{\rho_k}^2
$$

根据正态分布与卡方分布的关系, 可知Q统计量近近似服从自由度为$m$的卡方分布, 因此当该统计量的$P$值小于$\alpha$时, 可以以$1-\alpha$的置信水平拒绝原假设, 认为该序列并非白噪声序列.


对于小样本场景, 可使用LB统计量替换Q统计量, 即

$$
LB = n(n+2) \sum_{k=1}^m \frac{\hat{\rho_k}^2}{n-k}
$$

通常将LB统计量和Q统计量均统称为Q统计量

第三章 平稳时间序列分析

差分运算

相距1期的两个序列值之间的减法运算称为1阶差分运算, 记为

$$
\nabla x_t = x_t - x_{t-1}
$$

对1阶差分后的序列在进行一次1阶差分运算, 称为2阶差分, 记为

$$
\nabla^2 x_t = \nabla x_t - \nabla x_{t-1}
$$

依次类推, 对$p-1$阶差分后序列在进行一次差分运算称为$p$阶差分.


相距$k$期的两个序列值之间的减法运算称为$k$步差分运算, 记为

$$
\nabla_k x_t = x_t - x_{t-k}
$$

延迟算子

延迟算子是一个操作, 将该操作作用于一个事件序列的值可以得到该时刻前一个时刻的值, 例如

$$
x_{t-1} = Bx_t
$$

$$
x_{t-2} = B^2x_t
$$

基于以上定义, 易得

$$
\nabla x_t = x_t - x_{t-1} = (1- B)x_t
$$

$$
\nabla^2 x_t = \nabla x_t - \nabla x_{t-1} = (1- B)^2 x_t
$$

AR模型

AR模型通常指$p$阶自回归模型, 记为$AR(p)$, 即

$$
x_t = \phi_0 + \phi_1x_{t-1}+ \cdots + \phi_p x_{t-p} + \epsilon_t
$$

并且满足:

  1. $\phi_p \ne 0$, 即保证为$p$阶
  2. $\epsilon_t$为零均值白噪声序列
  3. $E(x_s \epsilon_t)=0, \forall s < t$, 即当期的随机干扰与过去的序列值无关.

如果$\phi_0 = 0$, 则称该模型为中心化$AR(p)$模型. 任意的非中心化序列可通过一定的变换转换为中心化序列.

MA模型

MA模型通常指$q$阶移动平均(moving average)模型, 记为$MA(q)$, 即

$$
x_t = \mu + \epsilon_t - \theta_1 \epsilon_t-1 - \cdots -\theta_q \epsilon_{t-q}
$$

并且满足:

  1. $\theta_q \ne 0$, 即保证为$q$阶
  2. $\epsilon_t$为零均值白噪声序列

ARMA模型

将AR模型与MA模型组合起来, 即可得到ARMA模型, 通常记为$ARMA(p,q)$, 即

$$
x_t = \phi_0 + \phi_1x_{t-1}+ \cdots + \phi_p x_{t-p} + \epsilon_t - \theta_1 \epsilon_t-1 - \cdots -\theta_q \epsilon_{t-q}
$$

就数学表达上来说, 感觉参数量太小, 对于较为复杂的实际问题, 可能难以获得较好的预测效果. 或者说当且仅当需要预测的序列确实按照上述规律生成, 才可能具有较好的预测效果.

参考资料

关于时间序列的理论分析证明, 可以阅读下面的讲义

关于时间序列的Python版操作, 可以阅读下面的指南

最后更新: 2024年10月19日 22:36

版权声明:本文为原创文章,转载请注明出处

原始链接: https://lizec.top/2024/06/22/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97/