📈 平稳性检验 时间序列与深度学习预测 · 第3讲

🎒 平稳性定义 · ADF检验 · KPSS检验 · 差分操作

📌 1. 平稳性定义

平稳性 (Stationarity) 是时间序列分析的核心假设。若序列的统计性质(均值、方差、自协方差)不随时间平移而改变,则称其为弱平稳(宽平稳)。

✅ 弱平稳三条件

  • 均值恒定:E[Yt] = μ (常数)
  • 方差恒定:Var(Yt) = σ² (有限)
  • 自协方差仅依赖滞后:Cov(Yt, Yt-k) = γk

🧪 为什么需要平稳?

  • 避免虚假回归
  • 保证统计推断有效
  • 深度学习模型(如LSTM)更易收敛
📊 平稳 vs 非平稳 (示意) 平稳 (均值/方差稳定) 非平稳 (均值漂移/趋势)

🔬 2. ADF检验 (Augmented Dickey-Fuller)

ADF检验 是单位根检验的常用方法,原假设 H₀:序列存在单位根(非平稳)。备择假设 H₁:序列平稳。

统计量 / 指标说明判断准则
ADF Statistic检验回归系数越负越拒绝H₀
p-value显著性概率p < 0.05 拒绝H₀ → 平稳
Critical Values (1%, 5%, 10%)临界值ADF < 临界值 → 平稳
# Python 示例 (statsmodels)
from statsmodels.tsa.stattools import adfuller
result = adfuller(series, autolag='AIC')
print(f'ADF统计量: {result[0]:.4f}')
print(f'p-value: {result[1]:.6f}')
if result[1] < 0.05:
    print("✅ 拒绝H₀,序列平稳")
else:
    print("❌ 无法拒绝H₀,序列非平稳")

⚖️ 3. KPSS检验 (Kwiatkowski–Phillips–Schmidt–Shin)

KPSS检验 原假设与ADF相反:H₀:序列平稳(趋势平稳)。备择假设:存在单位根(非平稳)。常与ADF互为补充。

统计量原假设判断 (显著性0.05)
KPSS Statistic序列平稳统计量 > 临界值 → 拒绝H₀ (非平稳)
p-value平稳p < 0.05 → 非平稳
# Python 示例
from statsmodels.tsa.stattools import kpss
stat, p, lags, crit = kpss(series, regression='c')
print(f'KPSS统计量: {stat:.4f}, p-value: {p:.4f}')
if p < 0.05:
    print("❌ 拒绝H₀,序列非平稳 (存在单位根)")
else:
    print("✅ 无法拒绝H₀,序列可能平稳")

📊 ADF + KPSS 联合决策

ADF 检验 H₀: 非平稳 (单位根) p < 0.05 → 平稳 ✅ p ≥ 0.05 → 非平稳 ❌ KPSS 检验 H₀: 平稳 (趋势平稳) p < 0.05 → 非平稳 ❌ p ≥ 0.05 → 平稳 ✅ 互补 两者结合:交叉验证,避免误判

🔄 4. 差分操作 (Differencing)

差分 是消除趋势和季节性的常用手段,使非平稳序列变为平稳。一阶差分:∇Yt = Yt - Yt-1。高阶差分或季节差分可处理复杂模式。

📉 一阶差分
diff1 = series.diff()
📊 二阶差分
diff2 = series.diff().diff()
🗓️ 季节差分
series.diff(12) (月度)
# 差分操作示例 (Pandas)
import pandas as pd
# 一阶差分
df['diff_1'] = df['value'] - df['value'].shift(1)
# 或直接使用 .diff()
df['diff_1'] = df['value'].diff()
# 检验差分后平稳性
from statsmodels.tsa.stattools import adfuller
print(adfuller(df['diff_1'].dropna()))
差分效果示意 (消除趋势) 原始 (非平稳) 一阶差分后 (平稳)

📋 方法对比一览

方法原假设适用场景输出
ADF非平稳 (单位根)检测差分平稳统计量 + p值
KPSS平稳 (趋势平稳)确定性趋势检验统计量 + p值
差分—消除趋势/季节新序列 (差分阶数d)

🧰 平稳性检验工作流

  1. 可视化:观察趋势、季节性、波动。
  2. ADF检验:若p<0.05 → 平稳;否则非平稳。
  3. KPSS检验:若p<0.05 → 非平稳;否则平稳。
  4. 联合判断:两者一致则结论可靠;若矛盾,可能为趋势平稳或需差分。
  5. 差分操作:对非平稳序列进行一阶/季节差分,重复检验直至平稳。
  6. 深度学习建模:平稳序列输入LSTM/Transformer效果更稳定。