影响回归分析结果的不成文法则和肮脏技巧

机器算法验证 回归 参考 方法
2022-04-07 16:45:49

背景:几年前,我为一位专门研究宏观计量经济学的教授工作。作为一名学生研究助理,我的任务是复制其他论文并“玩弄”这些数据。我很快了解到,许多已发布的结果甚至对建模设置中的微小变化都没有鲁棒性(例如,如果您省略一个变量,更改数据范围,添加更多滞后)。理论上,研究人员假设,进行一次回归并报告结果。但在实践中,估计数百个回归并发布一个似乎是不成文的法律。

我的问题:影响回归分析结果的不成文法则和肮脏技巧是什么?您是否知道一些参考文献(学术/半学术),作者在其中描述了这种非正式程序以获得更好的结果?

2个回答

仅仅因为分析对模型的变化很敏感,并不一定意味着研究人员尝试了许多模型,然后发布了有效的模型。

只需假设存在许多研究人员,每个研究人员都考虑一个有点相似的问题,每个人都只尝试一种分析,而第一个尝试“成功”模型的人就是发表论文的人。

缺乏任何敏感性分析将更多地表明无能或粗心,而不是任何个人的实际意义狩猎。

这并不是说它(重要性狩猎)永远不会发生,只是你不能仅仅通过这种情况的存在来判断它是在任何特定情况下发生的事情。在实践中,我看到无知的无能或粗心大意(面对发布或消亡的心态,这一点也不奇怪 - 花时间以适当的谨慎做事有什么回报?)比故意的不当行为更常见;除此之外,还有足够多的人在思考类似问题的所有“特殊情况”结果,这些结果并没有真正推广到最终出现在文献中。

即使每个人都只尝试一种模型,有效的意义搜寻的源头是想要发表“重要”结果的期刊的存在。他们采取行动创造无法再现的结果(基本上是噪音)。如果期刊想要发表几乎都是误报的结果,他们需要做的就是继续原样。

即使是许多有官方政策旨在避免这些问题的期刊,实际上也有只发表重要结果的政策,因为他们接受审稿人的做法和建议,尽管有规定的政策,他们仍坚持这些做法和建议。

为了获得更好的结果,他们需要积极鼓励关注效应的大小,并将大部分精力集中在发表没有发现任何结果的实施良好的研究上。[如果专业团体和期刊编辑委员会 - 以及编辑 - 无法理解没有发现任何事情的科学重要性(以及忽略无效结果的非常可怕的后果),他们可能应该退出该业务并进入一些相对更科学诚实的东西,比如运行通灵阅读电话线。至少,应该放弃任何严谨的伪装。]


在暗示人们可能不是故意这样做的同时,这里有一些或多或少是无意识的“肮脏技巧”,它们可能会提高发现显着结果的几率:

  • 在不考虑其影响的情况下进行模型/变量选择。这可能是最大的一个,它可能发生在研究的许多点上,研究人员甚至可能没有意识到他们正在这样做(有时它很微妙)。

    事实上,基本的“建模周期”范式(比如 Box 和 Jenkins 中的流程图)导致了这个问题。顺便说一句,这并不是对那个流程图的批评——但人们必须正确处理这些程序的影响。

    值得一读 Frank Harrell 的书(回归建模策略),尤其是第 4 章。相关信息可以在许多其他地方找到。

  • 专注于模型评估(特别是查看正态性、同方差性或考虑添加交互项或项以获取曲率),或者在没有发现任何内容时更加关注它 - 然后在某些失败时尝试新的分析假设被检测到 - 而不是在找到期望的结果时。

  • 当您尝试的第一个程序没有给出您需要的结果时,试图找出是否有更好的事后程序。

甚至对建模设置中的微小变化都没有鲁棒性

我是分析化学家/化学计量学家。在我的领域中,与展示/说明模型/整个分析方法对某些影响的稳健性有关的相关关键词是稳健性稳健性(有大量文献,包括关于这些主题的法规)。它们适用于整个方法,不仅适用于数据分析,而且适用相同的原则(例如,如果 pH 变化、不同的实验室进行工作、排除某些特征等,分析结果会恶化多少)。

关键是你必须坐下来认真思考,并列出一系列条件来测试坚固性。

至于数据分析的稳健性,这里有一些您可能感兴趣的文献:


现在关于肮脏的把戏:

  • 各种导致验证结果出现乐观偏差的事情

    • 训练和测试数据之间的数据泄漏

      • 未正确拆分数据 = 在数据层次结构的最顶层(例如,将由相同储备溶液制备的样本视为独立样本,将来自同一患者/相同时间序列的多个测量视为独立样本等)
      • 对整个数据集进行数据驱动的特征缩减(PCA,PLS),仅“验证”模型的最后一层(例如,在 PCA 得分空间中进行的回归)。
      • 对于涉及多个案例的任何类型的预处理也是如此:所有这些都必须仅在训练数据上完成,然后将结果应用于测试数据。
      • 模型选择偏差:没有最终模型外部验证的数据驱动模型优化/选择也是一种数据泄漏。
  • 在建模过程中创造“自我实现的预言”

    • 使用聚类分析为分类分配参考标签
    • 排除案例,因为它们不适合模型而不报告异常值排除的适当标准(请注意,在某些应用程序中,自动决策/过滤器以拒绝超出指定适用范围的不良案例/测量是可能且明智的,尽管)
  • (测试)数据集不代表应用程序。例如,我工作的应用程序经常处理医疗诊断。总是有困难/边缘病例很难获得参考诊断。但是,从数据分析中排除此类案例会产生人为的简单问题,该问题会排除最需要模型的所有案例。
    有关半监督模型的讨论,请参阅
    Berget, I. & Næs, T. Using unclassified Observations for Improvement classifiers J Chemom, 2004, 18, 103-111。DOI: 10.1002/cem.857

    • 声称未知案例的(重新采样)验证结果可以推广到未知的未来案例。也导致乐观偏见(项目符号 1)。

    • 从观察(例如细胞系数据或异种移植物)跳到关于人类的结论。或者从少数精确指定和选择的人群中作为医学筛查工具的适用性等。

  • 没有足够的测试用例来保证结论。至少应该对验证结果进行粗略的完整性检查(例如,验证结果的置信区间是否足够窄,以允许得出实际相关的结论,即关于什么被认为是非常好的、合理的、坏的和太坏的——敢于报告的模型。)

  • 人类偏向于识别模式(而不是忽略模式)。这也可能导致建立过于复杂的模型,这些模型过拟合且根本不稳健。

所有这些点都涉及在什么是好的和明智的与什么是太多之间,和/或哪些影响因素是重要的,哪些不重要之间的权衡。就个人而言,我可以愉快地生活在建模中,只要这些决策被报告并证明是合理的,数据分析师就会完成各种决策。

OTOH,我认为需要仔细判断在给定应用程序中哪种级别的验证是明智的。所有(或其中大部分)这些观点在某些情况下都是有意义的,但它们限制了可以得出的结论。恕我直言,这本身不是问题-这只是一种非常正常的“付费”方式,可以实际应用一种方法。恕我直言,问题源于不了解这些限制。