📈 自相关与偏自相关

ACF · PACF · 拖尾 · 截尾
📚 课程 时间序列与深度学习预测
🎯 章节 4 · 识别与定阶
🧩 难度 ★★★☆☆
🔍 核心概念 —— 自相关函数 (ACF) 描述时间序列与其滞后版本之间的线性相关性; 偏自相关函数 (PACF) 则是在剔除中间滞后影响后的“净”相关。通过 ACF/PACF 图的拖尾(逐渐衰减)与截尾(突然截断)特征, 可判断 AR、MA、ARMA 模型阶数,是经典 Box-Jenkins 方法论的基石。
模型ACF (自相关)PACF (偏自相关)典型图示
AR(p)拖尾 (指数/正弦衰减)截尾 (p阶后为0)📉 拖尾 · 截尾
MA(q)截尾 (q阶后为0)拖尾 (逐渐衰减)截尾 · 拖尾
ARMA(p,q)拖尾 (缓慢衰减)拖尾 (缓慢衰减)拖尾 · 拖尾

📊 ACF 图 (自相关)

滞后 k → 拖尾
ACF 拖尾 (逐渐衰减至零)

📊 PACF 图 (偏自相关)

滞后 k → 截尾 (p=2)
PACF 截尾 (2阶后骤减)
🧠 拖尾/截尾识别架构 · 模型定阶逻辑
ACF / PACF 拖尾 / 截尾 模式匹配 AR / MA / ARMA 阶数 (p,q) 建议 ✅ → 根据 ACF/PACF 的拖尾/截尾特征,选择 AR、MA 或 ARMA 模型及阶数
  • 📌 拖尾 (Tailing off):自相关或偏自相关缓慢衰减,通常呈指数或正弦波动,不会突然消失。
  • 📌 截尾 (Cut off):在某个滞后阶数之后,相关系数突然变得不显著(落入置信区间内)。
  • 📌 AR(p) 模型:PACF 在 p 阶后截尾,ACF 拖尾 → 阶数 p 由 PACF 显著滞后数决定。
  • 📌 MA(q) 模型:ACF 在 q 阶后截尾,PACF 拖尾 → 阶数 q 由 ACF 显著滞后数决定。
  • 📌 ARMA(p,q) 模型:ACF 和 PACF 均呈现拖尾,需借助信息准则 (AIC/BIC) 辅助定阶。

🐍 Python 示例 · 绘制 ACF 与 PACF

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

# 模拟 AR(2) 序列
np.random.seed(42)
n = 200
ar_params = np.array([0.6, -0.3])
x = np.zeros(n)
for t in range(2, n):
    x[t] = ar_params[0]*x[t-1] + ar_params[1]*x[t-2] + np.random.normal(0, 1)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
plot_acf(x, lags=20, ax=ax1, title="ACF (拖尾)")
plot_pacf(x, lags=20, ax=ax2, title="PACF (截尾, p=2)")
plt.tight_layout()
plt.show()
💡 经验法则: 如果 ACF 拖尾且 PACF 在滞后 p 后截尾 → AR(p);如果 ACF 在滞后 q 后截尾且 PACF 拖尾 → MA(q);两者都拖尾 → ARMA。