跳转到内容

平稳性与单位根

伪回归:为什么价格不能直接进模型

Section titled “伪回归:为什么价格不能直接进模型”

价格序列近似随机游走,是非平稳的。对两个各自漂移的序列直接回归,几乎总能得到"显著"的相关——伪回归:两个毫无关系的序列,只要都带趋势,t 值就随样本长度无限增长。识别方法很简单:残差的 Durbin–Watson 统计量远小于 2、自相关极高,就是伪回归的信号。

ADF 与 KPSS:方向相反的两个检验

Section titled “ADF 与 KPSS:方向相反的两个检验”
检验原假设结论为"平稳"的条件
ADF存在单位根(非平稳)拒绝原假设(p < 0.05)
KPSS平稳无法拒绝原假设(p > 0.05)

两者原假设相反,应配合使用:ADF 拒绝且 KPSS 不拒绝,才算有把握说平稳;两者结论矛盾时(常见于断点附近的样本),倾向于不平稳。

stationarity.py
import numpy as np
from statsmodels.tsa.stattools import adfuller, kpss
def stationarity_report(x: np.ndarray) -> dict:
adf_p = adfuller(x, autolag="AIC")[1]
with np.errstate(ignore="all"):
kpss_p = kpss(x, regression="c", nlags="auto")[1]
return {
"ADF p 值(<0.05 拒绝单位根)": adf_p,
"KPSS p 值(>0.05 无法拒绝平稳)": kpss_p,
"判定": "平稳" if adf_p < 0.05 and kpss_p > 0.05 else "存疑,倾向非平稳",
}
  • 差分消除趋势,得到近似平稳的收益序列,但丢失水平信息——价格"贵不贵"这类信息被抹掉;
  • 协整保留水平关系:两个非平稳序列的特定线性组合平稳,说明两者存在长期均衡。这是配对交易(见协整与价差构造)的统计基础:不交易收益,交易对均衡的偏离。

两者的选择由问题决定:预测方向用差分,捕捉回归均衡用协整。

严格平稳在实践中几乎不存在,通常的宽松标准是"均值与方差的缓慢变化可接受"。但要警惕:

  1. 结构性断点(制度变化、危机、交易规则修改)会让所有平稳性检验失效——ADF 在断点两侧是两个不同过程的混合;
  2. 检验窗口应滚动、分段做,而不是只看全样本;
  3. 协整关系同样会断裂,需持续监控,见 OU 过程与半衰期。
  • 回归类研究只对收益率或残差做,不对价格水平做;
  • 每个配对/价差入池前跑一遍 ADF + KPSS,且滚动复检;
  • 平稳性检验通过 ≠ 关系永存,协整断裂的监控比入池检验更重要。
  • ADF 的原假设是存在单位根,KPSS 相反,两者配合使用
  • 差分消除趋势但也丢失水平信息,协整保留水平关系
  • 结构性断点会让所有平稳性检验失效,需滚动分段检验