量化交易中文教材

第 15b 章 非平稳性:随机趋势与结构突变

本章接第 15a 章,讲原书第 15 章的 15.7–15.9 节。第 15a 章的一切推断与预测都建立在平稳性之上;本章讨论平稳性被破坏的两种最常见方式——趋势与突变:它们会造成什么问题,怎样检验,怎样处理。

学习目标

读完本章,你应当能够:

  1. 区分确定性趋势与随机趋势,说明随机游走、单位根与随机趋势的关系,以及 AR(p) 平稳的条件。
  2. 解释随机趋势带来的三个问题:自回归系数下偏、t 统计量非正态、伪回归,并能用模拟复现。
  3. 用 Dickey–Fuller 与增广 Dickey–Fuller(ADF)检验单位根,正确选择是否含时间趋势、使用专用临界值、用 AIC 选滞后,并理解「不能拒绝 ≠ 有单位根」。
  4. 用 Chow 检验(已知日期)和 QLR 检验(未知日期)检验回归系数的稳定性,查表 15.5 的临界值并估计突变日期。
  5. 用伪样本外预测诊断样本末端的模型失效,知道发现突变后怎样重新估计。
  6. 把这些工具用于收益与价格建模、配对交易的价差检验、因子与信号的体制变化检测。

读前导读

这一章在解决什么问题

第 15a 章所有好结论都写着一个前提:序列平稳。本章讲这个前提被打破的两种方式,以及打破后会出什么事。

第一种是趋势,尤其是随机趋势(单位根)。股价、GDP、汇率的水平值都属于这一类。你在 CFA 二级见过:「AR(1) 的 \(b_1=1\) 时序列是随机游走,没有有限的均值回复水平,要先差分」,也见过 Dickey–Fuller 检验的名字。本章讲清楚为什么 \(b_1=1\) 这么麻烦:OLS 估计系统性偏低、t 统计量不再服从正态分布、两个毫不相关的序列也会回归出「高度显著」的关系(伪回归)。量化里「对收益建模,不对价格建模」的规矩、配对交易为什么要检验价差平稳,都源于此。

第二种是结构突变:回归关系本身在某个时点变了。因子在被大量使用后失效、监管制度改变、金融危机,都属于这一类。本章给出两个检验:已知日期用 Chow 检验,未知日期用 QLR 检验(把每个可能日期都试一遍,取最大的 F)。后者特别重要,因为「看着图挑一个转折点再检验」在量化研究里极其常见,而那样做的 p 值是假的。

需要先想起来的数学

  • 随机游走的方差累加:\(Y_t=u_1+u_2+\cdots+u_t\),各 \(u\) 独立同方差,所以 \(\text{var}(Y_t)=t\sigma_u^2\)。这和「年化波动率 = 日波动率 × \(\sqrt{252}\)」是同一个道理:方差随时间线性增长,标准差随 \(\sqrt t\) 增长。见 第 00 册第 07 章 概率中的分析工具。
  • 多项式的根:AR(p) 是否平稳取决于 \(1-\beta_1z-\cdots-\beta_pz^p=0\) 的根。只需会一招:把 \(z=1\) 代进去,若结果为 0,就有单位根,等价于所有 AR 系数之和等于 1。例:\(Y_t=1.3Y_{t-1}-0.3Y_{t-2}+u_t\),\(1.3-0.3=1\),有单位根。
  • 单侧检验与临界值:DF 检验是左侧单侧检验,拒绝域是「足够负」。你熟悉的正态 5% 单侧临界值是 −1.645;本章的新东西是,原假设成立时统计量不服从正态,临界值要查专门的表。见 第 00 册第 08 章 读懂数学证明与符号 中关于假设与结论的读法。
  • 多重比较:同时做很多次检验、取最显著的那个,犯第一类错误的概率会远大于名义水平。QLR 临界值偏大就是对这一点的修正。

术语提醒:「I(1)」读作「一阶单整」,指差分一次后平稳的序列;「功效」(power)是原假设为假时正确拒绝它的概率;「鞅」(martingale)是「对未来变化的最佳预测为 0」的序列,有效市场下的价格就是鞅的典型例子。

怎么读这一章

核心必读:15.7.2(随机游走与单位根)、15.7.3(三个问题,特别是伪回归)、15.7.4(DF/ADF 检验,重点是临界值和「不能拒绝 ≠ 有单位根」)、15.8.3(QLR 与「你以为知道日期」的警告)。15.8.2 的 Chow 检验是第 8 章哑变量交互的直接应用,复习即可。15.8.4 的伪样本外诊断和 GDP 应用可以快速读,记住「一个极端季度就能左右 RMSFE」这个教训。量化实战部分关于配对交易的三条要点值得反复看。


15.7 非平稳性 I:趋势

若因变量或回归元非平稳,常规检验、置信区间和预测都可能不可靠。具体问题和对策取决于非平稳的类型。本节讲趋势,下一节讲突变;两节都按「是什么 → 忽略它的后果 → 怎样检验 → 怎样处理」展开。

15.7.1 什么是趋势

趋势(trend)是变量随时间持久的长期运动,序列围绕趋势波动。对数 GDP 有明显的上升趋势;失业率的趋势在 1960 年代末到 1980 年代初上升、之后下降、2000 年代初后又上升;美元/英镑在 1972 年后长期下降;日本工业生产(对数)的趋势先快、后慢、最后几乎为零。

  • 确定性趋势(deterministic trend)是时间的非随机函数,例如对数 GDP 每季增长 0.75 个百分点,趋势为 \(0.75t\)。
  • 随机趋势(stochastic trend)是随机的、随时间变化的。它可以是长时间上升后长时间下降(失业率),也可以更微妙:GDP 趋势增长率并不恒定(1960 年代快于 1970 年代,1990 年代快于 2000 年代)。

作者的观点是:经济序列更适合用随机趋势建模。确定性趋势意味着长期走势可以准确预知,这与人们年复一年面对的意外不符。1970 年代失业率的上升既不是注定永远上升,也不是注定回落,而是人口结构变化、油价冲击、生产率放缓和货币政策失误共同造成的。下文「趋势」默认指随机趋势。

15.7.2 随机游走与单位根

最简单的随机趋势模型是随机游走(random walk):

\[Y_t=Y_{t-1}+u_t. \tag{15.26}\]

