Foundations of Time Series Analysis
时间序列分析的基础
时间序列分析构成了理解随时间演变的现象的数学和概念框架。与传统的横截面数据分析不同,时间序列数据具有内在的顺序结构,其中观察结果不是独立的,而是通过时间索引相互关联的。这种依赖性——无论是短期的还是长期的——既是我们分析的主要挑战,也是提取有意义的模式和进行准确预测的关键信息来源。从股票价格波动到季节性销售趋势,从气候记录到生物信号,时间序列无处不在,掌握其分析方法对于任何希望从时间标记数据中提取见解的专业人士来说都是必不可少的技能。
时间序列分析的核心问题可以概括为三个方面:首先,我们希望描述数据的基本特征——是否存在趋势?季节性模式是否重复出现?波动性是否随时间变化?其次,我们试图理解产生这些观察数据的潜在机制,这涉及构建能够捕捉时间依赖结构的数学模型;第三,我们利用这些理解和模型来进行预测,将关于过去和现在的知识转化为关于未来的知情推断。本章将奠定这些分析所需的数学基础,同时引入必要的概念词汇,使读者能够自信地处理实际时间序列数据。
时间序列的组成成分
任何时间序列都可以被视为由几个可分离的成分组成,每个成分代表了数据变化的特定来源。经典时间序列分解的核心思想是将观察到的序列 $Y_t$ 表示为这些成分的函数,这个分解既便于解释,也为建模提供了概念框架。
趋势分量
趋势(Trend)代表了时间序列的长期运动方向,是数据在较长时间跨度内呈现的系统性上升、下降或平稳模式。趋势反映了深层次的结构性变化,这些变化通常由人口增长、技术进步、经济周期或气候变化等基本因素驱动。在数学上,趋势分量 $T_t$ 是时间的平滑函数,它捕捉了序列的"走向"而忽略短期波动。
识别趋势的方法多种多样,从简单的移动平均到复杂的平滑技术。移动平均是最直观的方法之一,通过计算特定窗口内观察值的平均值来平滑短期波动。对于窗口长度为 $2k+1$ 的中心移动平均,趋势估计为:
$$\hat{T}_t = \frac{1}{2k+1}\sum_{j=-k}^{k} Y_{t+j}$$
这种方法的有效性取决于窗口大小的选择:较大的窗口产生更平滑的趋势估计,但可能滞后于实际趋势的变化;较小的窗口对趋势变化反应更灵敏,但可能保留过多短期波动。趋势分量的存在与否对预测方法的选择有重要影响——具有明显趋势的序列通常需要使用趋势外推或趋势调整方法。
季节性分量
季节性(Seasonality)是指在固定时间间隔内重复出现的规律性波动模式。季节性通常与日历效应相关——月度数据中的季度变化、周数据中的星期模式、日数据中的日内周期——但也可能源于物理或生物因素,如温度的季节变化或某些物种的繁殖周期。季节性分量 $S_t$ 满足周期性条件:$S_{t+s} = S_t$,其中 $s$ 是季节周期长度。
对于月度数据,季节周期 $s = 12$;对于季度数据,$s = 4$;对于周数据,$s = 7$。季节性分量的识别和估计是时间序列分解的重要组成部分。在加法分解中,季节性分量是直接加到其他分量上的;在乘法分解中,季节性分量通过乘积关系与趋势和其他分量相互作用:
$$Y_t = T_t + S_t + R_t \quad \text{(加法分解)}$$
$$Y_t = T_t \times S_t \times R_t \quad \text{(乘法分解)}$$
其中 $R_t$ 表示残差或随机分量。乘法分解在季节性波动幅度随趋势水平变化时尤为适用——例如,假期购物高峰对零售商销售额的影响通常与基础销售水平成比例,而非固定绝对值。
循环分量
循环分量(Cyclical Component)描述了时间序列中持续时间超过一年且不具有固定周期的波动模式,这与季节性形成鲜明对比——季节性具有固定周期(如每年重复),而循环波动的时间长度可变。经济中的商业周期是循环分量的典型例子:扩张、峰值、收缩和谷底组成的周期可能持续3到10年不等,且周期长度在各个周期之间可能有所不同。
识别循环分量在实践中具有挑战性,因为循环模式通常不如趋势或季节性明显。循环分量与趋势的关键区别在于:趋势是单调或平滑变化的,而循环涉及方向的反转——序列在上升到峰值后下降,在触底后再次上升。循环分量也可能在幅度和持续时间上表现出时变特征,这进一步增加了识别和建模的复杂性。
残差分量
残差(Residual)或随机分量 $R_t$(有时记为 $E_t$ 或 $\epsilon_t$)代表了无法用趋势、季节性和循环分量解释的时间序列部分。残差包括不规则波动、随机冲击以及任何未被明确建模的系统性影响。高质量的分解应该产生近似随机且无自相关的残差,这表明模型已充分捕捉了数据中的系统性模式。
残差分量的性质对后续分析有重要影响。如果残差表现出明显的模式(如持续的正自相关或条件异方差),则表明分解不充分,需要更复杂的建模方法。在某些情况下,看似随机的残差实际上可能隐藏着需要额外解释变量(如外部冲击或政策变化)才能理解的系统性变化。诊断残差是验证时间序列分解有效性的关键步骤。
经典时间序列分解方法
时间序列分解方法为将观察序列分离为其组成成分提供了系统程序。这些方法在概念上简单,计算上高效,至今仍在探索性分析和某些应用中广泛使用。
加法与乘法分解
经典分解的核心选择是在加法模型和乘法模型之间做出决定。如前所述,加法模型假设四个分量以线性方式组合:
$$Y_t = T_t + S_t + C_t + R_t$$
乘法模型则假设:
$$Y_t = T_t \times S_t \times C_t \times R_t$$
乘法模型可以通过对数变换转换为加法模型:
$$\log Y_t = \log T_t + \log S_t + \log C_t + \log R_t$$
这个转换的有用性在于:对于具有比例季节性的序列(季节性波动幅度随趋势水平成比例变化),对数变换后的序列可以使用加法分解方法处理。选择加法还是乘法分解取决于数据的特征——当季节性波动幅度相对恒定,不随趋势水平变化时,加法分解更为合适;当季节效应与趋势水平成比例时,乘法分解是更好的选择。
趋势估计方法
估计趋势分量是分解中的关键步骤。中心移动平均法是最常用的经典方法,其思想是用移动窗口内的平均值作为趋势的代表。对于加法分解中的趋势-循环估计,一个常用的选择是使用长度为季节周期 $s$ 的移动平均。例如,对于月度数据($s=12$),$2 \times 12$ 移动平均提供了良好的趋势-循环估计:
$$\hat{T}_t + \hat{C}_t = \frac{1}{12}\left(\frac{1}{2}Y_{t-6} + Y_{t-5} + Y_{t-4} + \cdots + Y_{t+4} + Y_{t+5} + \frac{1}{2}Y_{t+6}\right)$$
端点处理需要特殊考虑,因为移动平均在序列开始和结束时无法完全对称计算。常用的方法包括末端移动平均(asymmetric moving averages)或基于模型的外推。对于短期序列,端点处理的不确定性可能对分解结果产生实质性影响。
对于趋势估计,Holt线性趋势方法提供了比简单移动平均更灵活的选择,它分别估计水平(类似于趋势)和增长率,允许趋势随时间变化。这种方法可以视为一种简单的指数平滑形式,它为后来更复杂的分解和预测方法奠定了基础。
季节性估计
一旦估计了趋势-循环分量,季节性分量可以通过平均去趋势后的同期观察值来估计。对于加法分解:
$$\hat{S}_j = \frac{1}{n_j}\sum_{t \in \text{Period } j} (Y_t - \hat{T}_t)$$
其中 $j$ 标识季节(如月份 $j = 1, 2, \ldots, 12$),$n_j$ 是第 $j$ 季节期间可用的观察数。为了确保季节性估计在季节周期上平均为零(加法分解)或平均为一(乘法分解),通常需要进行标准化调整。
X-13ARIMA-SEATS是美国人口普查局开发的复杂分解系统,代表了经典分解方法的高水平发展。它结合了移动平均季节调整和基于ARIMA模型的分解,提供了处理多种复杂情况的能力,包括交易日调整、异常值检测和缺失值处理。该系统使用SEATS(Signal Extraction in ARIMA Time Series)算法进行基于模型的分解,与传统移动平均方法相比具有更强的理论支持和更灵活的适应性。
平稳性的数学基础
平稳性(Stationarity)是时间序列分析中最重要的概念之一,它定义了一类具有统计特性时间不变性的随机过程。理解平稳性对于选择适当的分析方法、避免"伪回归"问题以及正确解释时间序列模型至关重要。
严格平稳性
严格平稳性(Strict Stationarity)要求随机过程的全部有限维分布不随时间平移而改变。更形式化地说,一个时间序列过程 $\{Y_t\}$ 是严格平稳的,如果对于所有整数 $k$ 和所有时间点 $t_1, t_2, \ldots, t_n$:
$$F_{Y_{t_1}, Y_{t_2}, \ldots, Y_{t_n}}(y_1, y_2, \ldots, y_n) = F_{Y_{t_1+k}, Y_{t_2+k}, \ldots, Y_{t_n+k}}(y_1, y_2, \ldots, y_n)$$
其中 $F$ 表示联合分布函数。严格平稳性是一个极强的条件:它要求过程的所有统计特性——不仅是均值和方差,还包括分布的完整形状、高阶矩以及任何非线性依赖结构——在时间上保持不变。这意味着过程的完整概率结构是时间不变的。
在实际应用中,严格平稳性几乎无法验证,因为我们只能观察到有限数量的观察值,无法完整刻画高维分布。事实上,严格平稳性对于大多数时间序列模型来说既不必要也不实用。然而,严格平稳性的概念提供了理论基准,引导我们思考时间序列分析中不变性的含义。
弱平稳性(宽平稳性)
在实践中更具应用价值的是弱平稳性(Weak Stationarity),也称为宽平稳性(Wide-sense Stationarity)或二阶平稳性(Second-order Stationarity)。弱平稳性仅要求过程的前两阶矩——均值和协方差——在时间上保持平稳,同时假设方差有限。
一个时间序列过程 $\{Y_t\}$ 是弱平稳的,如果满足以下三个条件:
1. 均值恒定:$E(Y_t) = \mu$,对所有 $t$ 成立 2. 方差有限:$0 < \text{Var}(Y_t) = \sigma^2 < \infty$,对所有 $t$ 成立 3. 协方差仅依赖于滞后阶数:$\text{Cov}(Y_t, Y_{t+h}) = \gamma(h)$,对所有 $t$ 和滞后 $h$ 成立
第三个条件是弱平稳性的核心:两个时间点之间的协方差只取决于它们之间的时间距离(滞后),而不取决于绝对时间位置。这意味着过程的二阶依赖结构是时间不变的。弱平稳性不要求分布的正态性或高阶矩的平稳性,但对于正态过程,弱平稳性意味着严格平稳性。
平稳性在实践中的意义
平稳性的概念对时间序列分析具有深远影响。许多经典时间序列方法——包括ARMA模型和一些预测技术——假设数据是平稳的,或者通过适当的变换(如差分或去趋势)可以变得平稳。当应用于非平稳数据时,这些方法可能产生误导性结果。
非平稳性有多种表现形式,每种都需要不同的处理方法。趋势非平稳性源于均值随时间漂移;季节性非平稳性意味着季节模式本身随时间演变;条件异方差(如金融时间序列中常见的)涉及方差随时间变化。单位根过程——其特征根恰好位于单位圆上——代表了另一种重要的非平稳类型,它具有随机趋势而非确定性趋势。这些不同类型的非平稳性需要不同的诊断和转换技术。
自协方差与自相关函数
自协方差函数(Autocovariance Function, ACVF)及其标准化形式自相关函数(Autocorrelation Function, ACF)提供了量化时间序列中时间依赖结构的核心工具。这些函数既是描述性工具,用于总结序列的依赖模式;也是诊断工具,用于识别适当的模型和验证模型假设。
自协方差的定义与性质
时间序列 $Y_t$ 在滞后 $h$ 处的自协方差定义为:
$$\gamma(h) = \text{Cov}(Y_t, Y_{t+h}) = E[(Y_t - \mu_t)(Y_{t+h} - \mu_{t+h})]$$
对于弱平稳过程,由于均值恒定且协方差只依赖于滞后,自协方差函数简化为:
$$\gamma(h) = E[(Y_t - \mu)(Y_{t+h} - \mu)]$$
自协方差函数具有以下基本性质:
1. 对称性:$\gamma(h) = \gamma(-h)$,由于协方差的对称性 2. 非负定性:自协方差矩阵是半正定的 3. 最大值:$\gamma(0) = \text{Var}(Y_t) = \sigma^2$,方差是滞后为零处的自协方差 4. 衰减性(对于平稳过程):$|\gamma(h)| \leq \gamma(0)$,自协方差在滞后增加时通常趋于零
自协方差函数的形状揭示了时间依赖结构的重要信息。快速衰减的自协方差表示序列主要由短期依赖主导;缓慢衰减可能表明存在趋势或长记忆特征;振荡模式可能暗示周期性行为。
自相关函数
自相关函数(ACF)通过标准化自协方差消除了量纲的影响:
$$\rho(h) = \frac{\gamma(h)}{\gamma(0)} = \frac{\text{Cov}(Y_t, Y_{t+h})}{\text{Var}(Y_t)}$$
自相关系数 $\rho(h)$ 度量了滞后 $h$ 处序列值之间的线性相关程度。$\rho(0) = 1$ 是恒成立的,$\rho(h) = \rho(-h)$ 体现了对称性。对于平稳序列,$|\rho(h)| \leq 1$ 对所有滞后成立。
样本自相关函数(Sample ACF)从观察数据 $y_1, y_2, \ldots, y_n$ 估计ACF:
$$\hat{\rho}(h) = \frac{\sum_{t=1}^{n-h}(y_t - \bar{y})(y_{t+h} - \bar{y})}{\sum_{t=1}^{n}(y_t - \bar{y})^2}$$
样本ACF是探索时间序列依赖结构的基本工具。显著的样本自相关(超出置信区间的值)表明存在可建模的时间依赖性。ACF的模式——衰减速度、截断位置、振荡特征——为选择适当的模型类别(如AR、MA或混合模型)提供了重要指导。
偏自相关函数
偏自相关函数(Partial Autocorrelation Function, PACF)度量了在中间观察值 $Y_{t+1}, \ldots, Y_{t+h-1}$ 条件化后,$Y_t$ 和 $Y_{t+h}$ 之间的条件相关:
$$\phi_{hh} = \text{Corr}(Y_t, Y_{t+h} | Y_{t+1}, \ldots, Y_{t+h-1})$$
PACF对于识别AR过程的阶数特别有价值。对于AR(p)过程,PACF在滞后 $p$ 之后截断为零(精确为零或近似为零),而ACF呈指数衰减或正弦衰减模式。这种对比特征——ACF的渐进衰减与PACF的截断——构成了模型识别的基础。
样本PACF的计算涉及对前 $h$ 个自相关的线性回归调整。Yule-Walker方程提供了PACF的理论计算框架:
$$\phi_{hh} = \begin{vmatrix} 1 & \rho_1 & \cdots & \rho_{h-1} \\ \rho_1 & 1 & \cdots & \rho_2 \\ \vdots & \vdots & \ddots & \vdots \\ \rho_{h-1} & \rho_{h-2} & \cdots & 1 \end{vmatrix} \bigg/ \begin{vmatrix} 1 & \rho_1 & \cdots & \rho_{h-1} \\ \rho_1 & 1 & \cdots & \rho_2 \\ \vdots & \vdots & \ddots & \vdots \\ \rho_{h-1} & \rho_{h-2} & \cdots & 1 \end{vmatrix}$$
PACF的可视化——类似于ACF的柱状图——是模型识别过程的核心诊断工具。
白噪声过程
白噪声(White Noise)是时间序列分析中最基本的随机过程概念之一,它代表了"纯随机"波动——没有任何可预测结构的时间序列。理解白噪声对于建立参照模型、诊断残差和理解更复杂过程的性质至关重要。
白噪声的定义
白噪声 $\{ \epsilon_t \}$ 是满足以下条件的随机过程:
1. 零均值:$E(\epsilon_t) = 0$ 对所有 $t$ 成立 2. 常数方差:$\text{Var}(\epsilon_t) = \sigma^2$ 对所有 $t$ 成立 3. 不相关:$\text{Cov}(\epsilon_t, \epsilon_s) = 0$ 对所有 $t \neq s$ 成立
白噪声的协方差函数非常简单:
$$\gamma(h) = \begin{cases} \sigma^2 & \text{if } h = 0 \\ 0 & \text{if } h \neq 0 \end{cases}$$
相应的自相关函数为:
$$\rho(h) = \begin{cases} 1 & \text{if } h = 0 \\ 0 & \text{if } h \neq 0 \end{cases}$$
白噪声的名称源于其频域性质的类比:就像白光包含所有频率,白噪声在频谱上具有平坦的功率谱密度——在所有频率上贡献相等的功率。这种"无信息"性质使白噪声成为描述不可预测随机波动的自然基准。
高斯白噪声
高斯白噪声(Gaussian White Noise)假设 $\epsilon_t$ 服从正态分布,在许多理论推导和统计推断中具有特殊地位。高斯白噪声是完全独立的(不仅是线性不相关),这一更强的性质简化了许多分析结果。在正态假设下,弱平稳性等价于严格平稳性,使得高斯白噪声成为定义良好的严格平稳过程。
高斯白噪声在蒙特卡洛模拟、置信区间构建和渐近理论中发挥核心作用。许多时间序列推断方法依赖于观察值渐近等价于高斯白噪声的假设,这为置信区间和假设检验提供了理论基础。
白噪声的检验
诊断检验用于确定残差序列是否与白噪声一致,即是否已充分解释了数据中的依赖结构。常用的白噪声检验包括:
Ljung-Box Q检验