钓鱼探险的问题在于:如果你测试了足够多的假设,其中一个会以较低的 p 值得到证实。让我举一个具体的例子。
想象一下,你正在做一项流行病学研究。您已经找到了 1000 名患有罕见疾病的患者。你想知道他们有什么共同点。因此,您开始测试 - 您想查看此样本中是否过度表示了特定特征。最初你测试性别、种族、某些相关的家族史(父亲在 50 岁之前死于心脏病,……)但最终,由于你很难找到任何“坚持”的东西,你开始添加各种其他因素,这些因素只是可能与疾病有关:
- 是素食主义者
- 去过加拿大
- 大学毕业
- 已结婚
- 有孩子
- 有猫
- 有狗
- 每周至少喝 5 杯红酒
……
现在事情就是这样。如果我选择了足够多的“随机”假设,那么至少其中一个假设将导致 p 值小于 0.05 - 因为 p 值的本质是“拒绝零假设时错误的概率没有效果”。换一种说法——平均而言,对于你测试的每 20 个虚假假设,其中一个会给你 ap < 0.05。
这在 XKCD 卡通http://xkcd.com/882/中得到了很好的总结:

悲剧在于,即使单个作者没有对样本进行 20 次不同的假设检验以寻找显着性,也可能有 19 位其他作者在做同样的事情;“找到”相关性的人现在有一篇有趣的论文要写,而且很可能会被接受发表……
这导致了不可重复的发现的不幸趋势。作为个人作者,防止这种情况发生的最好方法是设置更高的标准。与其测试单个因素,不如问问自己“如果我测试 N 个假设,出现至少一个误报的概率是多少”。当您真正测试“钓鱼假设”时,您可以考虑进行Bonferroni 校正以防止这种情况发生 - 但人们通常不会这样做。
Ioannides 博士发表了一些有趣的论文——《大西洋月刊》专门针对这一主题进行了介绍。
另请参阅这个较早的问题,其中包含几个有见地的答案。
更新以更好地回答您问题的各个方面:
如果您担心自己可能正在“钓鱼”,但您真的不知道要制定什么假设,您绝对可以将您的数据拆分为“探索”、“复制”和“确认”部分。原则上,这应该会限制您对前面概述的风险的暴露:如果您在勘探数据中的 ap 值为 0.05,并且您在复制和确认数据中获得了相似的值,那么您出错的风险就会下降。英国医学杂志(影响因子为 17+ 的备受推崇的出版物)展示了“正确行事”的一个很好的例子
探索和确认与未产妇女单纯妊娠相关的因素:前瞻性队列研究,Chappell等人
以下是相关段落:
我们将 5628 名女性的数据集分为三部分:随机选择的澳大利亚和新西兰三分之二女性的探索数据集(n=2129);来自澳大利亚和新西兰的其余三分之一女性的本地复制数据集(n = 1067);以及来自英国和爱尔兰共和国的 2432 名欧洲女性的外部、地理上不同的确认数据集。
回顾一下文献,Altman 等人发表了一篇题为“预后和预后研究:验证预后模型”的好论文,其中深入得多,并提出了确保您不会陷入这个错误。文章中的“要点”:
未经验证的模型不应在临床实践中使用 在验证预后模型时,应评估校准和辨别力 应根据与用于开发模型的数据不同的数据进行验证,最好来自其他中心的患者 模型在实践中可能表现不佳由于开发方法的缺陷或因为新样品与原始样品差异太大
特别注意使用来自其他来源的数据进行验证(我解释一下)的建议- 即,将数据任意拆分为子集是不够的,但您应该尽您所能证明从一组中“学习”的实验可以应用于来自不同实验集的数据。这是一个更高的标准,但它进一步降低了设置中的系统偏差产生无法独立验证的“结果”的风险。
这是一个非常重要的主题 - 感谢您提出这个问题!