严格定义要求 \(u_t\) i.i.d.;本书更宽泛地只要求 \(E(u_t\mid Y_{t-1},Y_{t-2},\dots)=0\),满足 \(E(\Delta Y_t\mid Y_{t-1},\dots)=0\) 的序列又称鞅(martingale)。含义是:明天的值 = 今天的值 + 不可预测的变化,最佳预测就是今天的值。

随机游走的方差随时间增长(原书习题 15.13):设 \(Y_0=0\),则 \(Y_t=u_1+\cdots+u_t\),\(E(Y_t)=0\),\(\text{var}(Y_t)=t\sigma_u^2\),\(\text{cov}(Y_t,Y_{t-k})=(t-k)\sigma_u^2\)。分布随 \(t\) 改变,所以非平稳。

推导拆解:协方差为什么是 \((t-k)\sigma_u^2\)。

  1. 把 \(Y_t\) 拆成两段:\(Y_t=Y_{t-k}+(u_{t-k+1}+\cdots+u_t)\),后一段是最近 \(k\) 期的新冲击。
  2. 新冲击与 \(Y_{t-k}\)(由更早的冲击组成)不相关,所以 \(\text{cov}(Y_t,Y_{t-k})=\text{cov}(Y_{t-k},Y_{t-k})=\text{var}(Y_{t-k})=(t-k)\sigma_u^2\)。
  3. 相关系数 \(=\frac{(t-k)\sigma_u^2}{\sqrt{t\sigma_u^2\cdot(t-k)\sigma_u^2}}=\sqrt{(t-k)/t}\)。\(t\) 很大时它接近 1,哪怕 \(k\) 不小。

第 3 步解释了随机游走的样本自相关图为什么「衰减极慢」:\(\hat\rho_1,\hat\rho_2,\dots\) 都接近 1,而平稳 AR(1) 的自相关按 \(\beta_1^j\) 几何下降。看到 ACF 几乎不衰减,就该怀疑单位根。

带漂移的随机游走(random walk with drift):

\[Y_t=\beta_0+Y_{t-1}+u_t. \tag{15.27}\]

\(\beta_0>0\) 时平均上升,最佳预测是今天的值加 \(\beta_0\)。对数股价通常就用这个模型描述。

与自回归的关系。随机游走是 AR(1) 中 \(\beta_1=1\) 的特例。\(|\beta_1|<1\) 时 AR(1) 平稳(第 15a 章);\(\beta_1=1\) 时含随机趋势、非平稳。更一般地,AR(p) 平稳要求多项式 \(1-\beta_1z-\beta_2z^2-\cdots-\beta_pz^p\) 的根的绝对值都大于 1。若有一个根等于 1,称该 AR 有单位自回归根,简称单位根(unit root)。有单位根与含随机趋势是同一回事。

一个例子(原书习题 15.11):若 \(\Delta Y_t=b_1\Delta Y_{t-1}+u_t\) 平稳,则 \(Y_t=(1+b_1)Y_{t-1}-b_1Y_{t-2}+u_t\),两个 AR 系数之和为 1,多项式 \(1-(1+b_1)z+b_1z^2=(1-z)(1-b_1z)\) 在 \(z=1\) 处为零。水平值有单位根,差分后平稳——这类序列称为一阶单整,记 I(1)。

白话解释:「根的绝对值大于 1」这个条件为什么和「平稳」有关?以 AR(1) 为例,多项式 \(1-\beta_1z=0\) 的根是 \(z=1/\beta_1\)。根在 1 之外 \(\Leftrightarrow|1/\beta_1|>1\Leftrightarrow|\beta_1|<1\),正是冲击按 \(\beta_1^j\) 衰减的条件。高阶 AR 的冲击衰减由好几个这样的「衰减因子」叠加决定(每个根贡献一个 \(1/z\)),只要所有根都在单位圆外,每个因子都在衰减,序列就平稳;有一个根恰好等于 1,对应的因子就是「1 的 \(j\) 次方」,冲击永不消失。

金融直觉:「冲击永不消失」就是单位根的经济含义。若对数股价有单位根,今天一则利空让股价下跌 5%,这 5% 在预期上永远不会「补回来」;若价格是平稳的,跌下去的部分会被预期逐步回补。有效市场假说对应前者,均值回复策略押注后者。

15.7.3 随机趋势带来的问题

问题 1:自回归系数下偏,t 统计量非正态。 回归元有随机趋势时,常规 OLS t 统计量在原假设下即使大样本也不服从正态分布,自回归系数的估计偏向 0。对预测而言,真实系数为 1 时 OLS 估计倾向小于 1,预测有系统偏差;而 t 统计量非正态,常规推断也发现不了。原书复习题 15.3 问:AR(1) 中 \(\hat\beta_1=0.88\)、SE 0.03,常规 95% CI \([0.82,0.94]\) 不含 1,能否据此排除单位根?答案是不能——在单位根附近常规置信区间不可靠,要用下面的 DF 检验。本章代码第 2 部分显示,\(T=100\) 的随机游走 AR(1) 估计的平均值只有 0.947。

问题 2:伪回归(spurious regression)。两个相互独立但都有随机趋势的序列,以很高的概率「看起来」显著相关。原书的例子:美国失业率与日本工业生产(对数)在 1960 年代中期到 1980 年代初都稳步上升。1962–1985 年:

\[\widehat{\text{U.S. Unemployment Rate}}_t=\underset{(1.19)}{-2.37}+\underset{(0.32)}{2.22}\ln(\text{Japanese IP}_t),\quad\bar R^2=0.34. \tag{15.28}\]

斜率 \(t=7\)。换成 1986–2017 年:

\[\widehat{\text{U.S. Unemployment Rate}}_t=\underset{(7.74)}{42.37}-\underset{(1.69)}{7.92}\ln(\text{Japanese IP}_t),\quad\bar R^2=0.14. \tag{15.29}\]

结论完全相反。根源是两个序列都有随机趋势,前一段恰好同向,后一段反向;没有任何经济理由认为两者相关。

白话解释:伪回归为什么「数据越多越糟」?常规 t 检验的逻辑是:残差独立,样本越大,标准误越小,真实为零的系数估计值会越来越靠近 0。但两个独立随机游走回归时,残差本身也是随机游走(\(Y\) 减去一个常数倍的 \(X\),仍是两个随机游走的组合),高度自相关。OLS 的标准误公式假设残差独立,严重低估了真实的不确定性;同时,斜率估计不会收敛到 0,而是收敛到一个随机变量(每次模拟不同)。于是 \(T\) 越大,标准误被算得越小,而系数不缩,t 值越来越大。

