因子研究中的多重检验:分叉路径花园
看起来无害的研究选择如何产生数千个隐含检验,为什么名义 p 值不是研究历史,以及预注册如何将探索性工作转为可审计证据。
结果不是诞生于最终回归
金融论文通常展示一个主表。表是干净的:一个信号、一个样本、一个组合规则、一个基准、一个标准误、一个 p 值。产生它的研究过程很少干净。它可能包括数十个候选变量、样本窗口、变换、断点、权重规则和稳健性检验。最终 p 值不记得这些。
Andrew Gelman 和 Eric Loken 将问题称为“分叉路径花园”:分析师做出选择,每个单独可以辩护,但选择整体给了数据许多产生有利结果的机会(Gelman and Loken 2013)。在因子研究中,花园不是隐喻。它是研究工作流。
研究人员不需要作弊。变量可以在 1% 而不是 2% 处极值处理,因为这看起来标准。危机年可以被排除因为市场异常。五分位排序可以优于十分位排序因为尾部有噪声。每个决策可以有体面解释。统计问题是解释常在看到数据做什么之后选择。
在计算因子之前先计算分叉
假设研究人员考虑:
- 4 个候选价值变量;
- 3 种极值处理规则;
- 3 个样本窗口;
- 2 种组合权重;
- 3 种再平衡频率;
- 2 个关于微盘的选项;
- 2 个基准模型。
完整网格包含
个规格。研究人员可能永远不运行每个组合,但有效机会数仍远大于 1。顺序研究使这更糟:结果提示新子组,新子组提示新控制,新控制提示新持有期。分支数增长而笔记变得更自信。
在全局零假设下所有规格都没有真实效应,名义双边 5% 检验以概率 产生拒绝每独立检验。如果检验独立,至少一个拒绝的概率为
该值实质上是 1。实际规格相关,所以确切概率低于该独立性计算。它不远接近 5%。
重要词是有效。仅在次要极值处理规则上不同的两个规格共享大部分噪声。价值信号和盈利能力信号可能相关性更小。样本窗口选择可以与再平衡选择强相关。检验既不是完全独立也不是完全相同。数据仍然对苹果有多次咬合。
没有恶棍服装的 P-hacking
P-hacking 常被描述为故意操纵:研究人员尝试分析直到 p 值降到 0.05 以下,然后停止。这会发生。更常见的是,p-hacking 是由相信其假设的人执行的激励兼容工作流。
典型序列平凡:
- 测试原变量。t 统计量是 1.4。
- 注意极值有影响。极值处理它们。t 统计量是 1.9。
- 用十分位排序因为尾部看起来更分开。t 统计量是 2.2。
- 用价值权重因为等权重过度代表小公司。t 统计量是 2.0。
- 删除前两年因为数据库薄。t 统计量是 2.4。
- 添加使经济故事更清晰的基准因子。t 统计量是 2.1。
每一步可以辩护。最终 p 值仍反映搜索。称这为“稳健性”不会将其转为预先指定证据。
问题不是研究人员从数据学习。探索性工作必要。问题是探索性工作常被报告为好像它是确认性的。边走边画的地图有用。它不是预测路线的证据。
p 值依赖于模型而非个性
对单个预先指定的检验统计量 ,p 值是
该概率依赖于零假设模型、统计量、样本和分析规则。如果规则本身在查看数据后选择,相应事件不是“这个统计量极端”。而是“我能选择的规则中的最大值极端”。
设 为候选统计量,。选择感知 p 值为
已选择规格的报告 p 值可以是 0.03 而 是 0.70。这不是矛盾。第一个回答单检验问题。第二个回答研究过程所问的问题。
如果检验独立且每个有双边拒绝概率 ,那么
对双边 阈值,这变成 。相关性改变校准,但最大统计量框架保持正确。
发表管道复合搜索
一篇论文的花园只是第一层。研究社区可以测试许多从未出现在期刊中的想法。正面结果更可能被撰写、流传、接受、引用和记住。已发表因子因此被选择两次:首先由研究人员的规格搜索,然后由发表过程。
Harvey、Liu 和 Zhu (2016) 在期望收益横截面中编制了 316 个已发表变量,并展示为什么常规 t 统计量阈值不存活于该历史。316 个变量不是所有尝试的数量。它们是从失败因子、未发表草稿、被放弃定义和太无聊而无法提交的结果组成的冰山的可见尖端。
文献也有反馈循环。一旦论文发表,后来研究人员使用因子作为控制。如果它弱化,他们可能发明精炼版本。如果精炼版本在一个样本中有效,它变成另一个已发表变量。因子动物园增长即使潜在信息被循环。
这就是为什么计算“论文”低估多重性。计算假设、候选变量、变换、组合规则、样本、控制和绩效度量。如果计数不确定,不确定性属于证据账本。
预注册做了一件重要的事
预注册不会使检验为真。它使检验的决策规则可审计。在看到结果之前,研究人员记录假设、变量定义、样本、组合构建、基准、标准误、排除规则和主检验。带时间戳的文件确立了什么是确认性的和什么是探索性的。
假设研究人员预先注册基于点时账面市值比的顶尾和底尾五分位的长短组合,价值加权,月度,带一个月的形成滞后期,在声明样本上。如果结果失败,失败是信息性的。如果研究人员后来发现十分位和等权重有效,那些结果可以报告为探索性发现并用于设计未来确认性检验。它们不应悄悄替代原检验。
预注册可以简短。重点不是官僚。重点是将计划与反应分离。好的注册应回答:
- 主要假设是什么?
- 主要结果和时间范围是什么?
- 哪些观察被包括?
- 哪些决定在分析前固定?
- 如何处理缺失值、退市和异常值?
- 什么算成功检验?
- 哪些分析是探索性的?
最后一个问题重要。标记探索不是软弱承认。它是发现如何工作的准确描述。
异议:市场不是临床试验
金融研究人员有时抵抗预注册因为金融数据混乱且假设演变。该异议部分正确且常被误用。
临床试验可以在招募患者前指定终点因为治疗和人群固定。因子项目可能需要探索性工作来了解相关构念是估值、盈利能力、流动性还是关注。否则假装将是愚蠢的。但探索性工作不要求呈现最终已选择检验好像它已预先指定。
两阶段设计处理紧张:
- 用发现样本进行探索和模型构建。
- 冻结假设并在未触及的确认样本上测试它。
确认样本不只是“我没怎么用的数据”。它必须受保护免于搜索。一旦研究人员检查其表现并改变规则,它变成开发数据。这是与开发者看到失败后改变预期输出变得无意义的软件测试相同逻辑。
校正未知数量的分叉
Bonferroni 需要计数 。在分叉路径花园中, 通常未知。研究人员可能记得最终路径而忘记死胡同。可辩护的反应有四部分。
首先,定义研究族。所有测量价值的方法属于一起。同一动量想法的所有回看选择属于一起。不要让任意论文边界隐藏相关检验。
其次,记录可见搜索。每个候选规格应在选择前记录。日志不必全部发布,但它应存在。
第三,用模拟或重采样估计零最大值。在保留重要依赖性的零下生成结果,重复相同搜索管道,并每次记录最佳统计量。结果经验分布比假装计数为一更好地反映实际搜索。
第四,保留确认样本并不重复花费它。保留样本是资源,不是报告中的仪式线。
import numpy as np
rng = np.random.default_rng(7)
trials = 5000
specifications = 200
null_max = np.max(rng.standard_normal((trials, specifications)), axis=1)
observed_best = 2.7
p_value = np.mean(null_max >= observed_best)
print(p_value)
该玩具模拟假设独立正态统计量。真实因子研究应重采样时间块,保留横截面依赖性,并重放实际规格管道。重要习惯是模拟搜索,不只是最终回归。
花园也是经济的
多重检验不仅是统计问题。它改变什么被称为经济解释。如果特征因为它在一个样本中预测收益被选择,故事可能事后被反向工程。负关系变成“投资者不喜欢不确定性”。正关系变成“投资者要求风险补偿”。同一结果可以吸引几个故事,这方便因为至少一个通常合适。
经济理论有价值因为它在结果之前约束搜索。它预测方向、时间范围、受影响公司和效应应该加强或减弱的条件。解释每个可能符号的理论什么也不解释。做出风险预测的理论给数据不同意机会。
理论也帮助组织多重性。如果五个比率是一个经济机制的代理,适当问题可能是机制是否预测收益,而非每个比率是否赢得其自身显著性比赛。将相关信号组合到预先指定的复合中可以减少加冕一个噪声代理为英雄的激励。
因子研究人员的工作协议
用将笔记视为实验日志而非吸引人图表剪贴簿的研究协议。
在查看检验收益之前,写经济机制、信号定义、时序约定、整体、组合规则、成本模型、主统计量和确认分割。包括如果探索将视为族的合理替代列表。
发现期间,保存每次运行,包括失败。不要因为规格“明显不正确”而删除它。被丢弃的运行是分母的一部分。
发现后,冻结已选规格并转到确认。报告候选数、选择标准、完整候选分布和未触及样本上冻结规则的表现。如果确认失败,保持结果。它是结果,不是软件异常。
最后,区分统计显著性和经济显著性。小但稳定的溢价在大规模可能有用。大论文 alpha 在价差、借券、容量或延迟后可能消失。没有校正能将总收益转为可交易收益。
诚实解释
预注册不会防止每个假阳性。注册假设仍可以是假的。市场可以变化。数据供应商可以修订历史。样本可能倒霉。重点更窄更有价值:预注册防止研究人员混淆发现模式和预测模式。
分叉路径花园不是停止探索的理由。它是将探索与确认分离、计数搜索、停止假装最终表包含整个历史的理由。当死胡同被允许存在时,因子研究变得更可信。
p 值不是品格证明。它是依赖于设计的计算。如果设计在查看后选择,计算应承认查看发生。
预注册而不假装探索未发生
好协议分离两个文档。第一个是探索日志,包含每个想法、图表和失败规格。第二个是确认计划,在探索后但在确认数据打开前编写。第二个文档应命名假设、变量、时序、整体、主统计量、成本模型和决策阈值。
该序列不是漏洞。它是研究如何工作的诚实描述。探索可以发现可信机制。确认测试冻结机制是否迁移。被禁止的是悄悄将最佳探索路径提升到确认状态。
确认计划也应指定如果主检验失败会发生什么。研究人员经常预注册成功标准并在未击中时即兴创作。空结果可能跟随次要结果、子组或备用基准。那些分析可以有价值,但应标记为次要。否则协议只是将花园移到幕布后面。
对因子项目,将协议写为数据合同。信号时间戳必须先于收益时间戳。整体成员资格必须点时。断点必须定义。组合箱数和权重规则必须固定。退市收益、缺失值和极端观察需要明确处理。陈述检验是单边还是双边以及为什么。
协议应命名研究族。如果确认性假设是探索期间选择的五个价值代理之一,五个代理族属于校正。如果族宽且确切数未知,报告范围并用经验零模拟。说“我们探索了 40 个变体并将它们视为一个族”比声称单检验因为只有一个变体出现在最终论文中要好。
最终保障是独立读者。给冻结协议和代码给未参与探索的人。请该人在不看结果下运行确认。这不能替代正式盲法,但减少动机解释并捕捉时序错误。
预注册不会使结果重要。它将使声明更窄、失败可解释。那正是研究设计应做的。
- Gelman, A. and Loken, E. (2013). “The Garden of Forking Paths.” 哥伦比亚大学统计系.
- Harvey, C. R., Liu, Y., and Zhu, H. (2016). “…and the Cross-Section of Expected Returns.” The Review of Financial Studies, 29(1), 5-68.
- Aronson, D. (2006). Evidence-Based Technical Analysis. Wiley, 第 9-12 章.
- Benjamini, Y. and Hochberg, Y. (1995). “Controlling the False Discovery Rate.” Journal of the Royal Statistical Society: Series B, 57(1), 289-300.
- López de Prado, M. (2018). Advances in Financial Machine Learning. Wiley, 第 11-15 章.