结构性突变#

17.1 动机#

在开发基于 ML 的投资策略时,我们通常希望在多种因素汇聚、其预测结果提供了有利风险调整收益时下注。结构性突变,如从一种市场状态到另一种的转换,就是一个特别值得关注的此类汇聚的例子。例如,均值回归模式可能让位于动量模式。当这种转换发生时,大多数市场参与者措手不及,他们将犯代价高昂的错误。这种错误是许多有利可图策略的基础,因为输方通常在为时已晚时才意识到自己的错误。在接受损失之前,他们将以非理性方式行事,试图持有头寸,并期望回涨。有时他们甚至会在绝望中增加亏损头寸。最终他们将被迫止损或被止损。结构性突变提供了最好的风险/回报之一。在本章中,我们将回顾一些衡量结构性突变可能性的方法,以便可以在此基础上构建信息特征。

17.2 结构性突变检验的类型#

我们可以将结构性突变检验分为两大类:

  • CUSUM 检验: 这些检验累计预测误差是否显著偏离白噪声。
  • 爆炸性检验: 超越偏离白噪声,这些检验测试过程是否表现出指数增长或崩溃,因为这与随机游走或平稳过程不一致,且在长期中不可持续。
    • 右尾单位根检验: 这些检验在假设自回归规范的情况下评估指数增长或崩溃的存在。
    • 亚/超鞅检验: 这些检验在各种函数形式下评估指数增长或崩溃的存在。

17.3 CUSUM 检验#

在第 2 章中,我们介绍了 CUSUM 滤波器,我们在基于事件的条采样上下文中应用了它。其思想是每当某个变量(如累计预测误差)超过预定义阈值时采样一个条。这个概念可以进一步扩展以测试结构性突变。

17.3.1 递归残差的 Brown-Durbin-Evans CUSUM 检验#

该检验由 Brown、Durbin 和 Evans [1975] 提出。假设在每个观测 t = 1, ..., T 处,我们有一组预测值 yt 的特征 xt。矩阵 Xt 由时间序列特征 {xi}i=1,...,t(t ≤ T)组成。这些作者建议我们基于规范

计算 β 的递归最小二乘(RLS)估计,该规范在子样本 ([1, k+1]、[1, k+2]、...、[1, T]) 上拟合,给出 T−k 个最小二乘估计 。我们可以计算标准化的一步前向递归残差为

CUSUM 统计量定义为

在 β 为某个常数值的零假设 H0: βt = β 下,St ~ N[0, t−k−1]。该程序的一个警示是起始点是任意选择的,结果可能因此而一致。

17.3.2 水平的 Chu-Stinchcombe-White CUSUM 检验#

该检验遵循 Homm 和 Breitung [2012]。它通过放弃 {xt}t=1,...,T 并假设 H0: βt = 0(即我们预测无变化 Et−1[Δyt] = 0)来简化前一种方法。这将允许我们直接处理 yt 的水平,从而降低计算负担。我们计算对数价格 yt 相对于 yn(t > n)处对数价格的标准化偏离为

在零假设 H0: βt = 0 下,Sn,t ~ N[0, 1]。单侧检验的时间相关临界值为

这些作者通过蒙特卡洛推导出 b0.05 = 4.6。该方法的一个缺点是参考水平 yn 的设定有些任意。为克服这一缺陷,我们可以在一系列向后移动的窗口 n ∈ [1, t] 上估计 Sn,t,并选择 。

17.4 爆炸性检验#

爆炸性检验通常可分为测试单个泡沫和测试多个泡沫两类。在此上下文中,泡沫不限于价格上涨,也包括抛售。允许多个泡沫的检验更稳健,因为泡沫-破裂-泡沫的循环会使序列对单泡沫检验看起来是平稳的。Maddala 和 Kim [1998] 及 Breitung [2014] 提供了文献的良好概述。

17.4.1 Chow 型 Dickey-Fuller 检验#

一系列爆炸性检验受 Gregory Chow 的工作启发,始于 Chow [1960]。考虑一阶自回归过程

其中 ϵt 是白噪声。零假设是 yt 遵循随机游走 H0: ρ = 1,备择假设是 yt 从随机游走开始但在时间 τ*T(τ* ∈ (0, 1))变为爆炸性过程:

在时间 T,我们可以测试在时间 τ*T(断点日期)是否发生了切换(从随机游走到爆炸性过程)。为检验该假设,我们拟合以下规范,

其中 Dt[τ*] 是虚拟变量,如果 t < τ*T 取零值,如果 t ≥ τ*T 取值一。然后,零假设 H0: δ = 0 对(单侧)备择假设 H1: δ > 1 进行检验:

该方法的主要缺点是 τ* 未知。为解决此问题,Andrews [1993] 提出了一种新检验,在某个区间 τ* ∈ [τ0, 1−τ0] 内尝试所有可能的 τ*。正如 Breitung [2014] 解释的,我们应在样本的开始和结束时排除一些可能的 τ*,以确保每个状态都有足够的观测拟合(Dt[τ*] 中必须有足够的零和一)。未知 τ* 的检验统计量是所有 T(1−2τ0) 个 值的最大值。

Chow 方法的另一个缺点是它假设只有一个断点日期 τ*T,且泡沫一直运行到样本结束(没有切回随机游走)。对于存在三个或更多状态(随机游走 → 泡沫 → 随机游走...)的情况,我们需要讨论上确界增强 Dickey-Fuller(SADF)检验。

17.4.2 上确界增强 Dickey-Fuller#

用 Phillips、Wu 和 Yu [2011] 的话说:「标准单位根和协整检验不适合检测泡沫行为,因为它们无法有效区分平稳过程和周期性崩溃泡沫模型。数据中周期性崩溃泡沫的模式看起来更像是单位根或平稳自回归生成的数据,而非潜在的爆炸性过程。」为解决该缺陷,这些作者提出拟合回归规范

其中我们检验 H0: β ≤ 0,H1: β > 0。受 Andrews [1993] 启发,Phillips 和 Yu [2011] 及 Phillips、Wu 和 Yu [2011] 提出了上确界增强 Dickey-Fuller 检验(SADF)。SADF 在每个终点 t 以向后扩展的起始点拟合上述回归,然后计算

其中 在从 t0 开始到 t 结束的样本上估计,τ 是分析中使用的最小样本长度,t0 是向后扩展窗口的左边界,t = τ, ..., T。对于 SADFt 的估计,窗口的右侧固定在 t。标准 ADF 检验是 SADFt 的特例,其中 τ = t−1。

SADFt 和 SDFC 之间有两个关键区别:第一,SADFt 在每个 t ∈ [τ, T] 处计算,而 SDFC 仅在 T 处计算。第二,SADF 不引入虚拟变量,而是递归扩展样本的开始(t0 ∈ [1, t−τ])。通过在 (t0, t) 上尝试嵌套双循环的所有组合,SADF 不假设已知的状态切换数或断点日期。图 17.1 显示了应用 ETF 技巧(第 2 章第 2.4.1 节)后的 E-mini S&P 500 期货价格序列,以及从该价格序列导出的 SADF。当价格表现出泡沫行为时 SADF 线飙升,当泡沫破裂时回到低水平。在以下各节中,我们将讨论 Phillips 原始 SADF 方法的一些增强。

图 17.1 价格(左 y 轴)和 SADF(右 y 轴)随时间变化

17.4.2.1 原始价格与对数价格

文献中常见在原始价格上执行结构性突变检验的研究。在本节中,我们将探讨为什么应优先使用对数价格,特别是在处理涉及泡沫和破裂的长时间序列时。

对于原始价格 {yt},如果 ADF 的零假设被拒绝,意味着价格是平稳的,具有有限方差。其含义是收益 不是时间不变的,因为为了保持价格方差恒定,收益的波动率必须随价格上涨而降低、随价格下跌而增加。当我们在原始价格上运行 ADF 时,我们假设收益的方差对价格水平不变。如果收益方差碰巧对价格水平不变,模型将是结构性异方差的。

相比之下,如果我们使用对数价格,ADF 规范将表述为

让我们做变量代换 xt = kyt。现在 log[xt] = log[k] + log[yt],ADF 规范将表述为

在这种基于对数价格的替代规范下,价格水平条件化收益的均值,而非收益的波动率。差异在小样本中(k ≈ 1)在实践中可能不重要,但 SADF 在数十年间运行回归,泡沫产生的水平在各状态之间显著不同(k ≠ 1)。

17.4.2.2 计算复杂度

该算法在 中运行,因为 SADF 对于总样本长度 T 需要的 ADF 检验数为

考虑 ADF 规范的矩阵表示,其中 和 。求解单个 ADF 回归涉及的浮点运算(FLOPs)列于表 17.1。

表 17.1 每个 ADF 估计的 FLOPs

矩阵运算FLOPs
o1 = X'y(2T−1)N
o2 = X'X(2T−1)N²
o3 = o2^−1^N³ + N² + N
o4 = o3o12N² − N
o5 = y − Xo4T + (2N−1)T
o6 = o5'o52T − 1

这给出每个 ADF 估计总共 f(N, T) = N³ + N²(2T+3) + N(4T−1) + 2T + 2 FLOPs。单个 SADF 更新需要 FLOPs(T−τ 次运算找到最大 ADF 统计量),完整 SADF 序列的估计需要 。