一个实用的识别信号:水平回归 \(R^2\) 很高、残差的 Durbin–Watson 统计量很低(残差高度正自相关),这是伪回归的典型面貌。原书习题 15.6 用蒙特卡洛说明:两个独立随机游走回归,\(|t|>1.96\) 的比例远超 5%,而且随 \(T\) 增大趋向 1,而不是趋向 5%。更多数据不能拯救伪回归。

特例:协整。如果两个序列的随机趋势相同,即存在 \(\theta\) 使 \(Y_t-\theta X_t\) 平稳,称它们协整(cointegrated)。此时水平回归是有意义的,相应方法见第 17b 章。配对交易的统计基础正是协整。

15.7.4 检验随机趋势:Dickey–Fuller 检验

先看时序图,若像有趋势,再做正式检验。

AR(1) 中的 DF 检验。原假设单位根,备择平稳:

\[H_0:\beta_1=1\ \text{vs}\ H_1:\beta_1<1,\qquad Y_t=\beta_0+\beta_1Y_{t-1}+u_t. \tag{15.30}\]

两边减去 \(Y_{t-1}\),令 \(\delta=\beta_1-1\):

\[H_0:\delta=0\ \text{vs}\ H_1:\delta<0,\qquad\Delta Y_t=\beta_0+\delta Y_{t-1}+u_t. \tag{15.31}\]

检验 \(\delta=0\) 的 OLS t 统计量称为 Dickey–Fuller 统计量(Dickey & Fuller 1979),用仅同方差标准误计算(单位根原假设下,这个 t 统计量其实对异方差也是稳健的,这是一个特殊结果)。

推导拆解:从 (15.30) 到 (15.31) 只做了一件事——两边同减 \(Y_{t-1}\)。左边 \(Y_t-Y_{t-1}=\Delta Y_t\);右边 \(\beta_1Y_{t-1}-Y_{t-1}=(\beta_1-1)Y_{t-1}=\delta Y_{t-1}\)。两个回归是同一个模型,\(\hat\delta=\hat\beta_1-1\),标准误也相同,所以 t 统计量 \(\hat\delta/SE\) 就是 \((\hat\beta_1-1)/SE(\hat\beta_1)\)。改写的好处是:原假设变成「某个系数等于 0」,和常规回归输出直接对应。

原假设为什么是「有单位根」而不是「平稳」?因为单位根是一个点(\(\delta=0\)),平稳是一个区间(\(\delta<0\))。点原假设下统计量的分布可以算出来,才能给临界值。代价是:拒绝时结论有力(「平稳」),不拒绝时只能说「证据不足」。

为什么分布不是正态?平稳回归里,\(\sum Y_{t-1}^2\) 随 \(T\) 线性增长,中心极限定理成立;单位根下 \(Y_{t-1}\) 的方差本身随 \(t\) 增长,\(\sum Y_{t-1}^2\) 按 \(T^2\) 增长,而且始终是一个随机量,不收敛到常数。结果是 t 统计量收敛到一个用布朗运动积分表示的非标准分布,并且偏向负值。这里不必掌握推导,只需记住「要查专门的表」。

临界值。单位根原假设下 DF 统计量即使大样本也不服从正态分布,要用专用临界值;备择是平稳(\(\delta<0\)),所以是单侧(左侧)检验。

表 15.4 ADF 统计量的大样本临界值

确定性回归元 10% 5% 1%
仅截距 −2.57 −2.86 −3.43
截距与时间趋势 −3.12 −3.41 −3.96

它们比标准正态的单侧临界值(10% −1.28,5% −1.64)负得多。本章代码模拟了 \(T=100\) 时 DF 统计量的分位数,与表 15.4 吻合;如果误用 −1.64,在真实单位根下有约 46% 的概率错误地宣布「平稳」。

增广 DF(ADF)检验。AR(p) 时加入 \(p-1\) 个 \(\Delta Y_t\) 的滞后:

\[\Delta Y_t=\beta_0+\delta Y_{t-1}+\gamma_1\Delta Y_{t-1}+\cdots+\gamma_{p-1}\Delta Y_{t-p+1}+u_t. \tag{15.32}\]

推导拆解:为什么 AR(p) 写成 (15.32) 后,单位根就对应 \(\delta=0\)。以 AR(2) 为例(与练习 8 相同):

  1. \(Y_t=\beta_0+\beta_1Y_{t-1}+\beta_2Y_{t-2}+u_t\)。把 \(Y_{t-2}\) 写成 \(Y_{t-1}-\Delta Y_{t-1}\)。
  2. 代入:\(Y_t=\beta_0+(\beta_1+\beta_2)Y_{t-1}-\beta_2\Delta Y_{t-1}+u_t\)。
  3. 两边减 \(Y_{t-1}\):\(\Delta Y_t=\beta_0+(\beta_1+\beta_2-1)Y_{t-1}-\beta_2\Delta Y_{t-1}+u_t\)。
  4. 所以 \(\delta=\beta_1+\beta_2-1\),\(\gamma_1=-\beta_2\)。单位根 \(\Leftrightarrow\) 系数之和为 1 \(\Leftrightarrow\delta=0\)。

加入差分滞后的作用是吸收短期动态,让误差 \(u_t\) 不再自相关,否则 DF 统计量的分布会偏离表 15.4。这也是「滞后宁多勿少」的原因:少了会让检验失真,多了只是损失一点功效。

\(H_0:\delta=0\)(随机趋势),\(H_1:\delta<0\)(平稳),\(\delta\) 的 t 统计量即 ADF 统计量。\(p\) 未知,可用信息准则选;研究表明 ADF 的滞后宁多勿少,建议用 AIC 而不是 BIC(Stock 1994;Haldrup & Jansson 2006)。

以「围绕线性趋势平稳」为备择。失业率这类长期不增长的序列,备择「围绕常数均值平稳」合适;GDP、股价这类长期增长的序列,备择应为「围绕确定性线性趋势平稳」,把时间 \(t\) 加入回归:

\[\Delta Y_t=\beta_0+\alpha t+\delta Y_{t-1}+\gamma_1\Delta Y_{t-1}+\cdots+\gamma_{p-1}\Delta Y_{t-p+1}+u_t, \tag{15.33}\]

临界值用表 15.4 第二行。

