平稳性与单位根
伪回归:为什么价格不能直接进模型
Section titled “伪回归:为什么价格不能直接进模型”价格序列近似随机游走,是非平稳的。对两个各自漂移的序列直接回归,几乎总能得到"显著"的相关——伪回归:两个毫无关系的序列,只要都带趋势,t 值就随样本长度无限增长。识别方法很简单:残差的 Durbin–Watson 统计量远小于 2、自相关极高,就是伪回归的信号。
ADF 与 KPSS:方向相反的两个检验
Section titled “ADF 与 KPSS:方向相反的两个检验”| 检验 | 原假设 | 结论为"平稳"的条件 |
|---|---|---|
| ADF | 存在单位根(非平稳) | 拒绝原假设(p < 0.05) |
| KPSS | 平稳 | 无法拒绝原假设(p > 0.05) |
两者原假设相反,应配合使用:ADF 拒绝且 KPSS 不拒绝,才算有把握说平稳;两者结论矛盾时(常见于断点附近的样本),倾向于不平稳。
import numpy as npfrom 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 "存疑,倾向非平稳", }- 差分消除趋势,得到近似平稳的收益序列,但丢失水平信息——价格"贵不贵"这类信息被抹掉;
- 协整保留水平关系:两个非平稳序列的特定线性组合平稳,说明两者存在长期均衡。这是配对交易(见协整与价差构造)的统计基础:不交易收益,交易对均衡的偏离。
两者的选择由问题决定:预测方向用差分,捕捉回归均衡用协整。
实践中的宽松用法与断点
Section titled “实践中的宽松用法与断点”严格平稳在实践中几乎不存在,通常的宽松标准是"均值与方差的缓慢变化可接受"。但要警惕:
- 结构性断点(制度变化、危机、交易规则修改)会让所有平稳性检验失效——ADF 在断点两侧是两个不同过程的混合;
- 检验窗口应滚动、分段做,而不是只看全样本;
- 协整关系同样会断裂,需持续监控,见 OU 过程与半衰期。
量化中的用法
Section titled “量化中的用法”- 回归类研究只对收益率或残差做,不对价格水平做;
- 每个配对/价差入池前跑一遍 ADF + KPSS,且滚动复检;
- 平稳性检验通过 ≠ 关系永存,协整断裂的监控比入池检验更重要。
- ADF 的原假设是存在单位根,KPSS 相反,两者配合使用
- 差分消除趋势但也丢失水平信息,协整保留水平关系
- 结构性断点会让所有平稳性检验失效,需滚动分段检验