考虑 E-mini S&P 500 期货的美元条序列。对于 (T, N) = (356631, 3),一个 ADF 估计需要 11,412,245 FLOPs,一个 SADF 更新需要 2,034,979,648,799 次运算(约 2.035 TFLOPs)。完整 SADF 时间序列需要 241,910,974,617,448,672 次运算(约 242 PFLOPs)。随着 T 继续增长,这个数字将快速增加。且该估计排除了对齐、数据预处理、I/O 作业等出了名昂贵的操作。毋庸置疑,该算法的双循环需要大量运算。可能需要运行高效并行实现算法的 HPC 集群才能在合理时间内估计 SADF 序列。第 20 章将介绍在这些情况下有用的并行化策略。

17.4.2.3 指数行为的条件

考虑对数价格的零滞后规范 Δlog[yt] = α + βlog[yt−1] + ϵt。这可以重写为 ,其中 。向后回滚 t 个离散步骤,我们得到 ,或 。索引 t 可以在给定时间重置,以投射 y0 → yt 在接下来 t 步后的未来轨迹。这揭示了表征该动态系统三种状态的条件:

  • 稳态: 。
    • 非均衡为 。
    • 则 在 (半衰期)处。
  • 单位根:β = 0,系统非平稳,行为如同鞅。
  • 爆炸性:β > 0, 。

17.4.2.4 分位数 ADF

SADF 取 t 值序列的上确界 。选择极值引入了一些稳健性问题,SADF 估计可能因采样频率和样本的具体时间戳而显著变化。更稳健的 ADF 极值估计器如下:第一,令 。第二,我们定义 Qt,q = Q[st, q] 为 st 的 q 分位数,作为高 ADF 值集中度的度量,其中 q ∈ [0, 1]。第三,我们定义 ,0 < v ≤ min{q, 1−q},作为高 ADF 值离散度的度量。例如,我们可以设 q = 0.95 和 v = 0.025。注意 SADF 只是 QADF 的特例,其中 SADFt = Qt,1 且 未定义因为 q = 1。

17.4.2.5 条件 ADF

或者,我们可以通过计算条件矩来解决 SADF 稳健性问题。令 f[x] 为 的概率分布函数,x ∈ st。然后,我们定义 Ct,q = K^−1^∫^∞^Qt,q~~ xf[x]dx 作为高 ADF 值集中度的度量,以及 作为高 ADF 值离散度的度量,正则化常数为 。例如,我们可以使用 q = 0.95。

按构造,Ct,q ≤ SADFt。SADFt 对 Ct,q 的散点图显示该下边界,作为斜率约为一的上升线(见图 17.2)。当 SADF 超过 −1.5 时,我们可以看到一些水平轨迹,与 st 右胖尾的突然变宽一致。换言之, 可以达到显著大的值,即使 Ct,q 相对较小,因为 SADFt 对异常值敏感。

图 17.2 SADF(x 轴)vs CADF(y 轴)

图 17.3(a) 绘制了 E-mini S&P 500 期货价格随时间变化的 。图 17.3(b) 是在 E-mini S&P 500 期货价格上计算的 对 SADFt 的散点图。它表明 st 中的异常值将 SADFt 向上偏移。

图 17.3 (a) 随时间变化 (b) (y 轴)作为 SADFt(x 轴)的函数

17.4.2.6 SADF 的实现

本节介绍了 SADF 算法的实现。该代码的目的不是快速估计 SADF,而是澄清其估计涉及的步骤。代码片段 17.1 列出了 SADF 的内循环。即估计 的部分,这是算法的向后移位组件。外循环(此处未显示)对推进的 t 重复此计算,{SADFt}t=1,...,T。参数为:

  • logP:包含对数价格的 pandas 序列
  • minSL:最终回归使用的最小样本长度(τ)
  • constant:回归的时间趋势分量
    • 'nc':无时间趋势,仅有常数
    • 'ct':常数加线性时间趋势
    • 'ctt':常数加二次多项式时间趋势
  • lags:ADF 规范中使用的滞后数

代码片段 17.1 SADF 的内循环

代码片段 17.2 列出了函数 getXY,它准备执行递归检验所需的 numpy 对象。

代码片段 17.2 准备数据集

代码片段 17.3 列出了函数 lagDF,它对数据帧应用其参数 lags 中指定的滞后。

代码片段 17.3 对数据帧应用滞后

最后,代码片段 17.4 列出了函数 getBetas,它执行实际回归。

代码片段 17.4 拟合 ADF 规范

17.4.3 亚鞅和超鞅检验#

在本节中,我们将介绍不依赖标准 ADF 规范的爆炸性检验。考虑一个是亚鞅或超鞅的过程。给定一些观测 {yt},我们希望在替代规范下测试爆炸性时间趋势的存在,H0: β = 0,H1: β ≠ 0:

  • 多项式趋势 (SM-Poly1):
  • 多项式趋势 (SM-Poly2):
  • 指数趋势 (SM-Exp):
  • 幂趋势 (SM-Power):

