跳到正文

White 的 Reality Check 重访:应用自助法

White Reality Check 实用指南:定义联合零假设、保持时间依赖、自助最大值、保守解释、避免常见实施陷阱。

第 12 篇 · 共 12 篇 约 9 分钟

White 检验回答的问题

你尝试了策略集合并选择了最好的一个。它的平均超额收益为正,Sharpe 看起来体面。自然问题是:获胜策略包含技能证据,还是它只是搜索产生的看起来最好的结果?

White 的 Reality Check 问在考虑它从候选族中被选择的事实后最佳策略是否显著优于基准(White 2000)。它是联合检验,不是粘贴在一起的普通 t 检验序列。零假设关于跨候选集的最大表现。

该区别重要。如果你运行一个预先指定策略,常规检验可能是正确起点。如果你运行 500 个变体并报告赢家,感兴趣对象是最大值。White 检验将最大值构建到零分布中。

设置表现差异

设 rk,tr_{k,t} 为时刻 tt 的策略 kk 的收益,bk,tb_{k,t} 为其基准的收益。定义差异

dk,t=rk,t−bk,t.d_{k,t}=r_{k,t}-b_{k,t}.

样本均值差异是

dˉk=1T∑t=1Tdk,t.\bar{d}_k=\frac{1}{T}\sum_{t=1}^{T}d_{k,t}.

观察赢家是

V^=max⁡1≤k≤Kdˉk.\widehat{V}=\max_{1\le k\le K}\bar{d}_k.

White 原始公式使用损失或表现标准并检验没有模型优越的零假设。在交易应用中,方便单边版本是

H0:max⁡kE[dk,t]≤0,H_0: \max_k E[d_{k,t}]\le0,

对

H1:max⁡kE[dk,t]>0.H_1: \max_k E[d_{k,t}]>0.

基准必须在检验前定义。对美元中性多空策略它可以是零,但融资、借券和市场中性约束仍重要。对方向性策略它可以是现金、指数或风险调整因子基准。看到哪个策略获胜后选择的基准在花园中创建另一个分叉。

为什么普通自助法对收益错误

iid 自助法重采样单个观察。这方便但对金融收益常常无效。收益可以展现波动率聚集、序列依赖、共同冲击、重叠持有期和跨策略依赖。重采样单月摧毁了统计量依赖的时间结构。

块自助法重采样连续块。平稳自助法使用带随机几何分布长度的块,这避免固定边界结构并在标准条件下产生平稳重采样序列(Politis and Romano 1994)。平均块长度是调优参数。它应足够长以保持对表现统计量相关的依赖,足够短以提供许多有效块。

平稳自助法从随机时间索引开始。在每一步,它要么继续当前块要么跳到新随机索引。如果继续概率是 1−p1-p,块长度有几何均值

L=1p.L=\frac{1}{p}.

索引环绕样本以使重采样序列有长度 TT。这是实施便利,不是声称原始市场中一月跟随十二月。

零假设必须居中

微妙问题是观察策略可能有正样本均值。如果我们自助原始差异,重采样分布可以保持它们观察到的正均值并产生过于有利的零假设。

常见居中步骤减去每个策略的估计均值:

d~k,t=dk,t−dˉk.\tilde{d}_{k,t}=d_{k,t}-\bar{d}_k.

自助法然后问如果每个候选有零期望差异但保留观察到的依赖结构,最大均值可以多大。自助抽样 bb 的居中统计量是

V^∗(b)=max⁡k(1T∑t=1Td~k,t∗(b)).\widehat{V}^{*(b)}=\max_k\left(\frac{1}{T}\sum_{t=1}^{T}\tilde{d}_{k,t}^{*(b)}\right).

p 值是抽取中居中自助最大值至少与观察最大值一样大的分数,在将观察统计量和自助统计量放在相同尺度上之后。一些实现使用学生化统计量而非原始均值。选择应记录并匹配检验推导。

不居中是常见错误。它等价于问已经包含观察 alpha 的数据生成过程是否可以重现观察 alpha。它通常可以。那不是有用零假设。

实用算法

可辩护 Reality Check 工作流有这些步骤:

  1. 冻结候选集和基准。
  2. 计算每个策略的时间序列差异。
  3. 选择依赖保留自助法和块长度规则。
  4. 计算观察最大表现。
  5. 在联合零假设下居中差异。
  6. 用所有策略的重采样索引生成 BB 个自助样本。
  7. 计算每个抽取中的最大表现。
  8. 估计 p 值和 Monte Carlo 误差。
  9. 报告整个候选族,而非仅赢家。