白话解释:含不含时间趋势,取决于备择假设想表达什么。对数股价长期向上,如果备择只是「围绕一个常数平稳」,那显然不对,检验会因为设定错误而几乎永远不拒绝。把 \(t\) 放进去,备择变成「围绕一条直线平稳」(趋势平稳),这才是有意义的竞争对手。代价是临界值更负(5% 从 −2.86 变成 −3.41),更难拒绝。经验规则:序列有明显长期增长就加趋势;收益率、利差、价差这类没有长期增长的序列只加截距。

美国 GDP 有随机趋势吗? 含两阶滞后差分的 ADF 回归:

\[\widehat{\Delta\ln(GDP_t)}=\underset{(0.080)}{0.162}+\underset{(0.0001)}{0.0001}t-\underset{(0.010)}{0.019}\ln(GDP_{t-1})+\underset{(0.066)}{0.261}\Delta\ln(GDP_{t-1})+\underset{(0.066)}{0.165}\Delta\ln(GDP_{t-2}). \tag{15.34}\]

ADF \(t=-1.95\),含趋势的 10% 临界值是 −3.12,−1.95 不够负,10% 水平不能拒绝「对数 GDP 有单位根」。原书习题 15.3 对美国工业生产(对数)做同样的检验,\(t\approx-0.0070/0.0037\approx-1.89\),也不能拒绝,因而支持对增长率建模。

解读要点:DF 检验的功效(power)通常较低。不能拒绝单位根不等于证明了单位根,只是证据不足以排除它;一个 \(\beta_1=0.95\) 的平稳 AR(1) 在几百个观测里也常常无法与随机游走区分(见本章代码)。

15.7.5 避免随机趋势带来的问题

最可靠的办法是差分:若 \(Y_t=\beta_0+Y_{t-1}+u_t\),则 \(\Delta Y_t=\beta_0+u_t\) 平稳。实践中很少能确定是否真有单位根,但即使根只是接近 1,把它近似为 1、改用差分(增长率、收益率)通常也是合理的(Stock & Watson 1988)。


15.8 非平稳性 II:结构突变

15.8.1 什么是突变

第二类非平稳是总体回归函数在样本期内发生变化,称为突变(break)。原因包括经济政策变化、经济结构变化、发明带来的行业变化。突变可以是某日期的离散变化(1972 年布雷顿森林体系瓦解后,美元/英镑汇率的行为彻底改变),也可以是较长时期内系数的缓慢演变。

问题:样本期内有突变时,全样本 OLS 估计的是两个时期的「平均」关系。视突变位置与大小,这个平均回归函数可能与样本末端的真实回归函数差别很大,预测就会很差。

15.8.2 已知日期的突变:Chow 检验

假设突变日期为 \(\tau\),令 \(D_t(\tau)=0\)(\(t\le\tau\))、\(=1\)(\(t>\tau\))。以 ADL(1,1) 为例,加入哑变量及其与回归元的交互(第 8 章 Key Concept 8.4):

\[Y_t=\beta_0+\beta_1Y_{t-1}+\delta_1X_{t-1}+\gamma_0D_t(\tau)+\gamma_1[D_t(\tau)\times Y_{t-1}]+\gamma_2[D_t(\tau)\times X_{t-1}]+u_t. \tag{15.35}\]

无突变的原假设是 \(\gamma_0=\gamma_1=\gamma_2=0\),用(稳健)F 统计量检验,称为已知日期的 Chow 检验(Chow 1960)。只关心部分系数时,只为这部分系数构造交互项。

白话解释:(15.35) 怎么读。\(t\le\tau\) 时 \(D_t=0\),模型就是 \(Y_t=\beta_0+\beta_1Y_{t-1}+\delta_1X_{t-1}\);\(t>\tau\) 时 \(D_t=1\),模型变成 \(Y_t=(\beta_0+\gamma_0)+(\beta_1+\gamma_1)Y_{t-1}+(\delta_1+\gamma_2)X_{t-1}\)。所以 \(\gamma\) 们就是「突变后减突变前」的系数变化量,检验它们全为零就是检验关系没变。

金融直觉:检验「2015 年后价值因子溢价是否改变」,就是把因子收益对常数回归,加上 2015 年后的哑变量,看哑变量系数是否显著。用 CAPM 检验「某基金在换基金经理后 alpha 和 beta 是否改变」,就是对截距和市场收益都加交互项,\(q=2\)。

15.8.3 未知日期的突变:QLR 检验

突变日期通常未知,或只知道大概范围 \([\tau_0,\tau_1]\)。对区间内每个可能日期计算 Chow F 统计量,取最大者:

Key Concept 15.8 QLR 检验(Quandt likelihood ratio,又称 sup-Wald)

\[\text{QLR}=\max[F(\tau_0),F(\tau_0+1),\dots,F(\tau_1)]. \tag{15.36}\]
  1. 可以检验全部或部分系数的突变;
  2. 原假设下的大样本分布依赖于约束个数 \(q\)(允许突变的系数个数,含截距)和端点比例 \(\tau_0/T\)、\(\tau_1/T\);
  3. 能检测单个离散突变、多个离散突变或回归函数的缓慢演变;
  4. 若有明确的离散突变,使 F 最大的日期 \(\hat\tau\) 就是突变日期的估计。

修剪(trimming)。端点太接近样本首尾时大样本近似很差,因此只在样本中间部分计算。常用 15% 修剪:\(\tau_0=0.15T\),\(\tau_1=0.85T\),即在中间 70% 的日期上计算 F。

表 15.5 QLR 统计量的临界值(15% 修剪)

\(q\) 10% 5% 1%
1 7.12 8.68 12.16
2 5.00 5.86 7.78
3 4.09 4.71 6.02
4 3.59 4.09 5.12
5 3.26 3.66 4.53
6 3.02 3.37 4.12
8 2.69 2.98 3.57
10 2.48 2.71 3.23
12 2.33 2.54 2.97
15 2.16 2.34 2.71
20 1.99 2.13 2.43

(原书给出 \(q=1\) 到 20 的完整表;其他修剪比例见 Andrews 2003。)QLR 临界值比 \(F_{q,\infty}\) 的临界值大得多(\(q=2\) 时 5% 临界值 5.86 对 3.00),因为考察了许多日期,「碰上」一个大 F 的机会多。这与第 07 章的多重检验是同一个道理。

