时序数据基础:时间序列定义、成分、平稳性、自相关与滞后图
时间序列分析是时序预测与MLOps落地的地基。无论是构建LSTM、Transformer还是XGBoost模型,其输入数据的统计性质、成分结构、平稳性状态和自相关模式,都直接决定了特征工程的策略、模型架构的选择以及上线后的监控阈值设定。本章将系统梳理时间序列的核心定义、四大成分、平稳性检验、自相关函数(ACF)与滞后图(Lag Plot),并给出可操作的判断流程与实战案例。
上图展示了时间序列分析的核心概念及其相互关系。时间序列由趋势、季节、周期和噪声叠加而成;平稳性是建模的前提;自相关与滞后图是识别序列内部依赖结构的核心工具。下面逐一展开。
2.1 时间序列的定义与数学表达
时间序列是指按时间顺序排列的一组观测值,记为 \(\{y_t, t=1,2,...,T\}\),其中 \(t\) 表示时间索引,\(T\) 为样本长度。与普通回归数据不同,时间序列的关键特征在于观测值之间的顺序相关性——相邻时刻的数据往往存在依赖关系,且这种依赖随滞后阶数变化。
在数学上,时间序列可以表示为确定性成分与随机成分的叠加:
y_t = f(Trend_t, Seasonal_t, Cyclic_t) + Noise_t
其中 \(Trend_t\) 为趋势项,\(Seasonal_t\) 为季节项,\(Cyclic_t\) 为周期项,\(Noise_t\) 为随机噪声。实际建模时,我们通常假设噪声服从均值为零、方差恒定的独立同分布(i.i.d.)过程,但这一假设在真实数据中往往不成立,需要通过差分、变换等手段使其近似成立。
2.2 时间序列的四大成分
理解成分是选择分解方法、设计特征和判断模型适用性的基础。四大成分各有其统计特征和业务含义。
| 成分 | 定义 | 典型周期 | 示例 | 处理方式 |
|---|---|---|---|---|
| 趋势 (Trend) | 长期单调上升或下降的方向性变化 | 无固定周期 | 用户增长曲线、GDP增长 | 差分、多项式拟合、对数变换 |
| 季节 (Seasonal) | 固定周期(如日、周、月、年)内的重复模式 | 固定且已知 | 电商日销售额(周内波动)、用电量(日内峰谷) | 季节差分、虚拟变量、STL分解 |
| 周期 (Cyclic) | 非固定长度的波动,通常与经济周期相关 | 不固定(3-10年) | 房地产周期、库存周期 | 滤波(HP滤波)、谱分析 |
| 噪声 (Noise) | 随机、不可预测的波动 | 无 | 测量误差、突发事件冲击 | 平滑、残差分析 |
季节性与周期性的区别常被混淆:季节性是固定周期(如每周7天、每年12个月),而周期性的周期长度不固定且通常更长。例如,某零售平台的日销售额呈现明显的“周末高、工作日低”的季节模式,而经济衰退带来的销售下滑则属于周期性波动。
2.3 平稳性:定义、检验与处理
平稳性是时间序列建模的核心前提。严格平稳要求联合分布随时间平移不变,实际中我们通常使用弱平稳(宽平稳)条件:
- 均值恒定:\(E[y_t] = \mu\),不随时间变化;
- 方差恒定:\(Var(y_t) = \sigma^2\),不随时间变化;
- 自协方差仅与滞后阶数 \(k\) 有关:\(Cov(y_t, y_{t-k}) = \gamma_k\),与时间点 \(t\) 无关。
判断平稳性的常用方法包括:
- 可视化检查:绘制时序图,观察均值是否围绕固定水平波动、波动幅度是否恒定;
- ADF检验(Augmented Dickey-Fuller):原假设为序列存在单位根(非平稳),若p值小于0.05则拒绝原假设,认为序列平稳;
- KPSS检验:原假设为序列平稳,若p值小于0.05则拒绝原假设,认为序列非平稳。通常与ADF结合使用,互为验证。
若序列非平稳,常用处理手段包括:
- 一阶差分:\(y'_t = y_t - y_{t-1}\),消除线性趋势;
- 季节差分:\(y'_t = y_t - y_{t-s}\),消除固定周期;
- 对数变换:稳定方差,适用于乘法型季节模式;
- Box-Cox变换:更一般化的方差稳定变换。
2.4 自相关函数(ACF)与偏自相关函数(PACF)
自相关函数度量序列与其自身滞后版本之间的线性相关性。对于滞后 \(k\),样本自相关系数定义为:
ρ_k = Cov(y_t, y_{t-k}) / Var(y_t)
ACF图以滞后阶数为横轴、自相关系数为纵轴绘制,并附带置信区间(通常为±1.96/√T)。ACF的主要用途包括:
- 识别MA(q)模型的阶数:若ACF在滞后q阶后截尾(即突然变为不显著),则可能为MA(q)过程;
- 判断序列是否平稳:平稳序列的ACF通常快速衰减到零,而非平稳序列的ACF衰减缓慢;
- 检测季节性:若ACF在滞后7、14、21等位置出现显著峰值,则存在周季节性。
偏自相关函数(PACF)则是在控制中间滞后项的影响后,度量 \(y_t\) 与 \(y_{t-k}\) 的直接相关性。PACF用于识别AR(p)模型的阶数:若PACF在滞后p阶后截尾,则可能为AR(p)过程。
2.5 滞后图(Lag Plot)的原理与解读
滞后图是一种直观的散点图,将 \(y_t\) 与 \(y_{t-k}\) 绘制在二维平面上。当 \(k=1\) 时,横轴为 \(y_{t-1}\),纵轴为 \(y_t\)。滞后图的价值在于:
- 检测线性相关性:若散点呈明显的对角线分布(正相关)或反对角线分布(负相关),说明存在强自相关;
- 识别非线性模式:若散点呈U形、环形或簇状分布,说明存在非线性依赖,需考虑非线性模型;
- 发现离群点:远离主簇的点可能是异常值或数据错误。
在Python中,使用pandas.plotting.lag_plot即可快速生成滞后图。实际应用中,建议同时绘制多个滞后阶数(如k=1, 7, 14)的滞后图,以全面观察不同时间尺度上的依赖结构。
2.6 实战案例:某电商平台日销售额的平稳性与自相关分析
本案例展示如何将上述概念应用于真实业务场景。某电商平台提供2023年1月1日至2023年12月31日的日销售额数据(共365个观测点),目标是为后续预测模型选择差分阶数和特征。
初始现象与目标:初步观察时序图发现销售额呈上升趋势,且存在明显的“周末高、工作日低”的周季节模式。目标是判断序列是否平稳,并识别自相关结构,为ARIMA或Prophet模型提供参数依据。
关键输入数据与指标:
- 原始序列均值:125.6万元,标准差:38.2万元;
- ADF检验p值:0.42(非平稳);
- KPSS检验p值:0.01(拒绝平稳原假设);
- ACF图:滞后1-7阶均显著,衰减缓慢;
- 滞后图(k=1):散点呈明显正对角线分布,相关系数0.87。
分析判断过程:
- ADF与KPSS检验结果一致表明原始序列非平稳,需进行差分;
- ACF衰减缓慢且滞后7阶处有显著峰值,提示存在周季节性;
- 滞后图确认强正自相关,但无法区分趋势与季节的贡献,需进一步分解。
实际操作步骤:
# 1. 一阶差分消除趋势
diff_1 = sales.diff().dropna()
# ADF p值变为0.03,仍非平稳(存在季节)
# 2. 季节差分(s=7)消除周季节
diff_7 = diff_1.diff(7).dropna()
# ADF p值变为0.001,KPSS p值0.15,序列平稳
# 3. 绘制差分后ACF/PACF
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(diff_7, lags=30) # ACF在滞后1阶显著,滞后7阶不显著
plot_pacf(diff_7, lags=30) # PACF在滞后1阶显著,滞后2阶截尾
结果对比:差分后序列的ACF显示滞后1阶自相关系数为-0.32(负值),PACF在滞后1阶为-0.35,滞后2阶后截尾。这提示模型可考虑ARIMA(1,1,0)(0,1,1)7结构。与直接使用原始序列建模相比,差分后的模型在验证集上的RMSE降低了约18%。
风险与代价:季节差分(s=7)会损失7个观测点,且若季节模式随时间变化(如节假日效应),固定周期差分可能失效。此外,差分操作会放大高频噪声,需在特征工程中配合平滑处理。
复盘经验:平稳性检验不能只看单一指标,ADF与KPSS结合使用可避免误判;滞后图虽然简单,但在识别非线性依赖方面比ACF更直观;差分阶数的选择应结合业务周期(如零售业周周期)而非仅依赖统计检验。
2.7 常见误区与总结复盘
在时间序列基础概念的学习和应用中,以下误区值得警惕:
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 将趋势误认为季节性 | 错误选择差分阶数,导致过度差分 | 使用STL分解或可视化对比趋势与季节成分 |
| 忽略周期性(Cyclic) | 模型无法捕捉长期波动 | 结合业务背景判断是否存在经济周期 |
| 仅依赖ADF检验 | 在边界情况下误判平稳性 | ADF+KPSS+可视化三管齐下 |
| 滞后图只看k=1 | 遗漏多步滞后依赖 | 绘制多个滞后阶数(k=1,7,14) |
| 认为平稳性处理后数据一定独立 | 忽略残差中的自相关 | 对残差进行Ljung-Box检验 |
总结而言,时间序列基础是预测建模的“体检报告”。通过成分分解理解数据的内在结构,通过平稳性检验确定差分策略,通过ACF/PACF和滞后图识别依赖模式,才能为后续的特征工程、模型选择和MLOps监控打下坚实基础。在实际工程中,建议将上述分析流程固化为自动化脚本,在每次数据更新后自动生成诊断报告,作为模型重训和告警的触发依据。