← 返回模块
2.3.1.4beta 可读 · 未来付费校验通过内容版本 2026-05-26

非平稳性、单位根与 ARIMA 模型

2.3.1 · 平稳性与 ARMA 模型 · 数学与统计能力

周三下午两点半,你在上海某私募(private fund)的统计套利(statistical arbitrage)团队碰到一桩争执。两只沪深300 成份股里的地产龙头,对数价格(log price)序列各自带强烈趋势,放在同一张图上几乎平行。新来的研究员把两条序列直接做 OLS,跑出 R2=0.92R^2 = 0.92、系数 tt 值 18,准备开仓。资深 PM 一句话拦下他:「先做单位根检验(unit root test, ADF 检验)。」本课要回答这句拦截的依据:平稳(stationary)假设在两类外观相似、本质相反的非平稳过程上各自如何崩溃?当它崩溃时,正确的补救是去趋势还是差分?这套补救把 ARMA 扩展成 ARIMA(p, d, q),而单位根检验就是切换分支的开关。

1. 两类非平稳过程

放下平稳性假设之前,先看清「非平稳」内部的两条分支。第一类叫​​趋势平稳​​(trend-stationary):序列围绕一条确定性时间趋势(deterministic trend)波动,扣掉这条趋势后是平稳的。第二类叫​​差分平稳​​(difference-stationary)或​​单位根过程​​(unit root process):序列里嵌着一个随机游走(random walk)成分,这部分趋势是随机的(stochastic trend),无法靠回归剥离,只能靠差分消除。

Xt=a+bt+Yttrend-stationary (de-trend by OLS on t)vs.Xt=Xt1+Ytdifference-stationary, I(1) (use ΔXt=XtXt1)\underbrace{X_t = a + b t + Y_t}_{\text{trend-stationary (de-trend by OLS on } t \text{)}} \quad \text{vs.} \quad \underbrace{X_t = X_{t-1} + Y_t}_{\text{difference-stationary, } I(1)\text{ (use } \Delta X_t = X_t - X_{t-1}\text{)}}

两式中的 YtY_t 都是平稳 ARMA 过程,图上两条曲线长得像孪生兄弟,可一旦用错方法,结论会南辕北辙。​​伪回归现象​​(spurious regression, Granger & Newbold 1974)正出在这里:把两组互不相干的 I(1)I(1) 序列当作平稳变量直接做 OLS,R2R^2tt 值都会被人为推高,几乎必然得到「显著」的虚假结论。开篇研究员的 R2=0.92R^2 = 0.92 之所以可疑,根源就在这一条。

2. 整阶单整与 ARIMA(p, d, q)

为把「差几次差分能回到平稳」这件事说清楚,引入差分算子 Δ=1L\Delta = 1 - L,其中 LL 是滞后算子(lag operator),LXt=Xt1L X_t = X_{t-1}。于是 ΔXt=XtXt1\Delta X_t = X_t - X_{t-1}ΔdXt=(1L)dXt\Delta^d X_t = (1 - L)^d X_t。称序列 {Xt}\{X_t\}dd ​阶单整​​(integrated of order dd),记作 XtI(d)X_t \sim I(d),当且仅当 ΔdXt\Delta^d X_t 平稳且可逆,而 Δd1Xt\Delta^{d-1} X_t 不平稳。约定 I(0)I(0) 即平稳。随机游走 St=St1+εtS_t = S_{t-1} + \varepsilon_tI(1)I(1) 的原型,因为 ΔSt=εt\Delta S_t = \varepsilon_t 已经是白噪声。这条结构性观察在量化金融里关键:价格水平 PtP_t 通常按 I(1)I(1) 建模,而对数收益 rt=ΔlogPtr_t = \Delta \log P_tI(0)I(0) 建模——这就是量化流水线总从对数收益(log return)、而不是价格本身开始的结构性原因。

把上一课的 ARMA(p, q) 沿这条阶梯上推一层,即得 ARIMA(p, d, q):序列 XtX_t 服从 ARIMA(p, d, q) 当且仅当 ΔdXt\Delta^d X_t 服从平稳、可逆的 ARMA(p, q)。用滞后算子写出来:

ϕ(L)(1L)dXt=c+θ(L)εt\phi(L)\,(1 - L)^d X_t = c + \theta(L)\,\varepsilon_t

其中 ϕ(z)\phi(z)θ(z)\theta(z) 的所有根严格在单位圆外,而额外因子 (1L)d(1 - L)^dz=1z = 1 处贡献 dd 个​​单位根​​——这就是「单整」(integrated)一词的来源。特例对照:ARIMA(p, 0, q) 即 ARMA(p, q);ARIMA(0, 1, 0) 即随机游走;ARIMA(0, 1, 1) 与指数加权移动平均(EWMA)等价。上一课的 Box-Jenkins 工作流整套机械迁移过来:先用单位根检验选 dd,再在 ΔdXt\Delta^d X_t 上识别和估计 (p,q)(p, q)

