3. 数据探索与可视化

在时间序列建模流程中,数据探索与可视化是连接原始数据与模型选择的关键桥梁。本章将系统讲解三种核心可视化工具——折线图、自相关图(ACF)与偏自相关图(PACF)的绘制原理、解读方法及工程实践要点。通过本章学习,你将能够从视觉上快速判断序列的平稳性、季节性、趋势成分,并为后续的模型定阶(如 ARIMA 的 p、d、q 参数)提供直接依据。

3.1 折线图:序列的“心电图”

折线图是时间序列分析最基础的图形,它将时间作为横轴、观测值作为纵轴,直观展示序列的整体走势、波动幅度和异常点。在工程实践中,折线图通常作为数据探索的第一步,帮助我们回答以下问题:

  • 趋势性:序列是否存在长期上升或下降的单调趋势?
  • 季节性:序列是否呈现周期性重复的波动模式?
  • 平稳性:序列的均值和方差是否随时间发生明显变化?
  • 异常值:是否存在远离正常范围的孤立点或突变点?
工程提示:绘制折线图时,建议将时间索引显式设置为 x 轴刻度,避免使用默认整数索引。对于高频数据(如分钟级),可先进行重采样(resample)降频,再绘制折线图,以提升图形可读性。

以下是一个典型的折线图绘制代码示例(Python + Matplotlib):

import matplotlib.pyplot as plt
import pandas as pd

# 假设 df 包含时间序列数据,索引为 DatetimeIndex
plt.figure(figsize=(12, 5))
plt.plot(df.index, df['value'], color='#3498db', linewidth=1.5)
plt.title('时间序列折线图', fontsize=14, color='#2c3e50')
plt.xlabel('时间', fontsize=12)
plt.ylabel('观测值', fontsize=12)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
关键解读指标:
  • 趋势线斜率:正斜率表示增长趋势,负斜率表示下降趋势。
  • 波动幅度:振幅随时间扩大或缩小,提示异方差性。
  • 周期性:相邻波峰/波谷的时间间隔是否固定。
折线图结构示意 t₀ t₁ t₂ t₃ t₄ 0 50 100 上升趋势 周期波动

3.2 自相关图(ACF):序列的“记忆长度”

自相关函数(ACF)衡量的是时间序列与其滞后版本之间的线性相关性。ACF 图以滞后阶数(lag)为横轴、自相关系数为纵轴,并通常绘制 95% 置信区间带(蓝色虚线区域)。ACF 图的核心用途包括:

  • 判断平稳性:平稳序列的 ACF 通常快速衰减到零附近;非平稳序列的 ACF 衰减缓慢或呈“拖尾”形态。
  • 识别季节性:在季节性周期对应的滞后阶数上,ACF 会出现显著峰值。
  • 确定 MA 阶数(q):对于 ARIMA 模型,ACF 在 q 阶后截尾(突然降为不显著)是 MA(q) 过程的典型特征。
常见误区:ACF 图中的置信区间是基于白噪声假设计算的。当序列存在强自相关时,置信区间可能偏窄,导致误判。建议结合 Ljung-Box 检验进行统计确认。

绘制 ACF 图的典型代码(使用 statsmodels):

from statsmodels.graphics.tsaplots import plot_acf
import matplotlib.pyplot as plt

plot_acf(df['value'], lags=40, alpha=0.05, title='自相关图 (ACF)')
plt.tight_layout()
plt.show()

3.3 偏自相关图(PACF):剔除中间影响的“净相关”

偏自相关函数(PACF)在计算滞后 k 阶的相关性时,剔除了中间 1 到 k-1 阶滞后的间接影响,只保留“纯”的 k 阶直接相关性。PACF 图的主要应用场景:

  • 确定 AR 阶数(p):对于 AR(p) 过程,PACF 在 p 阶后截尾。
  • 区分 AR 与 MA 行为:结合 ACF 和 PACF 的截尾/拖尾模式,可以初步判断模型类型。
  • 识别混合模型:当 ACF 和 PACF 均呈现拖尾时,提示可能需要 ARMA 或 ARIMA 模型。

绘制 PACF 图的典型代码:

from statsmodels.graphics.tsaplots import plot_pacf

plot_pacf(df['value'], lags=40, alpha=0.05, method='ywm', title='偏自相关图 (PACF)')
plt.tight_layout()
plt.show()
ACF 与 PACF 对比速查表:
特征 ACF(自相关函数) PACF(偏自相关函数)
定义 序列与自身滞后版本的相关系数 剔除中间滞后影响后的“净”相关系数
AR(p) 过程 拖尾(指数衰减或正弦衰减) p 阶后截尾
MA(q) 过程 q 阶后截尾 拖尾
ARMA(p,q) 过程 拖尾 拖尾
非平稳序列 衰减缓慢,通常为正且持续 第一阶接近 1,后续快速下降
季节性序列 在季节周期滞后处出现显著峰值 在季节周期滞后处也可能出现峰值
ACF 与 PACF 模式对比 ACF(MA 截尾示例) q=3 后截尾 → 提示 MA(3) PACF(AR 截尾示例) p=2 后截尾 → 提示 AR(2)

3.4 三图联动的工程解读流程

在实际工程中,我们通常将折线图、ACF 图、PACF 图并列展示,形成“三图联动”的分析框架。以下是一个标准解读流程:

  1. 第一步:看折线图——判断序列是否存在明显趋势或季节性。若存在,先进行差分或季节差分,使序列平稳。
  2. 第二步:看 ACF 图——观察自相关系数的衰减速度。若衰减缓慢,提示序列非平稳,需要进一步差分。
  3. 第三步:看 PACF 图——结合 ACF 的截尾/拖尾模式,初步确定 AR 阶数 p 和 MA 阶数 q。
  4. 第四步:交叉验证——使用信息准则(AIC/BIC)对候选模型进行定阶,避免仅依赖视觉判断。
工程经验:
  • 对于金融时间序列(如股票收益率),ACF 和 PACF 通常呈现“快速衰减”特征,提示序列接近白噪声。
  • 对于气象或传感器数据,ACF 往往在低阶滞后处显著,且存在明显的日/周季节性周期。
  • 当 ACF 和 PACF 均出现“拖尾”时,优先尝试 ARMA(1,1) 作为基线模型。

3.5 常见陷阱与避坑指南

陷阱 表现 解决方案
过度解读置信区间 将刚好落在置信区间边界上的峰值误判为显著 结合 Ljung-Box 检验的 p 值综合判断
忽略季节性 ACF 在季节周期处出现显著峰值,但被误认为 MA 行为 先进行季节差分,再观察 ACF/PACF
样本量不足 滞后阶数过多导致置信区间过宽,失去参考价值 一般建议 lags ≤ n/4,且不超过 40
数据预处理不当 缺失值或异常值导致 ACF 出现虚假相关性 绘制折线图时先标记异常点,进行插值或截断处理
重要提醒:ACF 和 PACF 的解读结果应作为模型选择的参考依据,而非唯一标准。最终模型定阶必须结合信息准则(AIC/BIC)、残差诊断和业务场景综合确定。切勿盲目追求“视觉完美”的截尾模式。