跨策略应使用相同重采样索引。这保持它们的横截面依赖。分别自助每个策略抹去许多策略在相同市场日亏损或赚钱的事实。

有 BB 个自助抽取和估计 p 值 p^\hat{p},粗略 Monte Carlo 标准误是

SEMC(p^)≈p^(1−p^)B.SE_{MC}(\hat{p})\approx\sqrt{\frac{\hat{p}(1-\hat{p})}{B}}.

如果 B=1,000B=1{,}000 和 p^=0.05\hat{p}=0.05,Monte Carlo 标准误约 0.007。报告 p 值 0.049 不是对 0.051 的科学胜利。自助法也有噪声。

平稳自助代码

以下实现返回居中均值差异的自助最大值。它故意显式使索引和居中可见。

import numpy as np


def reality_check(differentials, draws=2000, mean_block=12, seed=11):
    rng = np.random.default_rng(seed)
    t_count, strategy_count = differentials.shape
    observed = differentials.mean(axis=0).max()
    centered = differentials - differentials.mean(axis=0)
    maxima = np.empty(draws)
    continuation = 1.0 - 1.0 / mean_block
    for draw in range(draws):
        indices = np.empty(t_count, dtype=int)
        indices[0] = rng.integers(t_count)
        for t in range(1, t_count):
            if rng.random() < continuation:
                indices[t] = (indices[t - 1] + 1) % t_count
            else:
                indices[t] = rng.integers(t_count)
        maxima[draw] = centered[indices].mean(axis=0).max()
    p_value = np.mean(maxima >= observed)
    return observed, p_value, maxima

在最简版本中有尺度问题:居中自助最大值居中在零附近而观察最大值在收益单位,那正是我们想要的均值表现检验。学生化实现将每个候选的均值除以估计标准误并自助那些标准化统计量的最大值。不要将原始观察统计量与学生化自助分布混合。

选择块长度

没有普遍神奇块长度。均值应反映收益和信号的依赖 horizon。月度收益自年度再平衡可能需要不同于日度收益自重叠 20 天策略的块长度。

太短的块将依赖观察视为独立并使零分布过窄。太长的块产生太少的有效块并使自助法有噪声。在查看哪个给出最友好 p 值前,使用几个合理长度作为敏感分析,但选择主长度。

自动块长度选择器可以帮忙,但它们不替代经济判断。检查自相关、波动率聚集、换手周期和标签重叠。如果策略持有头寸 20 个交易日,单日块是制造观察的可疑便捷方式。

数据窥探解释

Reality Check 在候选集诚实定义时最强。它不能校正尝试然后忘记的策略。如果研究过程包括未记录想法,检验的 KK 低估了搜索。p 值将过于乐观。

这是保留候选工件的实际原因。保存策略名称、参数、代码修订、数据快照、表现系列和失败运行。传递给 Reality Check 的集合应合理代表研究搜索,不是存活审美审查的集合。

White 检验还对差候选敏感。极其噪声或非常差策略的大族可以降低功效因为最大统计量变得更难从零假设区分。这是数据窥探悖论:包括每个荒谬策略诚实但可以使检验保守;看到收益后因为看起来荒谬排除策略是选择性的。解决方案是基于研究协议而非事后洞察定义候选族。

Reality Check 对多重检验校正

Bonferroni 和 Holm 在 p 值集合上操作。White 检验在最大表现统计量上操作并可以通过自助法保持依赖。如果策略高度相关,自助法可以比将每个检验视为独立更不保守。

Reality Check 测试全局零假设:是否有任何候选优越?它不自动告诉你哪些个体策略在控制家族错误率下显著。如果你需要发现列表,使用逐步下降程序如 Romano-Wolf 或合适多重检验方法。

Hansen 的 Superior Predictive Ability 检验处理原始 Reality Check 的弱点:差替代品可以影响零分布并降低功效(Hansen 2005)。SPA 检验应用不同最近中化和学生化逻辑。它不是“白但更新”的方式让你随意组合公式。选择匹配假设的程序并实施已发表统计量。

检验不解决什么

Reality Check 不修复前瞻偏差。如果每个策略使用修订会计数据,自助法将忠实地重采样污染收益矩阵。

它不修复生存偏差。在存活整体上评估的候选族可以由于错误原因联合不显著。

它不修复交易成本。如果声称关于净表现,在净差异上运行检验。测试总收益后减去成本估计不解释成本不确定度或赢家可能是最少诚实模型化换手的候选。