白话解释:为什么不能直接用 Bonferroni 修正(把 5% 除以候选日期数)?因为相邻日期的 Chow F 高度相关:在第 100 期切一刀和在第 101 期切一刀,两个子样本几乎一样,F 也差不多。真正「独立的尝试次数」远少于候选日期数,Bonferroni 会过于保守。QLR 的表是在原假设下直接模拟「最大 F」的分布得到的,自动考虑了这种相关性。

修剪的意义也可以这么理解:如果允许在第 3 期切一刀,前一段只有 3 个观测,估计出的系数几乎是乱的,F 可能极大,但毫无意义。15% 修剪保证两段都至少有 15% 的数据。

警告:即使你认为知道突变日期,你可能也并不知道。 如果「专家」知道的日期来自对这个序列本身的观察(例如在图上看到某处有跳跃),那么日期实际上已经被数据非正式地估计过了,常规 F 临界值不再适用,应使用 QLR。量化研究中,「看图选一个体制切换点再做 Chow 检验」是一种典型的数据窥探。

应用:期限利差的预测力是否稳定? 检验第 15a 章 ADL(2,2)(式 15.15)中截距及 TSpread\(_{t-1}\)、TSpread\(_{t-2}\) 系数的稳定性,\(q=3\),在样本中间 70% 计算。各日期的 Chow F 中,1975:Q1 为 2.07,最大值 6.47 出现在 1980:Q4,即 QLR \(=6.47\),超过 \(q=3\) 的 1% 临界值 6.02,在 1% 水平拒绝稳定性。

15.8.4 用伪样本外预测检测突变

预测模型的终极检验是样本外表现。伪样本外预测模拟实时预测,特别适合发现样本末端附近的突变(QLR 因修剪看不到那里)。

  • 最直接的做法:把样本内拟合值、伪样本外预测和实际值画在同一张图上,伪样本外期预测明显恶化是危险信号。
  • 比较 \(\text{MSFE}_{POOS}\) 与在同一估计样本上算出的 \(\text{MSFE}_{FPE}\):平稳时两者应接近,POOS 远大于 FPE 提示模型失效。
  • 检验伪样本外误差的均值是否为零:模型稳定时应为零。

应用:期限利差的预测力在 2000 年代是否改变? QLR 显示 1980 年代初有突变。那么之后是否稳定?用 1981:Q1–2002:Q4 作为初始估计样本,按 KC 15.7 生成 2003:Q1–2017:Q3 的伪样本外预测(例如 2006:Q4 实际增长 3.1%,预测 1.6%,误差 1.5)。

  • 伪样本外误差均值为 −0.57,检验均值为零的 \(t=-2.00\),5% 水平拒绝——预测平均偏高。
  • 但 RMSFE\(_{FPE}\) \(=2.45\)(1981–2002),RMSFE\(_{POOS}\) \(=2.29\)(2003–2017),样本外反而略好。
  • 伪样本外预测除 2008 年末到 2009 年初(金融危机期间 GDP 最剧烈的下降)外大体跟踪实际值;只剔除 2008:Q4 一个季度,RMSFE\(_{POOS}\) 就从 2.29 降到 1.85。

白话解释:误差均值的 t 检验怎么做?把 \(P\) 个伪样本外误差当作一列数据,计算均值 \(\bar e\) 和标准误 \(s_e/\sqrt P\),\(t=\bar e/(s_e/\sqrt P)\)。这里约 59 个季度、均值 −0.57、\(t=-2.00\),倒推 \(s_e\approx0.57\times\sqrt{59}/2\approx2.2\),与 RMSFE 2.29 的量级一致。严格说,若误差有自相关(一步预测下通常较弱),应换用 HAC 标准误(第 16 章)。

结论:除 2008 年末的骤降外,ADL(2,2) 在 2003–2017 年的表现好于样本内。一个季度就能左右整个评价,说明 RMSFE 对极端值非常敏感。原书脚注补充:2008 年三季度费城联储调查的专业预测者对四季度 GDP 增长的中位预测为 0.7%,也远高于实际的 −8.5%。

15.8.5 避免突变带来的问题

对策取决于突变的来源。若有明确的离散突变,QLR 会以高概率检测到并给出日期;然后用指示两个子样本的哑变量(及与其他回归元的交互)重新估计;若所有系数都突变,就等价于只用突变后的数据估计。确有明确突变时,后续推断照常使用正态临界值,预测使用突变后的模型。若是参数缓慢、持续地变化,对策更复杂,超出本书范围(Hansen 2001;Hamilton 1994 第 13 章)。


15.9 第 15 章结论

时间序列变量通常与自身的过去相关,因此可以用线性回归基于当前与过去值预测未来:起点是自回归,再加入其他预测变量的滞后(第 15a 章)。平稳性是这一切的前提。随机趋势会使系数下偏、t 统计量非正态并产生伪回归,可用 ADF 检验发现、用差分消除;结构突变会使全样本估计失去意义,可用 QLR 和伪样本外预测发现,并用突变后的数据重新估计。本章的回归都是为预测服务的,系数一般没有因果解释;在适当条件下估计动态因果效应是下一章的主题。


量化实战

本章方法在量化里的位置

对收益建模,不对价格建模。 对数价格近似带漂移的随机游走(单位根),所以研究和预测几乎总在收益率(对数差分)上进行。在价格水平上做回归、算相关、做均线以外的任何统计推断,都要先想到伪回归:两个各自上涨的资产(或一个资产与一个宏观总量)在水平上的高 \(R^2\)、高 t 值可能毫无意义。

配对交易与统计套利。 价差、基差、利差是否均值回复,就是对它做 ADF 检验。若两只股票的对数价格协整,价差平稳,就可以围绕均值做反向交易;若价差本身有单位根,「偏离后回归」只是错觉。实务要点:

  • 先用 ADF 确认单个价格是 I(1),再检验价差;协整系数需要估计时,临界值要用 Engle–Granger 的版本(第 17b 章),不能用表 15.4。
  • ADF 功效低:一个半衰期较长(例如 \(\beta_1=0.95\),半衰期约 14 期)的平稳价差,在一两年日度数据里常常检验不显著。反过来,在成百上千个股票对中筛选「最显著」的配对,又会遇到多重检验问题。
  • 检验通过不代表关系不会断:协整关系本身可以发生结构突变(并购、行业变迁)。

持续性预测变量。 估值比率、利差等预测变量接近单位根,用它们预测收益时系数估计有小样本偏差、t 检验失真(Stambaugh 偏差)。这是 15.7.3 节问题 1 在预测回归中的表现。