3. 增广迪基-富勒(ADF)检验

需要一个数据驱动的开关来判定 dd,这就是 ADF 检验。先看 AR(1) 自回归(autoregressive)过程 Xt=ρXt1+εtX_t = \rho X_{t-1} + \varepsilon_t,原假设 H0:ρ=1H_0: \rho = 1 表示存在单位根(XtX_tI(1)I(1)),备择 H1:ρ<1H_1: \rho < 1 表示无单位根(XtX_t 平稳)。两端同时减去 Xt1X_{t-1} 并令 ρ=ρ1\rho' = \rho - 1,得到等价检验 H0:ρ=0H_0: \rho' = 0 vs. H1:ρ<0H_1: \rho' < 0,这是一个左单尾(one-sided lower-tail)检验。「增广」(augmented)版本再加两件事:(a) 加入常数项 α\alpha 与可选的线性时间趋势 βt\beta t,以覆盖趋势平稳备择;(b) 加入 kk 个滞后差分项,用来吸收残差自相关。整条检验回归是:

ΔXt=α+βt+ρXt1+i=1kγiΔXti+ut\Delta X_t = \alpha + \beta t + \rho' X_{t-1} + \sum_{i=1}^{k} \gamma_i\, \Delta X_{t-i} + u_t

滞后阶数 kk 按 AIC / BIC 选,或按经验取 kT1/3k \approx T^{1/3}。​​ADF 统计量​​就是 ρ\rho'tt 比值 ADF=ρ^/SE(ρ^)\mathrm{ADF} = \hat{\rho}' / \mathrm{SE}(\hat{\rho}')。关键事实:在原假设下,该 tt 比值​​不服从​​标准正态或 tt 分布,而是服从一个非标准的​​迪基-富勒分布​​(Dickey-Fuller distribution,可写成布朗运动的泛函;Dickey & Fuller 1979 此处仅列名,不展开推导)。因此必须查 Dickey-Fuller 临界值表,绝不能查标准 tt 表。操作判则:在 5% 显著性水平下,​​当且仅当 ADF 统计量低于临界值时拒绝 H0H_0​​​(即判 XtX_t 平稳)。三种主流设定的 5%-显著性临界值如下,精度到一位小数:

Specification5% critical value
no constant, no trend-1.95
with constant, no trend-2.86
with constant and trend-3.41

把这些值与标准 tt 表的 1.65-1.65 对照,你会发现它们​​更负​​,所以同等条件下 ADF 检验比朴素 tt 检验更难拒绝原假设——这就是「单位根原假设很黏(sticky)」的工程意义。一句标准告诫:当真实 ρ\rho 接近 1 时,ADF 对持续性强的平稳备择检验功效偏低;场上常用的替代是 Phillips-Perron 检验与 KPSS 检验,这里只列名、不展开。

4. 数值演示:一条 I(1)I(1) 序列

把整条流程跑通一次。设 X0=0X_0 = 0εtN(0,1)\varepsilon_t \sim N(0, 1)Xt=Xt1+εtX_t = X_{t-1} + \varepsilon_tT=200T = 200,这是教科书级的随机游走。

  1. 对​​水平​​(level)XtX_t 跑「含常数项、无趋势项」规格的 ADF 回归,得到 ADFX1.2\mathrm{ADF}_X \approx -1.2。该值显然高于 5% 临界值 2.86-2.86,所以​​不拒绝​​单位根原假设——结论:XtX_t 含单位根,可视为 I(1)I(1)
  2. 取一阶差分 ΔXt=XtXt1\Delta X_t = X_t - X_{t-1},对差分序列再跑同一规格的 ADF,得到 ADFΔX14\mathrm{ADF}_{\Delta X} \approx -14。该值远低于 2.86-2.86,所以​​拒绝​​单位根原假设——结论:ΔXt\Delta X_t 平稳,即 ΔXtI(0)\Delta X_t \sim I(0)
  3. 合并(1)、(2):XtX_t 在一阶差分后即回到平稳,故 XtI(1)X_t \sim I(1)d=1d = 1。又因 ΔXt=εt\Delta X_t = \varepsilon_t 本身已是白噪声,(p,q)=(0,0)(p, q) = (0, 0),合适的模型即 ARIMA(0, 1, 0),也就是随机游走本身。

这段流水线就是把 Box-Jenkins 框架从 ARMA 推广到 ARIMA 时最低限度的工作量:先用 ADF 确定 dd,再在差分后的序列上识别 (p,q)(p, q)。下面这个 FormulaExplorer 让你拉动 ϕ\phihh,直观看到 AR(1) 在 hh 步预测下的方差 (1ϕ2h)/(1ϕ2)(1 - \phi^{2h}) / (1 - \phi^2)ϕ1\phi \to 1 时如何发散——这正是单位根极限下方差关于水平的线性增长形式:

Formula Explorer

(1 - phi^(2*h)) / (1 - phi^2)

5. 协整:把两条 I(1)I(1) 拼回 I(0)I(0)

回到开篇的伪回归隐患。若两条 I(1)I(1) 序列 XtX_tYtY_t 之间存在某个非零向量 (1,β)(1, -\beta),使得线性组合 Zt=XtβYtZ_t = X_t - \beta Y_tI(0)I(0),即称二者​​协整​​(cointegration);β\beta 称为协整系数。形式化:

Xt,YtI(1),β0 s.t. Zt=XtβYtI(0)X_t,\, Y_t \sim I(1),\quad \exists\, \beta \neq 0 \ \text{s.t.}\ Z_t = X_t - \beta Y_t \sim I(0)

协整是配对交易(pairs trade)与统计套利在​​价格水平​​上做策略的形式化基础:如果两只股票的对数价格协整,价差 ZtZ_t 是均值回复(mean-reverting)的,当价差远离长期均值时可建立多空头寸期待回归。Engle-Granger 两步法(Engle & Granger 1987 / 2003 年诺贝尔经济学奖)是工程化的标准检验:第一步,把 XXYY 跑 OLS 得到 β^\hat\beta;第二步,对残差 et=Xtβ^Yte_t = X_t - \hat\beta Y_t 做 ADF 检验,但临界值要换成 MacKinnon 的协整版,​​不是​​普通的 ADF 临界值,原假设是「不协整」。多元情形下的 Johansen-VECM 完整处理留给后续高阶模块。开篇研究员若先做这一步,会发现两条价格水平不显著协整,从而正确放弃水平回归、转用一阶差分(对数收益)层面的相关或回归——这就是「先单位根检验,再下结论」的实际意义。

练习

Exercise

某只在售楼盘的月度对数房价 XtX_tT=240T = 240 个观测,使用「含常数项、无趋势项」规格做 ADF 检验,统计量为 1.7-1.7;对一阶差分 ΔXt\Delta X_t 同规格做 ADF,统计量为 8.2-8.2。(a) 写出两次 ADF 检验各自的原假设与备择假设。(b) 把统计量与 5% 临界值 2.86-2.86 比较,分别给出拒绝/不拒绝原假设的判断。(c) 由此判定 XtX_t 的单整阶 dd,在不估计 p,qp, q 的前提下指出合适的 ARIMA(p,d,q)(p, d, q) 家族,并用一句话说明:若不先差分而直接把 XtX_t 与另一只 I(1)I(1) 序列 YtY_t 做水平回归,为什么会陷入伪回归。

提示
原假设是「存在单位根」,即 ρ=0\rho' = 0;备择是 ρ<0\rho' < 0。检验是左单尾,拒绝域在临界值之下。把每个统计量与 2.86-2.86 比一下大小即可。
提示
1.7>2.86-1.7 > -2.86:水平不拒绝,XtI(1)X_t \sim I(1);8.2<2.86-8.2 < -2.86:差分拒绝,ΔXtI(0)\Delta X_t \sim I(0)。故 d=1d = 1,家族是 ARIMA(p,1,q)(p, 1, q);水平回归会被随机游走分量人为推高 R2R^2

6. 通向下一模块

到这里整个 2.3.1 模块闭环:从「什么是平稳」起步,经 AR / MA / ARMA、Box-Jenkins 识别-估计-预测,再到本课对非平稳的补救。你手上的 ARIMA 流水线已能把序列的​​条件均值​​(conditional mean)结构榨干,留下一组看似无序的残差 ε^t\hat{\varepsilon}_t。然而在金融时间序列里,这些残差几乎从来不是同方差:大波动倾向于跟着大波动,小波动跟着小波动——这就是​​波动率聚集​​(volatility clustering),它发生在残差​​不相关​​的前提下,所以 ARIMA 的均值模型抓不到。下一模块 2.3.2「波动率与状态切换模型」(Volatility & Regime Models)从这条残差线索接力,先把 ARCH 引出来,再叠上 GARCH 与 EGARCH 等家族,把条件方差也建模进去。本模块在均值侧打的地基,正是 2.3.2 在波动率侧立柱时所需的承重墙。