什么是辛普森悖论以及如何自动检测到它? - kdnuggets


如果你戴两个表,两个表告诉你的世界不同,怎么办?同样在数据分析中也有这种情况。
当我们想研究数据中的关系时,我们可以绘制、交叉制表或对该数据建模。当我们这样做时,我们可能会遇到这样的情况:从单个数据集的两个不同视图中看到的关系导致我们得出相反的结论。这些都是辛普森悖论的案例。
找到这些案例可以帮助我们更好地理解我们的数据并发现有趣的关系。本文提供了这些情况发生的位置的一些示例,讨论了它们如何发生以及为什么发生,并提出了在您自己的数据中自动检测这些情况的方法。
 
什么是辛普森悖论?
辛普森悖论是指一种情况,您认为您了解两个变量之间的关系方向,但是当您考虑其他变量时,方向似乎相反。
 
为什么发生辛普森悖论?
之所以发生Simpson悖论,是因为数据的分解(例如,将其拆分为子组)可能导致某些子组与其他子组相比具有不平衡的表示形式。这可能是由于变量之间的关系,或者仅仅是由于数据已被划分为子组的方式。

  • 范例1

辛普森悖论的一个著名的例子出现在加州大学伯克利分校录取数据,研究生院于1973年[ 来源 ]。在此示例中,从总体上看研究生录取数据时,看来男人比女人更容易被录取(性别歧视!),但是当单独查看每个部门的数据时,男人比女人更容易被录取。
为什么发生这种情况:
  1. 不同部门的接受率非常不同(有些部门比其他部门“难”得多)
  2. 更多女性申请“更难”的部门
  3. 因此,女性的总体接受率较低

这导致我们问:哪个视图是正确的视图?男人或女人的接受率更高?这所大学的招生是否存在性别偏见?
在这种情况下,似乎最合理的结论是,按部门查看招生率更为合理,而分类的观点是正确的。
当数据同时告诉我们两个相反的故事时,很难从数据中得出结论。人们可能会倾向于认为分解视图总是更好,因为它包含更多信息,但是对附加变量进行分解可能会提供不必要或令人困惑的观点。
正如我们在上面的示例中看到的,两种情况都是可能的:有时汇总视图是正确的,有时分解视图是正确的。
 
发生辛普森悖论怎么办
没有足够的领域知识,就很难知道对两个变量之间的关系的哪个观点更有意义-一个变量是否包含第三个变量。
但是在考虑如何处理辛普森悖论之前,我们需要找到一种在数据集中有效检测它的方法。如前所述,只需分解列联表或数据点图并研究结果,便可以找到辛普森悖论(“辛普森对”)的实例。但是,还有其他方法可以使用模型找到辛普森对,例如:
  1. 通过建立决策树并比较分布,或者
  2. 通过建立回归模型并比较系数的符号

两者都有好处,但是,这会很快变得困难,尤其是在处理大型数据集时。很难知道数据集中哪些变量可能会颠倒另外两个变量之间的关系,并且很难手动检查所有可能的变量对。假设我们有一个只有20个变量的数据集:我们需要检查将近400对,以确保找到所有Simpson's Paradox的情况。
即使我们已经搜索(并找到)所有可能的辛普森配对,也要考虑其他挑战。这些挑战与解释有关,例如:
  • 趋势是否需要在每个子组中反转才能将某物视为“辛普森配对”?还是大多数亚组足够?
  • 子组的大小重要吗?如果趋势在许多小的子组中发生了逆转,而在最大的子组中却没有,该怎么办?

当试图自动检测辛普森悖论时,这些最后的挑战不会消失,但是通过被迫提前做出决定,我们至少可以以系统且一致的方式处理它们。
 
自动检测辛普森悖论的现有工具
幸运的是,已经开发了一些工具来处理数据集中的辛普森悖论:
  1. R包Simpsons可以通过让用户指定自变量,因变量以及他们希望与之分解数据的变量来检测连续数据的Simpson悖论。但是,这仅适用于连续数据,而不检查整个数据集中的Simpson悖论(例如,您必须提前知道在哪里寻找,这可能是困难的部分)。
  2. 论文《你能相信趋势:在社交数据中发现辛普森悖论》讨论了一种识别“辛普森对”的算法,作者在GitHub上提供了有用的代码。此代码仅适用于具有二进制因变量的数据集。
  3. 我们编写了自己的函数来自动查找数据集中的辛普森对。有两种版本:一种使用决策树(目前只能在Altair的Knowledge Studio软件中使用),另一种使用回归模型,该模型可在Python中工作并且可以下载

 
结论
辛普森悖论是一个棘手的问题,但是出色的分析师或数据科学家可以使用正确的工具和知识来处理它。我们希望我们的新工作可以帮助其他人以更轻松,更有效的方式处理此问题。