与 SADF 类似,我们将这些规范拟合到每个终点 t = τ, ..., T,以向后扩展的起始点,然后计算

取绝对值的原因是我们对爆炸性增长和崩溃同样感兴趣。在简单回归情况下(Greene [2008],p. 48),β 的方差为 ,因此 。同样的结果可推广到多元线性回归情况(Greene [2008],pp. 51-52)。弱长期泡沫的 可能小于强短期泡沫的 ,因此使方法偏向长期泡沫。为纠正这种偏差,我们可以通过确定产生最佳爆炸性信号的系数 φ ∈ [0, 1] 来惩罚大样本长度。

例如,当 φ = 0.5 时,我们补偿与较长样本长度关联的较低 (在简单回归情况下)。对于 φ → 0,SMTt 将表现出更长的趋势,因为该补偿减弱,长期泡沫掩盖短期泡沫。对于 φ → 1,SMTt 变得更嘈杂,因为更多的短期泡沫被选优于长期泡沫。因此,这是调整爆炸性信号的自然方式,使其过滤针对特定持有期的机会。ML 算法使用的特征可以包括从广泛 φ 值范围估计的 SMTt。

练习题#

  1. 在 E-mini S&P 500 期货的美元条序列上:

    1. 应用 Brown-Durbin-Evans 方法。它是否识别了互联网泡沫?
    2. 应用 Chu-Stinchcombe-White 方法。它是否在 2007-2008 年发现了泡沫?
  2. 在 E-mini S&P 500 期货的美元条序列上:

    1. 计算 SDFC(Chow 型)爆炸性检验。该方法选择什么断点日期?这是你预期的吗?
    2. 计算并绘制该序列的 SADF 值。你是否观察到互联网泡沫和大衰退前的极端飙升?破裂是否也导致了飙升?
  3. 接续练习 2:

    1. 确定序列表现出以下状态的期间:
      1. 稳态条件
      2. 单位根条件
      3. 爆炸性条件
    2. 计算 QADF。
    3. 计算 CADF。
  4. 在 E-mini S&P 500 期货的美元条序列上:

    1. 计算SM-Poly1 和 SM-Poly2 的 SMT,其中 φ = 1。它们的相关性是多少?
    2. 计算 SM-Exp 的 SMT,其中 φ = 1 和 φ = 0.5。它们的相关性是多少?
    3. 计算 SM-Power 的 SMT,其中 φ = 1 和 φ = 0.5。它们的相关性是多少?
  5. 如果你计算每个价格的倒数,序列 {yt^−1^} 将泡沫变为破裂,将破裂变为泡沫。

    1. 识别破裂是否需要该变换?
    2. 本章中哪些方法可以在不需要该变换的情况下识别破裂?

参考文献#

  1. Andrews, D. (1993): "Tests for parameter instability and structural change with unknown change point." Econometrics, Vol. 61, No. 4, pp. 821--856.
  2. Breitung, J. and R. Kruse (2013): "When Bubbles Burst: Econometric Tests Based on Structural Breaks." Statistical Papers, Vol. 54, pp. 911--930.
  3. Breitung, J. (2014): "Econometric tests for speculative bubbles." Bonn Journal of Economics, Vol. 3, No. 1, pp. 113--127.
  4. Brown, R.L., J. Durbin, and J.M. Evans (1975): "Techniques for Testing the Constancy of Regression Relationships over Time." Journal of the Royal Statistical Society, Series B, Vol. 35, pp. 149--192.
  5. Chow, G. (1960). "Tests of equality between sets of coefficients in two linear regressions." Econometrica, Vol. 28, No. 3, pp. 591--605.
  6. Greene, W. (2008): Econometric Analysis, 6th ed. Pearson Prentice Hall.
  7. Homm, U. and J. Breitung (2012): "Testing for speculative bubbles in stock markets." Journal of Financial Econometrics, Vol. 10, No. 1, pp. 198--231.
  8. Maddala, G. and I. Kim (1998): Unit Roots, Cointegration and Structural Change, 1st ed. Cambridge University Press.
  9. Phillips, P., Y. Wu, and J. Yu (2011): "Explosive behavior in the 1990s Nasdaq." International Economic Review, Vol. 52, pp. 201--226.
  10. Phillips, P. and J. Yu (2011): "Dating the timeline of financial bubbles during the subprime crisis." Quantitative Economics, Vol. 2, pp. 455--491.
  11. Phillips, P., S. Shi, and J. Yu (2013): "Testing for multiple bubbles 1." Working paper 8--2013, Singapore Management University.