Senzoukria · 术语表

数据窥探偏差

数据窥探偏差是指在同一份数据上测试很多规则、参数或变体、然后留下最好那一个所造成的结果虚高。尝试越多,赢家的表现就越可能归功于偶然,所以被报告出来的结果,必须对照产生它的那个尝试次数来评判。

更新于 2026 年 9 月首次发布:2026年10月9日

本页目录
  1. 要点
  2. 为什么「众多里最好的那个」是虚高的
  3. 没人计数的那些尝试
  4. 在 Senzoukria 里
  5. 实务上的对策
  6. 相关内容
  7. 同一栏目
  8. 其他语言版本
  9. 常见问题

要点

也叫
多重检验、选择偏差、p 值操纵
20 条无用规则在 5 % 水平上
至少有一条看起来显著的概率是 64 %
正式检验
White 的现实性检验(2000)、Hansen 的 SPA 检验(2005)、紧缩夏普、PBO
在 Senzoukria 里
扫描上限 400 个组合;紧缩夏普按整张网格计数

为什么「众多里最好的那个」是虚高的

在 5 % 的显著性水平上测试一条没有优势的规则,假阳性的概率是 5 %。测试二十条互相独立、都没有优势的规则,至少有一条通过的概率是 1 − 0.95²⁰ ≈ 64 %。那条获胜规则的统计量,对这条规则、在这份数据上是真实的,但那个找到它的过程,无论如何都会找到点什么。许多带噪声结果里的最大值,按构造方式就是向上偏的;这是最大值的性质,而不是市场的性质。

Halbert White 在 2000 年为这种情形形式化了一个检验,也就是现实性检验,它把最好那条规则和「在没有优势的原假设之下、众多规则里最好那一个」的分布作比较。Peter Hansen 的优越预测能力检验(2005)对它做了精化。紧缩夏普比率和回测过拟合概率从另外的角度处理同一个问题。

没人计数的那些尝试

  • 在第一次看过结果之后,改动交易时段窗口、K 线类型或工具。
  • 因为资金曲线有一个糟糕的月份而加上一个过滤器,然后把它留下来。
  • 从一个在别人同一时期的回测里已经有效的想法出发。
  • 用一个不同的选择准则反复重跑滚动前推,直到效率看起来可以接受。
  • 这些每一件都是一次尝试。而一个正式的修正只有在计数包含了它们时才有效。

在 Senzoukria 里

自动回测的参数扫描和滚动前推,拒绝超过 400 个组合的网格,而回测助手被要求把扫描保持在 100 以下。滚动前推报告它样本外交易的紧缩夏普,其中尝试次数就是那次挑选所面对的配置数。Gauntlet 在整段期间上重跑整张网格,用整张网格而不是被留下的配置数作为 N 来算紧缩夏普,在至少有八个场次日可用时估计回测过拟合概率,并加上一个夏普比率的置换检验。软件看不到的,是你此前那些运行的历史:一张在十张被放弃的网格之后才启动的网格,被计为一组尝试。

实务上的对策

  • 在看结果之前,把假设、网格和选择准则写下来。
  • 为每一个试过的变体保留一份研究记录,包括那些被放弃的。
  • 留出一段没有任何决策碰过的最终期间,而且只用它一次。
  • 宁可要那些在网格上邻居也有效的规则,而不要一个孤立的最佳格子。

同一栏目

其他语言版本

常见问题

数据窥探和过拟合是一回事吗?
两者密切相关。过拟合描述的是一条被调到贴合某一份样本偶然性的规则。数据窥探描述的是那个挑选过程:试很多规则或变体,然后留下最好的。窥探是产生出过拟合规则的主要途径之一。
滚动前推分析能消除数据窥探偏差吗?
对那些在这套程序内部被挑选出来的参数,它降低了偏差,因为每一次挑选都是在它没见过的数据上被评估的。它不修正在这套程序之外做出的那些选择,比如规则族、工具,或者在你所报告的这一次之前跑过多少次滚动前推。
NEXT

继续阅读