时序数据基础:时间序列的定义、类型、平稳性、自相关与分解

时间序列分析是Transformer时序预测与序列建模的基石。无论是股票价格、电力负荷、气象观测,还是工业传感器读数,其底层数据形态几乎都以时间序列的形式存在。理解时间序列的本质属性——包括其定义、类型、平稳性、自相关结构以及趋势与季节性的分解逻辑——是决定后续模型选择、特征工程和预测效果的关键前提。本章将系统梳理这些核心概念,并建立一套从数据探查到预处理决策的完整认知框架。

时间序列基础概念关系与预处理决策路径 时间序列数据 类型(单/多变量) 平稳性 自相关(ACF/PACF) 趋势与季节性分解 单变量:1个观测维度 多变量:多个相关维度 决定输入张量形状与模型结构 强平稳 / 弱平稳 ADF / KPSS 检验 决定差分或变换策略 ACF:整体相关性 PACF:偏相关性 识别AR/MA阶数与Transformer注意力 加法 / 乘法模型 STL / 移动平均 分离成分便于特征工程 预处理决策路径:类型识别 → 平稳性检验 → 差分/变换 → 自相关分析 → 分解 → 特征构造 该路径直接影响Transformer输入编码与位置编码的设计

上图展示了时间序列分析的四个核心属性及其在预处理决策中的位置。在实际建模中,这四个属性并非孤立存在,而是相互影响、层层递进。例如,多变量序列的平稳性检验需要分别进行,而自相关结构则直接揭示了序列内部的时间依赖模式,这为Transformer的注意力机制提供了先验知识。下面我们将逐一深入剖析。

2.1 时间序列的定义与核心类型

核心原理:时间序列(Time Series)是按时间顺序排列的一组观测值,其本质是一个随机过程的实现。与横截面数据不同,时间序列的相邻观测值之间存在顺序依赖关系,这种依赖关系正是预测建模的基础。从数学角度看,一个时间序列可以表示为 \(\{x_t\}_{t=1}^T\),其中 \(t\) 表示离散时间索引,\(T\) 为序列长度。

根据观测维度的数量,时间序列可分为两大类:

  • 单变量时间序列(Univariate Time Series):在每一个时间点只记录一个变量值。例如,某城市每日最高气温、某股票每日收盘价。单变量序列的建模重点在于挖掘其自身的历史模式(如自回归结构、趋势、季节性)。
  • 多变量时间序列(Multivariate Time Series):在每一个时间点记录多个相关变量的值。例如,气象站同时记录温度、湿度、风速和气压;工业设备同时采集振动、电流和温度信号。多变量序列不仅包含每个变量的自相关,还包含变量之间的互相关(Cross-correlation),这为预测提供了更丰富的信息。

判断方法或操作流程:在工程实践中,区分单变量与多变量并非只看数据表的列数。关键判断标准是:这些变量是否来自同一个物理系统或业务过程,并且是否在时间上同步采样。如果多个变量只是拼凑在一起但无实际关联,强行使用多变量模型反而会引入噪声。操作流程如下:

  1. 检查数据源:确认所有变量是否来自同一采样时钟或业务事件流。
  2. 检查时间对齐:多变量序列必须具有相同的时间戳频率和跨度。
  3. 检查相关性:计算变量间的Pearson相关系数或互信息,初步判断关联强度。
经验提醒:在Transformer建模中,单变量序列通常需要嵌入为形状 [batch, seq_len, 1] 的张量,而多变量序列则为 [batch, seq_len, num_features]。多变量输入时,建议对每个特征独立进行归一化,避免量纲差异影响注意力权重的计算。

2.2 平稳性:统计性质的时间不变性

核心原理:平稳性(Stationarity)是时间序列分析中最核心的假设之一。一个严格平稳的序列要求其任意有限维联合分布具有时间平移不变性。但在实际应用中,我们通常使用弱平稳(宽平稳)定义,即满足以下三个条件:

  • 均值恒定:\(E[x_t] = \mu\),不随时间 \(t\) 变化。
  • 方差恒定:\(Var[x_t] = \sigma^2\),不随时间 \(t\) 变化。
  • 自协方差仅依赖于时间间隔:\(Cov[x_t, x_{t+k}] = \gamma_k\),只与滞后阶数 \(k\) 有关,与具体时间点 \(t\) 无关。

平稳性之所以重要,是因为大多数统计模型(包括ARIMA、GARCH以及部分深度学习模型的基础假设)都建立在数据分布稳定的前提上。如果序列非平稳,模型的参数估计将不稳定,预测结果也会失真。

判断方法或操作流程:常用的平稳性检验方法包括:

检验方法 原假设(H0) 判定规则 适用场景
ADF检验(Augmented Dickey-Fuller) 序列存在单位根(非平稳) p值 < 0.05,拒绝H0,认为平稳 最常用,适用于大多数金融与经济数据
KPSS检验(Kwiatkowski-Phillips-Schmidt-Shin) 序列是平稳的 p值 > 0.05,不能拒绝H0,认为平稳 作为ADF的补充,用于交叉验证
滚动统计量观察 无 观察滚动均值与标准差是否随时间大幅波动 快速可视化初判

当序列被判定为非平稳时,常用的处理手段包括:

  • 差分法:一阶差分 \(y_t = x_t - x_{t-1}\) 可消除线性趋势;二阶差分可消除二次趋势。
  • 对数变换:适用于方差随均值增大而增大的序列(如指数增长型数据)。
  • 分解法:将趋势与季节性成分剥离后,对残差序列进行建模。
