如何在数据中找到因果关系?

机器算法验证 相关性 因果关系
2022-03-08 20:16:50

假设我有一个包含“A”、“B”列的表

是否有统计方法来确定“A”是否导致“B”发生?一个人不能真正使用皮尔逊的 r,因为:

  • 它只测试值之间的相关性
  • 相关性不是因果关系
  • Pearson 的 r 只能关联线性关系

那么我在这里还有什么其他选择呢?

4个回答

到目前为止的答案和评论在实践层面基本上是正确的,但为了完整起见,对基于贝叶斯统计和图论的所谓因果关系模型进行了研究。因此,尽管总体上相关性确实并不意味着因果关系,但有更复杂的模型确实试图梳理出因果关系。有关详细信息,请参阅 Judea Pearl 的《因果关系》一书,但这是非常繁重的数学,可能不是您想要的。

有许多所谓的准实验方法,即使你的数据是观察性的,你也可以用这些方法可信地争论因果关系。这些方法通常依赖于在您感兴趣的变量中找到外生变异的来源。

我认为“Mostly Harmless Econometrics”一书中给出了一个很好且易于理解的概述。它们基本上涵盖了人们(意思是:经济学家)(至少有时)相信的所有准实验方法。它们不包括例如 trb456 提到的方法(出于同样的原因:相信它们的人并不多)。

要确定因果关系,您需要进行随机化测试。你选择你的测试对象,随机选择其中一半有质量 A,一半没有它。然后,您可以查看两组之间的质量 B 是否存在统计学上的显着差异。

在进行任何测量之前进行随机化是很重要的。特别是,如果给你一个数据集AB已经测量了,那么就不可能确定因果关系。

请注意,可能无法进行您想要进行的随机化测试。例如,您如何测试身高是否会导致体重增加?当然,身高和体重之间存在相关性,但是您不能将一组人随机分配到“高”组,而将一组人分配到“矮”组。在这种情况下,无法进行随机化测试。

Somers' d 以皮尔逊相关系数对数据集所做的方式解释序数变量之间的关系。