它不修复 regime 非平稳性。平稳自助法假设足够稳定性使重采样近似有意义。如果市场结构性改变,单个池化零假设可能误导。使用子时期、regime 感知设计或显式允许时变的假设。

它不验证经济机制。显著最大仍可以是常见数据错误的可交易伪影。

报告结果无戏剧

有用报告包括:

  • 候选数和候选如何生成;
  • 基准和表现统计量;
  • 居中约定;
  • 自助类型和平均块长度;
  • 抽取数和种子;
  • 观察最大值和赢家身份;
  • Reality Check p 值带 Monte Carlo 不确定度;
  • 对合理块长度的敏感性;
  • 净成本结果;
  • 完整候选分布的表现。

也报告赢家的普通 t 统计量,但正确标记。它是条件于选择上的描述统计量。Reality Check p 值是选择感知检验。

50 策略搜索透明后 p 值 0.04 是有用证据。未知搜索后 p 值 0.04 是有漂亮发型的数字。

小解释例子

假设 100 个动量变体产生最佳平均超额收益每月 0.30%。最佳普通 t 统计量是 2.4。带 2,000 抽取和平均块长度 12 个月的平稳自助法产生 Reality Check p 值 0.18。

正确结论不是“动量错”。它是:“声明 100 变体中最佳在该选择感知零假设下不显著优于基准。”另一个预先指定因子或更广机制仍可能有用。候选族、样本、成本和依赖假设决定被测试的是什么。

如果净成本最佳收益降到 0.05% 且 p 值升到 0.42,即使总 p 值小,策略也未通过交易标准。检验在做其工作:它缩小声称。

实用标准

当问题是搜索族的最佳成员是否有预测能力时使用 White 的 Reality Check。保持时间依赖。居中自助零假设。跨策略保持共同索引。记录候选集。报告 Monte Carlo 误差。比较总收益和净表现。将 p 值视为条件于声明族,而非被遗忘实验的普遍赦免。

检验不是标记为“反过拟合”的按钮。它是使选择事件成为统计问题一部分的方式。足够有用。当赢家不得不介绍其所有兄弟姐妹时,大多数回测变得不那么印象深刻。

p 值前的自助诊断

在解释 Reality Check p 值前,检查自助法本身。绘制自助最大值分布并标记观察最大值。分布应足够宽以反映数据中的依赖且足够稳定使加倍抽取数不显著移动 p 值。

居中后检查候选级均值。有非常波动收益序列的候选可以主导原始最大值即使其均值经济上无意义。如果目标是 Sharpe 比率,始终使用学生化统计量。如果目标是净收益,居中前在差异中包括成本。

跨平均块长度运行敏感性,但不购买最小 p 值。有用报告可能显示块长度 6、12 和 24 个月,因为那些对应合理依赖 horizon。如果结论跨范围改变,结果对建模假设敏感应这样报告。

使用自助种子并记录软件版本。自助法 p 值是 Monte Carlo 估计。用另一种子重新运行应在可预测范围内移动结果。如果不是,增加抽取数或调查数值不稳定性。

也有对候选族的实际警告。看到哪些策略存活后组装的策略库不是原研究族。保留发现账本并包括选择时合理的策略。相反,不要将无限荒谬随机规则集合扔进检验只是为了使 p 值惩罚。族应对应研究问题和实际搜索。

最后,将 Reality Check 与独立检验如保留或后续实时期比较。联合自助法可以告诉你历史候选中最佳在零假设下不寻常。它不能告诉你获胜规则在市场、数据和执行环境改变后仍盈利。

  • White, H. (2000). “A Reality Check for Data Snooping.” Econometrica, 68(5), 1097-1126.
  • Hansen, P. R. (2005). “A Test for Superior Predictive Ability.” Journal of Business & Economic Statistics, 23(4), 365-380.
  • Politis, D. N. and Romano, J. P. (1994). “The Stationary Bootstrap.” Journal of the American Statistical Association, 89(428), 1303-1313.
  • Romano, J. P. and Wolf, M. (2005). “Stepwise Multiple Testing as Formalized Data Snooping.” Econometrica, 73(4), 1237-1282.
  • Hou, K., Xue, C., and Zhang, L. (2020). “Replicating Anomalies.” The Review of Financial Studies, 33(5), 2019-2133.
  • Chen, A. Y. and Zimmermann, T. (2021). “Open Source Cross-Sectional Asset Pricing.” Critical Finance Review, 10(1), 1-62.
  • López de Prado, M. (2018). Advances in Financial Machine Learning. Wiley, 第 11-15 章.