风险说明:过度差分会导致序列失去有价值的信息,并引入额外的噪声。在Transformer模型中,虽然位置编码可以部分缓解非平稳问题,但输入数据仍然建议保持平稳或近似平稳,否则模型需要花费更多参数去拟合趋势,降低预测精度。

2.3 自相关与偏自相关:揭示时间依赖的指纹

核心原理:自相关(Autocorrelation)衡量的是序列与其自身滞后版本之间的线性相关性。自相关函数(ACF)定义为 \(\rho_k = \frac{\gamma_k}{\gamma_0}\),其中 \(\gamma_0\) 是方差。偏自相关函数(PACF)则是在剔除中间滞后项的影响后,衡量 \(x_t\) 与 \(x_{t-k}\) 之间的直接相关性。

ACF和PACF是识别时间序列内部依赖结构的“指纹”。例如,在AR(p)模型中,PACF在滞后 \(p\) 阶后截尾;在MA(q)模型中,ACF在滞后 \(q\) 阶后截尾。对于Transformer模型而言,自相关分析的意义在于:它可以帮助我们确定注意力机制应该关注的历史窗口长度。如果ACF显示滞后7阶的自相关显著(如周季节性数据),则输入序列长度至少应覆盖7个时间步。

案例拆解:电力负荷预测中的自相关分析

假设我们正在构建一个基于Transformer的电力负荷预测模型,数据为某地区每15分钟采集一次的负荷值,共持续30天(2880个点)。初始目标是预测未来24小时(96个点)的负荷曲线。

关键输入数据与指标:

  • 原始序列的ACF图显示:滞后96阶(24小时)的自相关系数高达0.85,滞后672阶(7天)的系数为0.72。
  • PACF图显示:滞后1阶和2阶的偏自相关系数显著,之后迅速衰减。

分析判断过程:ACF的强周期性表明数据具有明显的日周期和周周期。这意味着Transformer的输入序列长度至少需要包含过去7天的数据(672个点),才能捕捉到完整的周期性模式。同时,PACF的短期显著说明近期的负荷值对下一时刻有直接影响,这提示我们在注意力掩码设计中,应允许模型同时关注近期点(如过去2小时)和远期周期点(如昨天同一时刻)。

实际操作步骤:

  1. 使用 statsmodels 库计算ACF和PACF,并绘制置信区间带。
  2. 识别显著的滞后阶数,确定最小输入窗口长度。
  3. 在Transformer的输入编码中,将时间特征(如小时、星期几)作为附加特征拼接到负荷值上。

结果对比与复盘:通过引入基于自相关分析确定的输入窗口(7天),模型预测误差(MAPE)从基线模型的8.5%下降至6.2%。复盘发现,若不进行自相关分析而随意选择输入长度(如3天),模型无法充分学习周周期性,导致周末负荷预测偏差较大。

2.4 趋势与季节性分解:拆解复杂模式

核心原理:时间序列通常由多个不可直接观测的成分叠加或相乘而成。经典分解模型将序列 \(x_t\) 表示为:

  • 加法模型:\(x_t = T_t + S_t + R_t\),适用于季节波动幅度不随趋势变化的情况。
  • 乘法模型:\(x_t = T_t \times S_t \times R_t\),适用于季节波动幅度与趋势水平成比例的情况(如零售额随经济增长而放大)。

其中 \(T_t\) 为趋势成分,\(S_t\) 为季节性成分,\(R_t\) 为残差(随机噪声)。常用的分解方法包括经典分解法(基于移动平均)、STL分解(Seasonal-Trend decomposition using LOESS)以及X13-ARIMA-SEATS。

判断方法或操作流程:选择加法还是乘法模型,可以通过观察序列的波动幅度是否随水平变化来判断。操作流程如下:

  1. 绘制原始序列的时序图,观察趋势与季节波动的关系。
  2. 若波动幅度随时间呈喇叭状扩大,则倾向于乘法模型;若波动幅度基本恒定,则使用加法模型。
  3. 使用STL分解(鲁棒性强,支持非线性趋势)提取三个成分。
  4. 对残差成分进行平稳性检验,若残差仍非平稳,则需进一步处理。

实战场景:在电商销量预测中,某商品销量呈现明显的年度增长趋势,且每年双11期间的销量峰值远高于平时。使用乘法分解后,趋势成分反映了年度增长,季节性成分反映了双11的脉冲效应,残差则包含了促销活动等不规则因素。在Transformer建模中,我们可以将分解后的趋势项和季节项作为外部特征输入,而将残差项作为预测目标,这样模型可以专注于学习随机波动部分,避免被强趋势主导。

总结复盘:时间序列基础分析是Transformer建模前的“体检报告”。类型识别决定了输入张量的形状;平稳性检验决定了是否需要差分或变换;自相关分析指导了注意力窗口的设计;分解则提供了特征工程的原料。忽略这些基础步骤,直接堆叠Transformer层,往往会导致模型训练不稳定、泛化能力差。建议在每次建模前,至少完成ACF/PACF绘图和ADF检验,这两步成本低、收益高。
常见误区:一个常见的错误是将所有非平稳序列都进行差分,直到通过ADF检验为止。但过度差分会使序列白噪声化,丢失长程相关性。另一个误区是忽视多变量序列中各变量之间的协整关系(Cointegration),即虽然单个变量非平稳,但它们的线性组合可能是平稳的。在Transformer中,可以通过引入协整向量作为额外特征来利用这一信息。