第 17b 章 单整、单位根检验的非标准分布与协整
学习目标
读完本章,你应当能够:
- 定义 I(0)、I(1)、I(2) 和单整阶数,判断一个序列需要差分几次才平稳,并用「对差分序列做单位根检验」区分 I(1) 与 I(2)。
- 推导无截距 Dickey–Fuller 统计量分子的极限分布 \(\frac{\sigma_u^2}{2}(\chi^2_1-1)\),说明 DF 统计量为什么不服从正态、为什么必须用专门的临界值。
- 陈述协整的定义,写出向量误差修正模型(VECM),解释误差修正项的经济含义。
- 在协整系数已知和未知两种情形下检验协整:ADF 检验与 Engle–Granger ADF(EG-ADF)检验,并使用正确的临界值。
- 用动态 OLS(DOLS)估计协整系数并做有效的正态推断。
- 把以上工具用于配对交易:选对、估计对冲比、判断回复速度与半衰期,并知道协整检验在实务中的局限。
读前导读
这一章在解决什么问题
第 15b 章告诉你:价格有单位根,不要在价格水平上回归,要差分成收益。本章补上两块。
第一块是理论:为什么 Dickey–Fuller 统计量不服从正态分布。本章用一个只需要中学代数加中心极限定理的推导,证明 DF 回归分子的极限是「卡方减 1」,从而说明专用临界值表从何而来。如果你只想用检验,这部分可以只看结论;如果你想理解「为什么单位根这么特殊」,这是最短的路径。
第二块是实务的核心:协整。两只股票的价格各自都是随机游走,但某个组合(价差)可能是平稳的、会均值回复。这正是配对交易、期现套利、利率曲线交易的统计基础。你在 CFA 二级学过「两个都有单位根的序列,如果协整,回归才有意义」以及 Engle–Granger 检验的名字;本章讲清楚:协整系数已知时怎么检验,未知时为什么要用更严格的临界值,怎么得到对冲比的可靠标准误(DOLS),以及误差修正模型(VECM)里的调整系数如何告诉你「谁向谁回归、回得多快」。
需要先想起来的数学
- 伸缩求和(telescoping sum):\(\sum_{t=1}^T(a_t-a_{t-1})=a_T-a_0\),中间项全部抵消。DF 分子推导的关键一步。例:\((a_1-a_0)+(a_2-a_1)+(a_3-a_2)=a_3-a_0\)。见 第 00 册第 04 章 级数与收敛。
- 卡方分布:若 \(Z\sim N(0,1)\),则 \(Z^2\sim\chi^2_1\),均值 1、方差 2,取值非负、右偏。\(\chi^2_1-1\) 均值为 0,但下界为 −1、右尾很长。
- 依分布收敛与 Slutsky 定理:\(\xrightarrow{d}\) 表示「分布越来越接近某个极限分布」;Slutsky 定理说,一个依分布收敛的量与一个依概率收敛到常数的量相加、相乘,结果的极限就按常数代入计算。连续映射定理说,依分布收敛的量经过连续函数(如平方),极限也跟着变换。见 第 00 册第 07 章 概率中的分析工具。
- 收敛速度:「\(\sqrt T\) 一致」指估计误差约按 \(1/\sqrt T\) 缩小,「超一致」指按 \(1/T\) 缩小,后者快得多。样本扩大 4 倍,前者误差减半,后者降到四分之一。同见第 07 章的大 O 记号。
- 线性组合与秩:三个变量最多两个「线性无关」的协整关系,用的是线性代数里「线性无关」和「秩」的概念。见 第 00 册第 06 章 线性代数速成。
怎么读这一章
核心必读:17.3.2(单整阶数,KC 17.4)、17.4.1–17.4.3(协整定义、VECM、EG-ADF 检验和表 17.1)、17.4.4 的 DOLS(至少读懂它为什么要加超前和滞后)。17.3.3 的推导建议跟着纸笔走一遍,约 15 分钟,能真正理解 DF 分布为何非标准;时间紧可以只读最后两段。17.4.5 的多变量推广第一次可以只看利率三期限的例子。量化实战的配对交易流程和示例二是本章最实用的部分。
17.3 单整阶数与单位根检验统计量的非正态性
17.3.1 比随机游走更平滑的趋势:I(2)
回顾第 15.6 节的带漂移随机游走:
有些经济序列的趋势比随机游走更平滑,相邻两期的变化很小,例如价格水平的对数。一种描述平滑趋势的模型是:让序列的一阶差分服从随机游走,
为什么这种序列看起来「平滑」?因为 \(Y_t\) 是 \(\Delta Y_t\) 的累加,而 \(\Delta Y_t\) 本身已经是随机游走的累加。累加两次,高频的抖动被大幅平均掉,剩下缓慢变化的曲线。
白话解释:小提醒,开头「回顾第 15.6 节」应为原书 15.7 节(本册第 15b 章 15.7.2),15.6 节讲的是滞后阶数选择。
用物理类比理解 I(0)/I(1)/I(2):把 \(u_t\) 想成每期随机的「加速度」冲击。I(1) 序列是「位置 = 冲击的累加」,像醉汉走路,方向随时改;I(2) 序列是「速度 = 冲击的累加,位置 = 速度的累加」,像一艘有惯性的船,速度慢慢漂移,位置画出的是平滑曲线。价格指数(对数)就像那艘船:通胀率(速度)本身在漂移,价格水平(位置)平滑上升。
17.3.2 单整阶数
术语:含随机游走趋势的序列称为一阶单整(integrated of order one),记作 I(1);形如 (17.17) 的称为二阶单整,记作 I(2);没有随机趋势、平稳的序列记作 I(0)。单整阶数(order of integration)就是使序列平稳所需差分的次数。
Key Concept 17.4(单整阶数、差分与平稳性)
- \(Y_t\) 为 I(1):\(Y_t\) 有单位自回归根,\(\Delta Y_t\) 平稳;
- \(Y_t\) 为 I(2):\(\Delta Y_t\) 有单位自回归根,\(\Delta^2Y_t\) 平稳;
- \(Y_t\) 为 I(\(d\)):须差分 \(d\) 次才能消除随机趋势,即 \(\Delta^dY_t\) 平稳。
如何检验 I(2) 与 I(1)。如果 \(Y_t\) 是 I(2),则 \(\Delta Y_t\) 是 I(1),有单位根;如果 \(Y_t\) 是 I(1),则 \(\Delta Y_t\) 平稳。所以只需对 \(\Delta Y_t\) 做第 15b 章的 ADF 单位根检验:拒绝「\(\Delta Y_t\) 有单位根」,就拒绝了 I(2),支持 I(1)。检验顺序是从高阶往低阶:先检验 \(\Delta Y_t\),再检验 \(Y_t\)。
例:价格水平与通胀。通胀是价格水平的增长率,季度数据年化后
原书图 17.1(1960–2017)印证了这一点:(a) PCE 价格指数的对数从约 2.75 平滑上升到约 4.75,长期趋势非常平滑;(b) 通胀率在约 \(-6\%\) 到 \(12\%\) 之间波动,趋势的起伏明显大得多。平滑的趋势是 I(2) 序列的典型外观。
对量化读者,一个直接的对应是:对数价格通常视为 I(1),收益(对数价格的差分)视为 I(0)。很少有资产价格表现为 I(2);如果你的检验说某只股票的对数价格是 I(2),多半是样本中有结构断点或检验设定有问题。
17.3.3 为什么单位根检验统计量不服从正态分布
第 15.7 节(本册第 15b 章)强调过:回归元非平稳时,大样本正态近似不适用。Dickey–Fuller 回归在单位根原假设下,回归元 \(Y_{t-1}\) 是随机游走,正好非平稳。这就是 DF 统计量分布非标准的根源。
看最简单的情形:\(\Delta Y_t\) 对 \(Y_{t-1}\) 回归,无截距,原假设下 \(\Delta Y_t=u_t\)。OLS 估计量 \(\hat\delta=\sum Y_{t-1}\Delta Y_t/\sum Y_{t-1}^2\),乘以 \(T\) 后写成
注意这里的缩放:平稳回归中 \(\hat\delta\) 以 \(\sqrt T\) 速度收敛,这里却要乘 \(T\) 才有非退化的极限。这叫超一致(superconsistency),原因是随机游走的方差随时间线性增长,回归元的「信号」比平稳情形强得多。
推导拆解:为什么分母要除以 \(T^2\)、分子除以 \(T\)。
- 先看 (17.19) 本身:\(T\hat\delta=T\cdot\frac{\sum Y_{t-1}\Delta Y_t}{\sum Y_{t-1}^2}\),分子分母同除以 \(T^2\),分子变成 \(\frac1T\sum Y_{t-1}\Delta Y_t\),分母变成 \(\frac1{T^2}\sum Y_{t-1}^2\)。这只是代数变形。
- 为什么这样缩放才对:\(Y_{t-1}\) 的方差约为 \(t\sigma_u^2\),所以 \(E\sum_tY_{t-1}^2\approx\sigma_u^2\sum_tt\approx\sigma_u^2T^2/2\),按 \(T^2\) 增长。除以 \(T^2\) 才得到一个不发散、也不趋于 0 的量。
- 分子 \(\sum Y_{t-1}u_t\) 的方差约为 \(\sum_tE(Y_{t-1}^2)\sigma_u^2\approx\sigma_u^4T^2/2\),标准差按 \(T\) 增长,所以除以 \(T\)。
- 于是 \(\hat\delta\) 本身 \(\approx\frac{O(T)}{O(T^2)}=O(1/T)\),乘 \(T\) 才稳定。对比平稳情形:分母按 \(T\) 增长,分子按 \(\sqrt T\) 增长,\(\hat\delta=O(1/\sqrt T)\)。
这里 \(O(\cdot)\) 读作「量级为」。直观说法:随机游走的 \(Y_{t-1}\) 在样本中游走得很远,横轴拉得很宽,斜率自然估得很准。
分子。在附加假设 \(Y_0=0\) 下(原书习题 17.5),
推导只用一个代数恒等式。由 \(Y_t=Y_{t-1}+\Delta Y_t\) 得 \(Y_t^2=Y_{t-1}^2+2Y_{t-1}\Delta Y_t+(\Delta Y_t)^2\),所以
现在逐项取极限:
- 第二项:原假设下 \(\Delta Y_t=u_t\) 序列不相关、方差有限,由大数定律 \(\frac1T\sum(\Delta Y_t)^2\xrightarrow{p}\sigma_u^2\)。
- 第一项:\(Y_T/\sqrt T=\sqrt T\cdot\frac1T\sum_{t=1}^Tu_t\),由中心极限定理 \(\xrightarrow{d}N(0,\sigma_u^2)\),可写成 \(\sigma_uZ\),\(Z\) 为标准正态。
由连续映射定理和 Slutsky 定理(18.2 节),方括号 \(\xrightarrow{d}\sigma_u^2(Z^2-1)\)。而 \(Z^2\sim\chi^2_1\),因此
分子的极限是「卡方减 1」的倍数,不是正态。它偏斜:\(\chi^2_1-1\) 的取值下界是 \(-1\),右尾很长,而且有约 68% 的概率为负(\(\Pr(\chi^2_1<1)\approx0.683\))。
白话解释:这个结果直观上说的是什么?\((Y_T/\sqrt T)^2\) 是「终点离起点有多远」的平方,\(\frac1T\sum(\Delta Y_t)^2\) 是「每步步长的平方的平均」。随机游走大多数时候终点离起点不太远(\(Z^2<1\) 的概率 68%),所以分子多半为负,\(\hat\delta\) 多半为负,即 \(\hat\beta_1=1+\hat\delta\) 多半小于 1。这就是第 15b 章所说「单位根下 AR 系数向下偏」的数学来源,也解释了 DF 分布为何整体左移:即使真值恰好是 1,估计值也倾向于看起来「有点均值回复」。
金融直觉:这对研究者是一个系统性的陷阱。拿任意一条价格序列跑 AR(1),大概率会得到 \(\hat\beta_1<1\),看上去「会回归」。如果用正态临界值判断,很容易得出「这个价格均值回复、可以做反转」的错误结论。
分母同样异常。平稳情形下 \(\frac1T\sum Y_{t-1}^2\) 收敛到常数;随机游走下它不收敛,要除以 \(T^2\) 才有极限,而 \(\frac1{T^2}\sum Y_{t-1}^2\) 即使在大样本中仍是随机变量,并与分子联合依分布收敛(极限可以用布朗运动的积分表示,属于高级时间序列内容,见 Hamilton 1994 第 17 章)。
分子分母的这种非常规联合分布,导致 DF 统计量的分布非标准,所以 ADF 检验需要专门的临界值表(原书表 15.4:含截距时 10%、5%、1% 临界值为 \(-2.57\)、\(-2.86\)、\(-3.43\);含截距和时间趋势时为 \(-3.12\)、\(-3.41\)、\(-3.96\))。最常见的错误是把 DF 的 t 统计量拿去和 \(\pm1.96\) 或 \(-1.645\) 比较。本章示例一会用模拟显示这样做的真实拒绝率高达 46%。
原书习题 17.7 是同一现象的另一个版本:\(\Delta Y_t=u_t\) 为 i.i.d. \(N(0,1)\),把 \(Y_t\) 对 \(X_t=\Delta Y_{t+1}\) 回归,可以证明 \(\hat\beta\xrightarrow{d}\frac12(\chi_1^2-1)\)。
17.4 协整
17.4.1 共同随机趋势
两个或多个含随机趋势的序列,有时长期紧密同行,像是共享同一个趋势成分。原书图 15.3:90 天与 10 年期美国国债利率在 1960 年代都低,1970 年代都上升,1980 年代初同时见顶,1990 年代同时下降。但两者之差(期限利差,图 15.3b)看不出趋势。相减能消掉各自的趋势,说明它们有共同随机趋势(common stochastic trend)。
Key Concept 17.5(协整) 设 \(X_t,Y_t\) 都是 I(1)。若对某个系数 \(\theta\),\(Y_t-\theta X_t\) 为 I(0),则称 \(X_t\) 与 \(Y_t\) 协整(cointegrated),\(\theta\) 称为协整系数(cointegrating coefficient)。协整意味着两者有相同的随机趋势,作差 \(Y_t-\theta X_t\) 把共同趋势消掉。
这个正式定义来自 Clive Granger。用一个简单模型可以看清结构:
17.4.2 向量误差修正模型
若 \(X_t,Y_t\) 协整,第 15b 章的建议「对 I(1) 变量差分后建模」就丢掉了信息:差分消去了趋势,也消去了两者水平之间的长期关系。正确做法是对一阶差分建 VAR,同时把 \(Y_{t-1}-\theta X_{t-1}\) 作为额外回归元加进去:
\(Y_t-\theta X_t\) 称为误差修正项(error correction term)。两变量共享趋势,若某一期相距过远,预期会随时间靠拢,「误差」被「修正」。(17.22)(17.23) 合称向量误差修正模型(vector error correction model,VECM)。在 VECM 中,误差修正项的过去值帮助预测 \(\Delta Y_t\) 和/或 \(\Delta X_t\)。
系数 \(\alpha_1,\alpha_2\) 称为调整系数或载荷。若 \(Y_{t-1}-\theta X_{t-1}\) 偏高(\(Y\) 相对太贵),要恢复均衡,需要 \(Y\) 下跌或 \(X\) 上涨,所以通常 \(\alpha_1<0\) 和/或 \(\alpha_2>0\)。\(\alpha\) 的大小决定回复速度:\(|\alpha|\) 越大,偏离消失越快。
推导拆解:调整系数与价差回复速度的关系。记价差 \(z_t=Y_t-\theta X_t\)。忽略差分滞后项,用 (17.22) 减去 \(\theta\) 倍的 (17.23):
\[\Delta z_t=\Delta Y_t-\theta\Delta X_t=(\alpha_1-\theta\alpha_2)z_{t-1}+\text{噪声}.\]所以 \(z_t=(1+\alpha_1-\theta\alpha_2)z_{t-1}+\text{噪声}\),价差是 AR(1),系数 \(\phi=1+\alpha_1-\theta\alpha_2\)。要平稳,需要 \(\phi<1\),即 \(\alpha_1-\theta\alpha_2<0\)。半衰期 \(=\ln0.5/\ln\phi\)。金融直觉:\(\alpha_1\) 和 \(\alpha_2\) 分别回答「谁来修正偏离」。在期现套利中,若 \(\alpha_{期货}\) 显著、\(\alpha_{现货}\approx0\),说明价格发现在现货、期货跟随;反之亦然。这在研究 ADR 与原股、A 股与 H 股谁主导定价时是标准分析。在配对交易中,若只有一只股票在调整,那么持仓风险主要集中在那一条腿上。
把习题 17.10 的简单模型代入可以亲手推出 VECM。\(\Delta X_t=v_{2t}\),而
17.4.3 如何判断两个变量是否协整
原书强调三种手段应同时使用:专业知识与经济理论、作图看是否有共同随机趋势、统计检验。
理论例:利率期限结构的预期理论。它认为 10 年期国债利率等于未来 10 年 3 个月国库券利率预期值的平均(加一个期限溢价)。所以若 3 个月利率有随机游走趋势,10 年利率会继承这一趋势(原书习题 17.2)。具体地,设 \(k\) 期利率 \(R_{kt}=\frac1k\sum_{i=0}^{k-1}R1_{t+i|t}+e_t\),\(e_t\) 为 I(0) 的期限溢价。若 \(R1_t\) 是随机游走,则对所有 \(i\) 有 \(R1_{t+i|t}=R1_t\),于是 \(R_{kt}=R1_t+e_t\),两利率协整,协整系数为 1。图上两利率看起来是 I(1)、利差看起来是 I(0),与理论吻合。
检验原理。若协整系数为 \(\theta\),则 \(Y_t-\theta X_t\) 平稳;否则它是 I(1)。于是「不协整」的原假设等价于「\(Y_t-\theta X_t\) 有单位根」,拒绝即可视为协整。细节取决于 \(\theta\) 是否已知。
情形一:\(\theta\) 已知。直接构造 \(z_t=Y_t-\theta X_t\),对它做 ADF 单位根检验,使用普通 ADF 临界值。
例:1962–2017 年 10 年期与 90 天利率之差(\(\theta=1\)),含截距、AIC 选 6 阶滞后,ADF \(=-4.13<-3.43\)(表 15.4 的 1% 临界值),在 1% 水平拒绝「无协整」。
情形二:\(\theta\) 未知——Engle–Granger ADF 检验(Engle & Granger 1987)。两步:
- 用 OLS 估计协整回归
\[Y_t=\alpha+\theta X_t+z_t;\tag{17.24}\]
- 对残差 \(\hat z_t\) 做含截距、无时间趋势的 DF t 检验(实际中常加差分滞后,即 ADF)。
由于第一步估计了 \(\theta\),第二步要用不同的临界值。原因是 OLS 会挑选使残差方差最小的 \(\hat\theta\),这让残差看起来比真实的 \(z_t\) 更「平稳」,DF 统计量系统性地偏负。如果仍用普通 ADF 临界值,就会太容易拒绝「无协整」。
白话解释:设想两只其实不协整的股票。OLS 在所有可能的对冲比里,挑出那个让价差在样本内波动最小、看上去最「贴着均值」的。这相当于「在很多条曲线中挑一条最像平稳的」——和第 15b 章「看图挑日期」是同一类数据窥探。即使原假设为真,被挑出来的残差也比随便一条随机游走更像平稳序列,所以 ADF 统计量更负。表 17.1 的临界值就是在原假设下模拟「挑过之后」的 DF 分布得到的。X 越多,可挑的组合越多,临界值越负。
表 17.1 EG-ADF 统计量的临界值(取自 Fuller 1976、Phillips & Ouliaris 1990,按 Hansen 1992 的建议使其对 \(X,Y\) 是否含漂移都适用):
| (17.24) 中 X 的个数 | 10% | 5% | 1% |
|---|---|---|---|
| 1 | −3.12 | −3.41 | −3.96 |
| 2 | −3.52 | −3.80 | −4.36 |
| 3 | −3.84 | −4.16 | −4.73 |
| 4 | −4.20 | −4.49 | −5.07 |
第一行用于两个变量的情形,其余行用于多个协整变量。所有临界值都比普通 ADF 更负,X 越多越负。
17.4.4 协整系数的估计:动态 OLS
若变量协整,(17.24) 的 OLS 估计量 \(\hat\theta\) 一致,而且是超一致的(以 \(T\) 而非 \(\sqrt T\) 的速度收敛)。但它一般不服从正态分布,基于它的 t 统计量,无论是否用 HAC 标准误,推断都可能误导。原因与上一节相同:回归元 \(X_t\) 是 I(1);而且 \(X_t\) 的变化可能与 \(z_t\) 相关,带来二阶偏差。
为此发展出若干估计量,最简便的是动态 OLS(dynamic OLS,DOLS,Stock & Watson 1993):在 (17.24) 中加入 \(\Delta X_t\) 的过去、当期和未来值(超前与滞后,leads and lags):
白话解释:为什么要加未来的 \(\Delta X\)?协整回归的误差 \(z_t\) 可能与 \(X\) 的新息在不同时间相关:既可能与过去的 \(\Delta X\) 相关(\(Y\) 对 \(X\) 的变化反应有滞后),也可能与未来的 \(\Delta X\) 相关(\(Y\) 先动、\(X\) 后跟,比如期货领先现货)。这和第 16 章「严格外生」的问题是一回事。DOLS 的做法是:把 \(z_t\) 中能被 \(\Delta X\) 过去、现在、未来解释的部分都显式放进回归,剩下的 \(u_t\) 与 \(X\) 的整个路径无关,相当于人为造出了严格外生,于是标准的正态推断恢复有效。
直觉:\(z_t\) 与 \(\Delta X\) 的相关性是 OLS 非正态的来源,加入 \(\Delta X\) 的超前和滞后,把这部分相关「吸收」进回归,剩下的误差 \(u_t\) 与 \(X\) 的整个路径近似无关。若变量协整,DOLS 估计量在大样本中有效,基于 HAC 标准误的 \(\theta\) 和 \(\delta\) 的推断有效,t 统计量大样本服从标准正态。注意 \(u_t\) 一般序列相关,HAC 不可省略。
例:90 天利率对 10 年利率的 DOLS,\(p=4\),\(\hat\theta=1.02\),HAC 标准误(\(m=5\))为 0.05,在 10% 水平不能拒绝 \(\theta=1\)。这与「利差平稳」的发现一起,与期限结构的预期理论一致。
原书习题 17.6 帮助理解 DOLS 的结构:把 \(Y_t=2.0+1.5X_{t+1}+0.9X_t-0.3X_{t-1}+u_t\) 改写成 (17.25) 的形式。利用 \(X_{t+1}=X_t+\Delta X_{t+1}\)、\(X_{t-1}=X_t-\Delta X_t\),得 \(Y_t=2.0+2.1X_t+1.5\Delta X_{t+1}+0.3\Delta X_t+u_t\),所以 \(\theta=1.5+0.9-0.3=2.1\),\(\delta_{-1}=1.5\),\(\delta_0=0.3\),\(\delta_1=0\)。协整系数是各期水平系数之和,即长期乘数。
17.4.5 推广到多个协整变量
三个 I(1) 变量 \(Y_t,X_{1t},X_{2t}\),若 \(Y_t-\theta_1X_{1t}-\theta_2X_{2t}\) 平稳,则它们协整。三个及以上变量可能存在多个协整关系。
例:3 个月(R3m)、1 年(R1y)、10 年(R10y)利率。若三者都是 I(1),期限结构理论表明它们协整,协整关系为 \(R10y_t-R3m_t\) 与 \(R1y_t-R3m_t\)。\(R10y_t-R1y_t\) 也是协整关系,但它是前两者之差,完全共线,不提供新信息。三个变量最多两个线性无关的协整关系,对应一个共同随机趋势。
白话解释:一个计数规则:\(n\) 个 I(1) 变量,若有 \(r\) 个线性无关的协整关系,就有 \(n-r\) 个共同随机趋势。直观上,每个协整关系「消掉」一个独立的随机趋势。\(r\) 不可能等于 \(n\):如果 \(n\) 个变量的 \(n\) 个独立组合都平稳,那每个变量本身(作为这些组合的线性组合)也平稳,与 I(1) 矛盾。
三个利率、两个协整关系、一个共同趋势,对应「整条曲线一起上下平移」的水平因子;两个平稳的利差对应斜率和曲率。这与第 14 章利率 PCA 的「水平、斜率、曲率」是同一幅图的两种视角。
多变量 EG-ADF:第一步回归同时放入 \(X_{1t},X_{2t}\),第二步临界值按表 17.1 中对应 X 个数的行。多变量 DOLS:每个 X 的水平值,加上各自一阶差分的超前和滞后。多个协整关系的系统估计(Johansen 方法等)见 Hamilton(1994);第 06 册(Tsay)第 08b 章从多元时间序列角度介绍协整 VAR 与 Johansen 检验,可与本章对照。
17.4.6 实践提醒
即使理论没有给出协整系数,也要检查估计出的协整关系在实际中说不说得通。原书特别提醒:协整检验可能误导。它既可能过多地错误拒绝「无协整」,也常常在应该拒绝时拒绝不了(功效低,尤其是回复很慢、样本较短时)。因此尤其要依靠经济理论、制度知识和常识。
专栏:2003 年诺贝尔奖与协整
2003 年诺贝尔经济学奖授予 Robert Engle 与 Clive Granger。Granger 的贡献之一是研究随机趋势:两个毫无关系、各自含随机趋势的序列,按 t 统计量和 \(R^2\) 看可能显著相关,这就是伪回归(spurious regression,见第 14、15 章)。
白话解释:这里「第 14、15 章」指原书编号;在本册中伪回归的讨论在第 15b 章 15.7.3 节,第 14 章是大数据预测,与伪回归无关。他进一步发现,当变量确实共享共同趋势时,用误差修正模型可以揭示有意义的长期关系。协整分析如今是宏观计量的标准工具。Engle 的贡献 ARCH 见 17c 章。
量化实战
1. 本章内容在量化中的用途
配对交易与统计套利的理论基础。 两只股票的对数价格都是 I(1),若某个线性组合(价差)是 I(0),价差就会均值回复:偏离过大时做空贵的、做多便宜的,等待回归。标准筛选流程正是 Engle–Granger 两步法:
- 用 OLS 估计 \(\ln P^A_t=\alpha+\theta\ln P^B_t+z_t\),\(\hat\theta\) 就是对冲比;
- 对残差 \(\hat z_t\) 做 ADF 检验,用表 17.1 的临界值(或软件给出的 MacKinnon 协整临界值),不能用普通 ADF 临界值;
- 用 DOLS 得到 \(\theta\) 的可靠标准误,判断对冲比是否稳定、是否等于理论值(例如期现套利中 \(\theta=1\));
- 用 VECM 的 \(\alpha\) 或价差 AR(1) 系数 \(\phi\) 估计回复速度,半衰期 \(=\ln0.5/\ln\phi\)。半衰期决定持仓周期和信号窗口。
协整检验的局限在实务中更突出。 在几千只股票里两两做协整检验,\(5\%\) 的假阳性意味着成千上万个「伪配对」;样本内协整的配对样本外常常失效(结构变化、并购、行业轮动)。原书「依靠经济理论和常识」的提醒对应实务中的做法:只在同行业、同产业链、同一标的的不同合约(期现、跨期、ADR 与原股)之间找对,并做样本外检验。
利率曲线交易。 期限结构的协整关系(各期限利率共享一个随机趋势,利差平稳)是曲线陡峭化/平坦化交易的基础;三个利率的两个协整关系对应「斜率」和「曲率」。
伪回归的警示。 把两个价格水平直接回归、看 t 值和 \(R^2\) 来「发现关系」,是新手最常犯的错误。价格水平之间的回归,除非协整,否则没有意义;应该用收益(差分)或先检验协整。
2. 示例一:用模拟看清 Dickey–Fuller 分布
import numpy as np
rng = np.random.default_rng(1)
T, nsim = 500, 20000
Td, tstat, tstat_c = np.empty(nsim), np.empty(nsim), np.empty(nsim)
for k in range(nsim):
u = rng.standard_normal(T)
Y = np.cumsum(u) # 随机游走,Y_0 = 0
ylag, dy = np.r_[0.0, Y[:-1]], u
# 无截距 DF 回归 dY_t = delta * Y_{t-1} + e
d = (ylag @ dy) / (ylag @ ylag)
e = dy - d * ylag
se = np.sqrt(e @ e / (T - 1) / (ylag @ ylag))
Td[k], tstat[k] = T * d, d / se
# 含截距 DF 回归
X = np.c_[np.ones(T), ylag]
b, *_ = np.linalg.lstsq(X, dy, rcond=None)
e = dy - X @ b
V = (e @ e / (T - 2)) * np.linalg.inv(X.T @ X)
tstat_c[k] = b[1] / np.sqrt(V[1, 1])
q = [0.01, 0.05, 0.10, 0.50]
print("分位数 1% 5% 10% 50%")
print("T*delta ", np.round(np.quantile(Td, q), 2))
print("DF t(无截距) ", np.round(np.quantile(tstat, q), 2))
print("DF t(含截距) ", np.round(np.quantile(tstat_c, q), 2))
print("N(0,1) ", [-2.33, -1.64, -1.28, 0.0])
print("含截距时用 -1.64 作单侧 5% 临界值的真实拒绝率:", np.mean(tstat_c < -1.645).round(3))
输出:
分位数 1% 5% 10% 50%
T*delta [-13.38 -8.07 -5.7 -0.88]
DF t(无截距) [-2.56 -1.95 -1.62 -0.51]
DF t(含截距) [-3.46 -2.88 -2.57 -1.57]
N(0,1) [-2.33, -1.64, -1.28, 0.0]
含截距时用 -1.64 作单侧 5% 临界值的真实拒绝率: 0.464
模拟得到的含截距 DF 分位数 \(-3.46/-2.88/-2.57\) 与原书表 15.4 的 \(-3.43/-2.86/-2.57\) 几乎一致。整个分布明显左移,中位数是 \(-1.57\) 而不是 0。用正态临界值 \(-1.645\) 做检验,即使序列真的是随机游走,也有 46% 的概率得出「平稳」的错误结论。\(T\hat\delta\) 的中位数为负、左尾长,正是 (17.21) 中 \(\chi^2_1-1\) 偏斜性的体现。
3. 示例二:配对交易的完整流程
模拟两只股票:\(x\) 是共同随机趋势,价差 \(z\) 是 \(\phi=0.95\) 的 AR(1)(真实半衰期约 13.5 天),真实对冲比 \(\theta=1.3\)。另有一只与之无关的股票 \(w\)。
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller, coint
from statsmodels.tsa.vector_ar.vecm import VECM
rng = np.random.default_rng(7)
T = 1000
# 两只股票的对数价格:共享随机趋势 x,价差 z 是 AR(1)(phi=0.95,半衰期约 13.5 天)
x = np.cumsum(0.0002 + 0.015 * rng.standard_normal(T)) + np.log(20)
z = np.zeros(T)
for t in range(1, T):
z[t] = 0.95 * z[t-1] + 0.01 * rng.standard_normal()
theta_true = 1.3
y = 0.5 + theta_true * x + z
w = np.cumsum(0.015 * rng.standard_normal(T)) + np.log(20) # 一只无关股票
# 1) 伪回归:两条独立随机游走
spur = sm.OLS(w, sm.add_constant(x)).fit()
print(f"伪回归 w~x: slope={spur.params[1]:.2f}, t={spur.tvalues[1]:.1f}, R2={spur.rsquared:.2f}")
# 2) Engle-Granger 两步法
step1 = sm.OLS(y, sm.add_constant(x)).fit()
zhat = step1.resid
adf_stat = adfuller(zhat, regression="c", autolag="AIC", result_object=False)[0]
print(f"EG 第一步 theta_hat={step1.params[1]:.4f}; 残差 ADF={adf_stat:.2f}"
f"(EG 5% 临界值 -3.41,普通 ADF 5% 临界值 -2.86)")
t_eg, p_eg, cv = coint(y, x, trend="c")
print(f"statsmodels.coint: t={t_eg:.2f}, p={p_eg:.4f}, 5%临界值={cv[1]:.2f}")
t_w, p_w, _ = coint(w, x, trend="c")
print(f"无关股票 w 与 x: EG t={t_w:.2f}, p={p_w:.2f}")
# 3) DOLS:加入 dx 的 p 个超前与滞后,HAC 标准误
p = 4
d = pd.DataFrame({"y": y, "x": x})
d["dx"] = d["x"].diff()
for j in range(-p, p + 1):
d[f"dx_{j}"] = d["dx"].shift(j) # shift(-j) 是超前
d = d.dropna()
Xd = sm.add_constant(d[["x"] + [f"dx_{j}" for j in range(-p, p + 1)]])
dols = sm.OLS(d["y"], Xd).fit(cov_type="HAC", cov_kwds={"maxlags": 10})
th, se = dols.params["x"], dols.bse["x"]
print(f"DOLS theta={th:.4f}, HAC se={se:.4f}, 检验 theta=1.3 的 t={(th-1.3)/se:.2f}")
# 4) VECM:误差修正系数与半衰期
data = np.c_[y, x]
vecm = VECM(data, k_ar_diff=1, coint_rank=1, deterministic="ci").fit()
alpha = vecm.alpha.ravel()
beta = vecm.beta.ravel()
print("VECM beta(归一化):", np.round(beta / beta[0], 4), " alpha:", np.round(alpha, 4))
# 价差 z 的 AR(1) 系数与半衰期
phi = sm.OLS(zhat[1:], sm.add_constant(zhat[:-1])).fit().params[1]
print(f"价差 AR(1) phi={phi:.3f}, 半衰期 = ln(0.5)/ln(phi) = {np.log(0.5)/np.log(phi):.1f} 天")
输出:
伪回归 w~x: slope=-0.04, t=-5.3, R2=0.03
EG 第一步 theta_hat=1.2872; 残差 ADF=-4.98(EG 5% 临界值 -3.41,普通 ADF 5% 临界值 -2.86)
statsmodels.coint: t=-4.98, p=0.0002, 5%临界值=-3.34
无关股票 w 与 x: EG t=-2.50, p=0.28
DOLS theta=1.2865, HAC se=0.0092, 检验 theta=1.3 的 t=-1.46
VECM beta(归一化): [ 1. -1.2833] alpha: [-0.0532 -0.0032]
价差 AR(1) phi=0.952, 半衰期 = ln(0.5)/ln(phi) = 14.0 天
逐项解读:
- 伪回归:两条独立随机游走,斜率的 t 值竟有 \(-5.3\)。这就是 Granger 警告的现象。但 EG 检验正确地不拒绝「无协整」(\(p=0.28\))。
- EG 检验:残差 ADF \(=-4.98\),远低于表 17.1 的 \(-3.41\)。
statsmodels.coint给出的 5% 临界值 \(-3.34\) 来自 MacKinnon 的响应面,未做 Hansen 的漂移调整,所以比原书表 17.1 略宽松;两者差别不大,保守起见可用原书数值。 - DOLS:\(\hat\theta=1.2865\),HAC 标准误 0.0092,检验真值 1.3 的 \(t=-1.46\),不拒绝,推断有效。
- VECM:归一化后协整向量 \((1,-1.283)\)。调整系数 \(\alpha_y=-0.053\) 显著为负、\(\alpha_x\approx0\):价差偏高时由 \(y\) 下跌来修正,与模拟设定一致(\(x\) 是纯随机游走)。
- 半衰期:价差 AR(1) 系数 0.952,半衰期 14 天,与真实值 13.5 天吻合。\(\alpha_y\approx\phi-1=-0.05\),两种度量是一致的。
实盘中,下一步是用 \(\hat z_t\) 的滚动均值和标准差构造 z 分数,设定开平仓阈值,并在样本外检验。注意对冲比和均值标准差都必须只用当时可得的数据估计,否则会引入前视偏差。
本章小结
单整阶数是使序列平稳所需的差分次数:随机游走为 I(1),其差分为随机游走的序列为 I(2),对数价格水平常为 I(2)(宏观价格指数)或 I(1)(资产价格),检验 I(2) 对 I(1) 只需对差分序列做单位根检验。DF 统计量不服从正态,根源在于非平稳回归元:分子收敛到 \(\frac{\sigma^2}{2}(\chi^2_1-1)\),分母不收敛到常数,必须使用专门临界值。两个 I(1) 序列若存在平稳的线性组合 \(Y_t-\theta X_t\),就是协整的,意味着共享随机趋势;协整变量用 VECM 建模,误差修正项帮助预测差分。\(\theta\) 已知时对 \(Y-\theta X\) 做 ADF;\(\theta\) 未知时用 EG-ADF 两步法和表 17.1 的临界值;\(\theta\) 的推断用 DOLS 加 HAC 标准误。协整检验在实践中既会误拒也会漏拒,应以经济理论和常识为依托。
| 概念 | 公式 / 要点 |
|---|---|
| I(\(d\)) | \(\Delta^dY_t\) 平稳;I(2) vs I(1):对 \(\Delta Y_t\) 做 ADF |
| DF 分子极限 | \(\frac1T\sum Y_{t-1}\Delta Y_t\xrightarrow{d}\frac{\sigma_u^2}{2}(\chi^2_1-1)\) |
| DF 临界值(含截距) | 10%/5%/1%:\(-2.57/-2.86/-3.43\) |
| 协整 | \(X,Y\sim\) I(1),\(Y-\theta X\sim\) I(0) |
| VECM | \(\Delta Y_t=\cdots+\alpha_1(Y_{t-1}-\theta X_{t-1})+u_{1t}\) |
| EG-ADF | OLS 协整回归 → 残差 DF;两变量 5% 临界值 \(-3.41\) |
| DOLS | \(Y_t=\beta_0+\theta X_t+\sum_{j=-p}^p\delta_j\Delta X_{t-j}+u_t\),HAC 标准误 |
| 半衰期 | \(\ln0.5/\ln\phi\),\(\phi\) 为价差 AR(1) 系数 |
| 多变量 | \(n\) 个 I(1) 变量最多 \(n-1\) 个独立协整关系 |
练习
基础
- 什么是单位根?如何检验?如果 ADF 检验不拒绝单位根,能否断定序列有单位根?(原书复习题 17.5) 提示:不能,可能是功效不足;尤其根接近 1(如 0.98)时。
- 永久收入理论认为对数 GDP 与对数消费协整,协整系数为 1。说明如何用作图和统计检验考察这一点。(原书复习题 17.3) 答案要点:画 \(\ln Y\)、\(\ln C\) 和 \(\ln Y-\ln C\);\(\theta=1\) 已知,对 \(\ln Y-\ln C\) 做 ADF,用普通 ADF 临界值。
- 验证式 (17.20)。(原书习题 17.5) 提示:\(Y_{t-1}\Delta Y_t=\frac12[Y_t^2-Y_{t-1}^2-(\Delta Y_t)^2]\),求和伸缩。
- (原书习题 17.6)把 \(Y_t=2.0+1.5X_{t+1}+0.9X_t-0.3X_{t-1}+u_t\) 写成 DOLS 形式,求 \(\theta,\delta_{-1},\delta_0,\delta_1\)。若 \(X\) 为 I(1)、\(u\) 为 I(0),\(X,Y\) 是否协整?若 \(u\) 为 I(1) 呢? 答案要点:\(\theta=2.1\),\(\delta_{-1}=1.5\),\(\delta_0=0.3\),\(\delta_1=0\);前者协整,后者不协整。
- 某研究员对两只股票的对数价格做 EG 两步法,残差 ADF \(=-3.0\),他按普通 ADF 5% 临界值 \(-2.86\) 宣布协整。错在哪里? 提示:应用表 17.1 第一行,5% 临界值 \(-3.41\),不能拒绝无协整。
进阶
- (原书习题 17.2)期限结构:\(R_{kt}=\frac1k\sum_{i=0}^{k-1}R1_{t+i|t}+e_t\)。(a) \(R1\) 为随机游走时证明 \(R_{kt}=R1_t+e_t\),二者协整,协整系数为 1。(b) 若 \(\Delta R1_t=0.5\Delta R1_{t-1}+u_t\),是否仍协整?(c) 若 \(R1_t=0.5R1_{t-1}+u_t\) 呢? 提示:(b) \(R1_{t+i|t}\) 等于 \(R1_t\) 加上一项依赖 \(\Delta R1_t\) 的平稳项,仍协整、系数为 1;(c) \(R1\) 平稳,协整概念不适用。
- (原书习题 17.10)由 \(Y_t=\theta X_t+v_{1t}\)、\(X_t=X_{t-1}+v_{2t}\) 推导 VECM,写出 \(\alpha_1,\alpha_2\)。若 \(v_{1t}\) 是 AR(1):\(v_{1t}=\rho v_{1,t-1}+\varepsilon_t\),\(\alpha_1\) 变成多少? 提示:白噪声时 \(\alpha_1=-1,\alpha_2=0\);AR(1) 时 \(\alpha_1=\rho-1\)。
- (原书习题 17.7)\(\Delta Y_t=u_t\) i.i.d. \(N(0,1)\),\(Y_t\) 对 \(X_t=\Delta Y_{t+1}\) 回归(无截距)。证明 \(\hat\beta\xrightarrow{d}\frac12(\chi^2_1-1)\)。 提示:\(\hat\beta=\sum Y_tu_{t+1}/\sum u_{t+1}^2\),分子用 (17.20) 的技巧,分母除以 \(T\) 收敛到 1。
- 修改示例二:把价差的 AR 系数改为 0.995(半衰期约 140 天),\(T=500\),重复 500 次,统计 EG 检验在 5% 水平拒绝「无协整」的比例。结论说明了什么? 提示:功效很低,多数情况下检验不出真实存在的协整,这正是原书「协整检验可能误导」的一面。
- 在 100 只互相独立的随机游走股票中两两做 EG 检验(4950 对),预计会有多少对在 5% 水平「通过」?这对配对交易选股有什么启示? 提示:约 250 对;需要经济先验、多重检验调整和样本外验证。
原书推荐习题:17.2(期限结构推导协整)、17.5、17.7(单位根下非标准极限分布)、17.6(DOLS 结构)、17.10(推导 VECM);复习题 17.3、17.5。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 单整阶数、单位根检验统计量的非正态性(Key Concept 17.4,式 17.16–17.21,图 17.1) | 17.3 | p.659–663 |
| 协整、VECM、EG-ADF 检验、DOLS、多个协整变量(Key Concept 17.5,式 17.22–17.25,表 17.1) | 17.4 | p.664–668 |
| 专栏:时间序列计量经济学的诺贝尔奖得主 | 17.6 后 | p.681–682 |
| 习题 17.2、17.5、17.6、17.7、17.10,复习题 17.3、17.5 | 第 17 章末 | p.684–688 |
| 配对交易流程、MacKinnon 临界值对照(本教材补充) | — | — |
注:原书页码 = PDF 页码 − 1。