因子与信号的体制变化。 因子收益、信号的预测系数可能在某个时点改变(市场制度变化、信号被广泛使用后的拥挤、金融危机)。用 QLR 检验因子溢价或预测回归系数的稳定性,比看图挑日期再做 Chow 检验可靠。检测到突变后,可以用突变后数据重估,或者改用滚动窗口。

走步回测中的诊断。 伪样本外误差均值显著不为零、POOS RMSFE 显著高于样本内 FPE,都是信号衰减或失效的警报。2008 年第四季度这样的极端期会主导 RMSFE,报告时应同时给出剔除极端期的结果和更稳健的指标(如平均绝对误差)。

示例:伪回归、DF 分布、ADF 检验、QLR 与突变后的预测

import numpy as np
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller

rng = np.random.default_rng(6)

def ols(y, X):
    b, *_ = np.linalg.lstsq(X, y, rcond=None)
    e = y - X @ b
    return b, e

# ---- 1. 伪回归:两个独立随机游走,水平回归 vs 差分回归 ----
print("T    |t|>1.96 比例(水平)  R2中位数  |t|>1.96 比例(差分)")
for T in [50, 100, 200, 400]:
    rej, r2s, rejd = 0, [], 0
    for _ in range(2000):
        y = np.cumsum(rng.standard_normal(T)); x = np.cumsum(rng.standard_normal(T))
        for (yy, xx, diff) in [(y, x, False), (np.diff(y), np.diff(x), True)]:
            X = np.column_stack([np.ones(len(xx)), xx])
            b, e = ols(yy, X)
            s2 = e @ e / (len(yy) - 2)
            se = np.sqrt(s2 * np.linalg.inv(X.T @ X)[1, 1])
            if diff: rejd += abs(b[1]/se) > 1.96
            else:
                rej += abs(b[1]/se) > 1.96
                r2s.append(1 - e @ e / np.sum((yy - yy.mean())**2))
    print(f"{T:<5d}  {rej/2000:.3f}               {np.median(r2s):.3f}     {rejd/2000:.3f}")

# ---- 2. 单位根下的 OLS:系数下偏、DF 统计量非正态 ----
T, R = 100, 20000
e = rng.standard_normal((R, T))
Y = np.cumsum(e, axis=1)                         # 真 beta1 = 1 的随机游走
ylag, dy = Y[:, :-1], np.diff(Y, axis=1)
yl_c = ylag - ylag.mean(1, keepdims=True); dy_c = dy - dy.mean(1, keepdims=True)
delta = np.sum(yl_c*dy_c, 1) / np.sum(yl_c**2, 1)          # ΔY 对 (1, Y_{t-1}) 回归的斜率
resid = dy_c - delta[:, None]*yl_c
se = np.sqrt(np.sum(resid**2, 1)/(T-1-2) / np.sum(yl_c**2, 1))
tDF = delta/se
print(f"\nT=100 随机游走: beta1_hat 均值 = {1+delta.mean():.3f}(真值 1)")
print("DF t 统计量分位数 1%/5%/10%:", np.round(np.quantile(tDF, [.01, .05, .10]), 2),
      " 表15.4(仅截距): -3.43/-2.86/-2.57;  正态: -2.33/-1.64/-1.28")
print(f"若误用正态 5% 单侧临界值 -1.64,拒绝率 = {np.mean(tDF < -1.645):.1%}")

# ---- 3. ADF 检验:对数价格、配对价差、高持续平稳序列 ----
n = 750
logp = np.cumsum(0.0003 + 0.015*rng.standard_normal(n))         # 带漂移随机游走
common = np.cumsum(0.012*rng.standard_normal(n))                # 共同随机趋势
s = np.zeros(n)
for t in range(1, n): s[t] = 0.95*s[t-1] + 0.01*rng.standard_normal()
pa, pb = common + s, 0.9*common                                 # 两只股票的对数价格:A - B/0.9 = s 平稳
ar95 = np.zeros(250)
for t in range(1, 250): ar95[t] = 0.95*ar95[t-1] + rng.standard_normal()
for name, ser, reg in [("对数价格(趋势)", logp, "ct"), ("对数收益", np.diff(logp), "c"),
                       ("A 价格水平", pa, "c"), ("价差 A - B/0.9", pa - pb/0.9, "c"),
                       ("AR(1) 0.95, T=250", ar95, "c")]:
    stat, pval, lags, *_ = adfuller(ser, regression=reg, autolag="AIC", result_object=False)
    print(f"{name:18s} ADF = {stat:6.2f}  p = {pval:.3f}  滞后 {lags}")

# ---- 4. QLR 检验:预测系数在 60% 处突变 ----
def chow_F(y, X, D, robust=True):
    """检验 [D, D*X 的指定列] 系数全为零的 F 统计量"""
    Z = np.column_stack([X, D])
    b, e = ols(y, Z)
    q = D.shape[1]
    if robust:
        ZtZi = np.linalg.inv(Z.T @ Z)
        V = ZtZi @ (Z.T * e**2) @ Z @ ZtZi * len(y)/(len(y)-Z.shape[1])
    else:
        V = np.linalg.inv(Z.T @ Z) * (e @ e)/(len(y)-Z.shape[1])
    g = b[-q:]
    return g @ np.linalg.solve(V[-q:, -q:], g) / q

def qlr(y, X, cols, trim=0.15, robust=True):
    T = len(y); taus = range(int(trim*T), int((1-trim)*T))
    Fs = []
    for tau in taus:
        Dt = (np.arange(T) >= tau).astype(float)
        D = np.column_stack([Dt] + [Dt*X[:, c] for c in cols])
        Fs.append(chow_F(y, X, D, robust))
    i = int(np.argmax(Fs)); return Fs[i], list(taus)[i]

def simulate(T, brk, d_pre=0.8, d_post=0.0):
    x = np.zeros(T); y = np.zeros(T)
    for t in range(1, T):
        x[t] = 0.85*x[t-1] + rng.normal(0, 0.6)
        d = d_pre if t < brk else d_post
        y[t] = 0.5 + 0.3*y[t-1] + d*x[t-1] + rng.normal(0, 1.5)
    return y[1:], np.column_stack([np.ones(T-1), y[:-1], x[:-1]])

T = 300
y, X = simulate(T, brk=int(0.6*T))
stat, tau = qlr(y, X, cols=[2])                  # 截距与 X_{t-1} 系数允许突变,q = 2
print(f"\n有突变: QLR = {stat:.2f},估计突变点 = {tau}(真实 {int(0.6*T)-1});"
      f" q=2 临界值 10%/5%/1% = 5.00/5.86/7.78")
y0, X0 = simulate(T, brk=T+1)
print(f"无突变: QLR = {qlr(y0, X0, cols=[2])[0]:.2f}")
# 原假设下 QLR 的分布:蒙特卡洛 300 次(同方差 F 加速)
null = [qlr(*simulate(T, brk=T+1), cols=[2], robust=False)[0] for _ in range(300)]
print(f"模拟 QLR 原假设 95% 分位数 = {np.quantile(null, 0.95):.2f}"
      f"(表 15.5: 5.86;单个 F(2,∞) 5% 临界值: 3.00)")

# ---- 5. 突变后的预测:扩展窗口 vs 滚动窗口 ----
s0 = int(0.75*len(y))
for name, w in [("扩展窗口", None), ("滚动窗口 60", 60)]:
    errs = []
    for s in range(s0, len(y)):
        lo = 0 if w is None else s - w
        b, _ = ols(y[lo:s], X[lo:s])
        errs.append(y[s] - X[s] @ b)
    errs = np.array(errs)
    print(f"{name:10s} POOS RMSFE = {np.sqrt(np.mean(errs**2)):.3f}  误差均值 = {errs.mean():+.3f}")
b_pre, e_pre = ols(y[:s0], X[:s0])
print(f"估计期 FPE RMSFE = {np.sqrt((s0+3)/(s0-3)*e_pre @ e_pre/s0):.3f}")

关键输出:

T    |t|>1.96 比例(水平)  R2中位数  |t|>1.96 比例(差分)
50     0.671               0.163     0.053
100    0.774               0.182     0.046
200    0.827               0.178     0.049
400    0.893               0.179     0.051

T=100 随机游走: beta1_hat 均值 = 0.947(真值 1)
DF t 统计量分位数 1%/5%/10%: [-3.5  -2.88 -2.57]  表15.4(仅截距): -3.43/-2.86/-2.57;  正态: -2.33/-1.64/-1.28
若误用正态 5% 单侧临界值 -1.64,拒绝率 = 46.1%
对数价格(趋势)           ADF =  -2.23  p = 0.472  滞后 4
对数收益               ADF = -11.99  p = 0.000  滞后 3
A 价格水平             ADF =  -1.67  p = 0.448  滞后 9
价差 A - B/0.9       ADF =  -3.79  p = 0.003  滞后 0
AR(1) 0.95, T=250  ADF =  -2.56  p = 0.101  滞后 0

有突变: QLR = 12.02,估计突变点 = 181(真实 179); q=2 临界值 10%/5%/1% = 5.00/5.86/7.78
无突变: QLR = 1.27
模拟 QLR 原假设 95% 分位数 = 5.56(表 15.5: 5.86;单个 F(2,∞) 5% 临界值: 3.00)
扩展窗口       POOS RMSFE = 1.608  误差均值 = +0.264
滚动窗口 60    POOS RMSFE = 1.518  误差均值 = +0.074
估计期 FPE RMSFE = 1.477

读结果:

  • 伪回归:两个独立随机游走的水平回归,\(|t|>1.96\) 的比例从 \(T=50\) 的 67% 升到 \(T=400\) 的 89%,\(R^2\) 中位数约 0.17 且不随 \(T\) 下降;差分后拒绝率回到 5% 左右。
  • DF 分布:真实单位根下 AR 系数平均估计为 0.947,下偏约 0.05;DF 统计量的模拟分位数与表 15.4 一致(有限样本 \(T=100\) 稍负一些),远比正态分位数负。用 −1.64 作临界值会有 46% 的错误拒绝。
  • ADF 检验:含趋势的对数价格不能拒绝单位根,对数收益强烈拒绝;单只股票价格不能拒绝,而协整价差在 1% 水平拒绝——这正是配对交易所需的证据。\(\beta_1=0.95\)、\(T=250\) 的平稳序列 p 值为 0.10,在 5% 水平不能拒绝,体现了 ADF 的低功效。
  • QLR:有突变时 QLR = 12.02,远超 \(q=2\) 的 1% 临界值 7.78,估计日期 181 与真实 179 几乎一致;无突变时只有 1.27。原假设下 QLR 的 95% 分位数模拟为 5.56(300 次模拟,抽样误差不小),与表 15.5 的 5.86 接近,远大于单个 F 的 3.00。
  • 突变后的预测:保留期全部在突变之后。扩展窗口混用了突变前的数据,误差均值 +0.264,RMSFE 1.608 也明显高于估计期的 FPE 1.477;只用最近 60 期的滚动窗口偏差小得多,RMSFE 降到 1.518。代价是滚动窗口估计用的观测少,没有突变时方差更大——窗口长度本身是偏差与方差的权衡。

本章小结

趋势是变量持久的长期运动,经济与金融序列更适合用随机趋势建模,最简单的是(带漂移的)随机游走,它等价于 AR 模型有单位根。随机趋势使自回归系数下偏、t 统计量在原假设下非正态,并使独立序列产生伪回归——拒绝率随样本增大趋向 1。检验随机趋势用 Dickey–Fuller 或 ADF 检验:对 \(\Delta Y_t\) 回归 \(Y_{t-1}\)(及差分滞后,必要时加时间趋势),用专用临界值做左侧检验,滞后数用 AIC 选。ADF 功效低,不能拒绝不等于有单位根。消除随机趋势的方法是差分。结构突变指总体回归系数在样本期内改变:已知日期用 Chow 检验,未知日期用 QLR(中间 70% 的最大 Chow F,临界值查表 15.5),最大 F 的位置估计突变日期;不能先看图挑日期再用常规 F 临界值。伪样本外预测可以诊断样本末端的突变。发现明确突变后,用突变后的数据(或带突变哑变量的模型)重新估计。

概念 公式 / 要点
随机游走 \(Y_t=\beta_0+Y_{t-1}+u_t\);\(\text{var}(Y_t)=t\sigma_u^2\)
AR(p) 平稳条件 \(1-\beta_1z-\cdots-\beta_pz^p\) 的根绝对值都大于 1;根为 1 即单位根
伪回归 独立 I(1) 序列水平回归,\(\vert t\vert >1.96\) 的概率随 \(T\) 趋于 1
DF 回归 \(\Delta Y_t=\beta_0+\delta Y_{t-1}+u_t\),\(H_0:\delta=0\) vs \(H_1:\delta<0\)
ADF 回归 加 \(\gamma_j\Delta Y_{t-j}\);可加 \(\alpha t\);滞后用 AIC
ADF 5% 临界值 仅截距 −2.86;截距 + 趋势 −3.41
Chow 检验 加 \(D_t(\tau)\) 及交互项,F 检验其系数全为零
QLR \(\max_{\tau\in[0.15T,0.85T]}F(\tau)\);\(q=2\) 时 5% 临界值 5.86
伪样本外诊断 POOS 误差均值 ≠ 0、POOS RMSFE ≫ FPE RMSFE
对策 随机趋势:差分;明确突变:用突变后数据或突变哑变量重估

练习

基础

  1. (原书习题 15.13)随机游走 \(Y_t=Y_{t-1}+u_t\),\(Y_0=0\),\(u_t\) i.i.d.、方差 \(\sigma_u^2\)。求 \(E(Y_t)\)、\(\text{var}(Y_t)\)、\(\text{cov}(Y_t,Y_{t-k})\),并说明为什么非平稳。 答案要点:\(0\);\(t\sigma_u^2\);\((t-k)\sigma_u^2\);方差依赖 \(t\)。
  2. (原书复习题 15.1)原书图 15.2 的四个序列(失业率、美元/英镑汇率、日本工业生产对数、Wilshire 日收益)中,哪些看起来非平稳?哪些像随机游走? 答案要点:前三个非平稳(有趋势或体制变化),日收益看起来平稳但有波动聚集。
  3. (原书习题 15.3)对数工业生产的 ADF 回归(含时间趋势、4 阶差分滞后)中,\(\ln(IP_{t-1})\) 的系数为 −0.0070(SE 0.0037)。计算 ADF 统计量并检验单位根;这对建模有什么含义? 答案要点:\(t\approx-1.89\),比含趋势的 10% 临界值 −3.12 大,不能拒绝;对增长率而不是水平建模。
  4. (原书复习题 15.4)你怀疑 (15.15) 的截距在 1992:Q1 发生变化。(a) 怎样修改回归?(b) 怎样检验?(c) 若不知道日期呢? 答案要点:(a) 加 \(D_t=1\{t\ge1992{:}Q1\}\);(b) 对其系数做 t 检验(\(q=1\) 的 Chow 检验);(c) 用 QLR,\(q=1\),查表 15.5(5% 临界值 8.68)。
  5. 一位研究员在价格图上发现 2015 年中「明显有个转折」,于是用 2015:M7 做 Chow 检验,F = 4.2(\(q=2\)),称 5% 显著。指出问题。 答案要点:日期是看数据选出来的,应使用 QLR 临界值(\(q=2\) 时 5% 为 5.86),4.2 并不显著。

进阶

  1. (原书习题 15.6)用蒙特卡洛重做伪回归实验:生成两个独立的 \(T=100\) 随机游走,记录 \(R^2\) 与 t 统计量,重复 1000 次,计算 \(R^2\) 的 5%、50%、95% 分位数与 \(|t|>1.96\) 的比例;再取 \(T=50\)、200。随 \(T\) 增大拒绝率怎样变化? 提示:见本章代码第 1 部分,拒绝率随 \(T\) 增大趋向 1。
  2. (原书习题 15.10)30% 修剪、\(q=5\) 时的 QLR 5% 临界值,介于 15% 修剪的 QLR 临界值和 \(F_{5,\infty}\) 临界值之间。若 QLR 统计量分别为 3.9、1.1、3.6,能否判断拒绝与否? 答案要点:上下界分别为 3.66 与 2.21。3.9 > 3.66,拒绝;1.1 < 2.21,不拒绝;3.6 落在两者之间,仅凭上下界无法判断,需查 Andrews (2003) 的精确临界值。
  3. 证明 AR(2) \(Y_t=\beta_1Y_{t-1}+\beta_2Y_{t-2}+u_t\) 有单位根当且仅当 \(\beta_1+\beta_2=1\),并把它改写成 ADF 形式 \(\Delta Y_t=\delta Y_{t-1}+\gamma_1\Delta Y_{t-1}+u_t\),写出 \(\delta\)、\(\gamma_1\) 与 \(\beta_1\)、\(\beta_2\) 的关系。 答案要点:\(z=1\) 代入 \(1-\beta_1z-\beta_2z^2\) 得 \(1-\beta_1-\beta_2\);\(\delta=\beta_1+\beta_2-1\),\(\gamma_1=-\beta_2\)。所以检验 \(\delta=0\) 就是检验单位根。
  4. 修改本章代码第 3 部分,把价差的 AR 系数从 0.95 依次改为 0.98、0.99,序列长度保持 750,各重复 500 次,统计 ADF 在 5% 水平的拒绝率(功效)。这对配对交易的样本长度要求意味着什么? 提示:持续性越强功效越低;半衰期 \(\ln0.5/\ln\beta_1\) 越长,需要的样本越长。
  5. 修改本章代码第 4–5 部分,把突变放在样本的 90% 处(落在 QLR 的修剪区之外),QLR 还能检测到吗?伪样本外诊断呢? 提示:QLR 在中间 70% 计算,对末端突变不敏感;POOS 的误差均值与 RMSFE 能提供信号,这正是原书强调用 POOS 检测样本末端突变的原因。

原书推荐习题:15.6(伪回归蒙特卡洛,建议每位量化研究者都亲手做一遍);15.3(ADF 实操);15.13 与 15.11(随机游走的矩、差分 AR 与水平 AR 的关系);15.10(QLR 临界值与修剪比例);复习题 15.3、15.4;实证题 E15.1(通胀的单位根检验、含/不含趋势的选择、「不能拒绝 ≠ 原假设为真」、QLR 稳定性检验、2003–2017 伪样本外预测,以及 2008:Q4 油价暴跌造成的预测误差)。


原书对照

本章内容 原书章节 PDF 页码
趋势、随机游走、单位根、伪回归、DF/ADF 检验(表 15.4)、对数 GDP 的 ADF 15.7 p.582–589
结构突变、Chow 检验、QLR 检验(表 15.5,KC 15.8)、期限利差的稳定性、伪样本外诊断 15.8 p.589–596
结论与本章小结 15.9 p.596–598
复习题、习题与实证题 第 15 章末 p.599–605
AR(1) 平稳性(与单位根的对照) 附录 15.2 p.606–607

注:原书页码 = PDF 页码 − 1。