本节沿袭上一节的内容,继续学习混杂、阻断、前门/后门路径等概念。
混杂
抽烟的人容易导致肺癌,抽烟的人也容易出现黄手指。因为抽烟这个“共因”,“黄手指”和“肺癌”产生了关联,我们不难发现,手指黄的人很多都容易患肺癌。但是我们不能说,黄手指会导致肺癌,它俩并没有因果关系。这个“共因”也被称之为“混杂因子”(confounder)。在这个例子中,“抽烟”就是“黄手指”和“肺癌”的混杂因子,它让“黄手指”和“肺癌”出现了一种“伪相关”,这种伪相关也被称为“偏倚”(bias)。
图1:“抽烟”作为“黄手指”和“肺癌”的混杂因子
在本专题第一篇文章中介绍的巧克力与诺贝尔奖的例子,也是因为出现了混杂因子,因为某些共因,让巧克力销量和诺贝尔奖产生了关联,但巧克力销量不是导致诺贝尔奖的原因。
更复杂一些、也更常见一些的情形,是混杂因子造成的伪相关关系,和真正的因果效应关系,混合在一起,这便是“混杂”(confounding)的情形。
图2给出了一种最基本的混杂情形。真正的因果效应 A→Y 和叉接合 A←L→Y 诱导的 A 和 Y 之间的伪相关混合在一起。以新冠病毒与死亡率之间的关系为例,感染新冠病毒无疑会大大提高死亡率。但是这样的因果关系中,非常可能存在混杂因子。比如年龄:年轻的人免疫力更好,因此感染新冠病毒的几率也相对较低,死亡率也相对较低;年纪大的人抵抗力差,感染风险高,同时年纪大的人死亡率本身就高。因此“年龄”成为了“感染新冠病毒”与“死亡率”之间关系的混杂因子。所以我们要弄清新冠病毒到底与死亡率的高低具有怎样的关系,我们必须考虑并排除混杂的影响,换句话说,因果推理的一大目标就是尽量消除混杂带来的偏倚(也就是那些非因果的关联关系),找出真正的因果关系。
图2:混杂的基本形式
为了引入分析混杂的方法,首先我们一起学习阻断和d-分离的概念。
阻断与条件独立
回顾上一节最后学习的三种接合类型:链接合、叉接合、对撞接合。我们已经得到了这样的结论:
- 对于链式和叉式接合,节点 A 和 C 是相关的,链式接合是因为信息从 A 流到了 C ,叉式接合中 A 和 C 本没有相关性,而是因为有了 B 这个混杂因子而让 A 和 C 有了相关性;
- 对于对撞接合,节点 A 和 C 是相互独立的
图3:三种接合类型
在本节中,我们继续延伸有关相关性的分析。我们可以通过“以某个变量为条件”的方式得出其它节点之间的条件独立性。具体来说:
- 对于链式接合和叉式接合,通过“以中间变量 B 为条件”(conditioning on variable B ),也即给定 B 的值,比如指定 B=1 或者指定 B=0 ,那么 A 和 C 之间路径被阻断(blocking)。
- 对于对撞接合,通过“以中间变量 B 为条件”,A 和 C 之间原本被阻断的路径反而被打开,即A 和 C 之间产生了相关性。
这里所说的“以某个变量为条件”的意思,就是指定某个变量的值。比如“以年龄这个变量为条件”(conditioning on age),意思就是说我们只看“年龄=1”或者只看“年龄=0”的那些数据。
下面以具体的例子来解释以上两个结论。首先,对于链式接合,我们假设感染新冠病毒会造成肺部发炎,而肺炎会进一步导致发烧或干咳等临床症状。这个过程可以用如下的链式接合表示:
图3:感染新冠病毒引发肺炎并进一步引发临床症状的链式接合
此时,“感染新冠病毒”和“临床症状”是(边缘)相关的,因为信息可以从前者流向后者。然而,一旦我们以“肺炎”为条件,也即我们挑出那些肺部发炎(或者肺部不发炎)的情形,那么“感染新冠病毒”和“临床症状”之间就没有相关性了。
这不难理解,假如我们确定了病人肺部发炎,那么无论是否感染新冠病毒,病人都会出现发烧或干咳的临床症状。因为感染新冠病毒并不是直接造成发烧或干咳的原因(事实也是如此,有不少感染者并没有临床症状,也有很多人有临床症状但是是别的感冒引起的),病人是否有临床症状只取决于肺部是否发炎。也就是说,当以“肺部发炎”为条件时,关于感染病毒与否的信息便不能让我们更多的知道病人是否具有临床症状。因此,“感染新冠病毒”和“临床症状”之间的相关性便被阻断了。
对于叉式接合也是类似。我们假设肺部发炎会导致干咳和发烧两个临床症状,如图5所示。
图5:肺部发炎与两种临床症状之间的叉式接合
此时,“干咳”和“发烧”本身没有相关性,但因为“肺炎”这个共因而产生了相关性(肺炎的人一般都会发烧,肺炎的人一般都会干咳,所以干咳的人一般都会发烧,这和第一个例子吸烟与黄手指是一样的)。同样,当我们以“肺炎”为条件,即我们挑出那些肺部发炎(或者肺部不发炎)的情形,那么“干咳”和“发烧”之间的相关性就被阻断了。
这也不难理解,一旦我们确定了病人肺部有发炎,那么他很有可能会发烧,这与他是否干咳没有关系,他即使不干咳,他也很有可能发烧。反过来也是,一旦我们确定了病人肺部没有发炎,那么他很可能不会发烧,他干咳与否都可能不会发烧。因为“干咳”和“发烧”本没有因果关系,它俩只是因为“肺炎”这个共因而形成的混杂。也就是说,当以“肺部发炎”为条件时,关于“干咳”与否的信息便不能让我们更多的知道病人是否会“发烧”。吸烟与黄手指的例子可能更容易理解:吸烟容易引起手指发黄,吸烟也容易引起肺癌,因为“吸烟”这个混杂因子,“手指发黄”与“肺癌”这两件完全无关的事产生了伪相关。但一旦我们以吸烟为条件,即我们知道这个人不吸烟,那么这个人就不容易得癌症,这与他是否手指发黄没有半毛钱关系,他即使手指发黄也不会容易得肺癌(手指发黄可能是因为他是画家所导致)。
第三种,对撞接合。这种情况与之前两种正好相反,也就说以对撞子(中间那个变量)为条件,会让两边的变量之间由独立变成相关。以图6为例:
图6:诊断新冠的两种条件与疑似新冠的对撞接合
此时,我们假设诊断为疑似新冠肺炎需要满足两个条件:要有武汉旅居史、要有临床症状。当两个条件都满足时,可判断为疑似新冠肺炎,否则排除疑似新冠肺炎(这只是本文为方便举例的假设,没有真实的科学依据)。原本“武汉旅居史”和“临床症状”两者不相关:知道某人有没有武汉旅居史,不能让我们推断出更多有关他会不会有临床症状的信息。但如果我们以“疑似新冠”为条件,即我们挑出那些疑似新冠(或者排除疑似新冠)的情形,那么“武汉旅居史”和“临床症状”之间便建立了相关性。这可以这么理解,假如我们已经知道了病人被排除了疑似新冠,那么即便他有武汉旅居史,他一定不会有临床症状;或者即便他有临床症状,他也一定不会有武汉旅居史,因为二者必须同时满足才能判断为疑似新冠,而他没有被判断为疑似新冠,说明两个条件至少有其中一个不满足。换句话说,当以“疑似新冠”为条件时,关于武汉旅居史的信息让我们能够推断出关于临床症状的信息,反之亦然。因此,“武汉旅居史”和“临床症状”直接被阻断的关联,反而被建立起来了。
d-分离
以上的分析在因果关联领域有一个著名的法则,被称为d-分离法则。d-分离的全称是有向分离(directional separation),是一种判断变量是否条件独立的方法。对于链接合、叉接合和对撞接合三种接合结构来说,d-分离的定义分别如下:
如果一条路径
- 包含链接合 D→E→F ,并且中间节点在节点 C 中;
- 或者包含叉接合 D←E→F ,并且中间节点在节点 C 中;
- 或者包含对撞接合D→E←F ,并且中间节点不在节点 C 中也不在 C 的任何子孙节点中,
那么我们说这条路径被 C 节点d-分离了。
更一般地(针对两个节点之间不止一条路径的情况),如果节点 C 阻断了 A 和 B 之间的每条路径,那么我们则说 A 和 B 被 C 节点d-分离了。
以上的三种d-分离的定义,和上一节最后介绍的三种接合中变量的独立性,可以总结归纳为如下的
d-分离法则:
- 如果一条路径中不以任何一个节点为条件,当且仅当该条路径中有两条箭头在某个变量处对撞时,则该条路径被阻断(该变量称为这条路径的对撞子)。
- 如果一条路径包含一个非对撞子(noncollider),当以它为条件时,这条路径被阻断。
- 当以一个对撞子为条件时,该路径不会被阻断。
- 当以一个对撞子的子孙为条件时,该路径也不会被阻断。
消除混杂:后门准则
有了d-分离的概念基础,我们就可以回到一开始提到的混杂的问题,按照之前所述,我们希望消除那些“伪相关”,找出真正的因果关系。一种消除混杂的方法叫后门准则(backdoor criterion)。
首先需要明确什么是前门路径,什么是后门路径?
变量 A 和 Y 之间的后门路径就是连接 A 和 Y 但箭头不从变量 A 出发的路径。例如图2中,从变量 A 到 L 再到 Y 的路径,即 A←L→Y ,便称为 A 和 Y 之间的后门路径(backdoor path)。相应的, A→Y 就是前门路径(frontdoor path)。
后门准则可以简述如下:如果我们有足够的数据能够将所有A和 Y 之间的后门路径全部阻断,那么我们就可以识别(identify)A和 Y 之间的因果关系。
简单来说,混杂(confounding)就是因果变量之间的共因。而混杂因子(confounder)就是能够阻断因果变量之间所有后门路径的变量(可能混杂因子不止一个)。这里要特别说明的是,混杂因子的概念是建立在因果图结构之上的,必须要指定因果图的结构,混杂因子才有意义。在一个复杂的因果图中,某个变量可能阻断了某两个变量之间的所有后门路径,因此它是某两个变量的混杂因子,但它对另一个路径来说可能并不是混杂因子。因此我们纠缠于谁是混杂因子没有实际意义,有意义的是,以哪个变量为条件可以消除这条路径上的混杂。
因此,混杂因子也可以被更准确地定义如下:
- 【从结构角度定义】如果以某个变量 L 为条件使得变量 A 和 Y 之间的相关性发生了更改(即原来相关变为不相关、原来不相关变为相关),那么该变量 L 为A 和 Y 之间的混杂因子。
- 【从传统角度定义】当变量 L 满足以下三个条件时, L 便是A 和 Y之间的混杂因子:
- L 与 A 相关
- 当以 A 为条件时 L 与 Y 相关
- L 不在 A 到 Y 的因果关系路径中
要注意的是,结构角度的定义并不一定得到正确的判断,很多情况下会带来选择偏倚等错误判断,所以两个角度结合起来判断更好。
几个例子
下面通过几个具体的例子来进行详细地分析。
需要注意的是:为了理解方便,我们对每个节点变量进行了概念化的指代,但本部分的重点在于根据因果结构来分析混杂因子,每个变量指代的含义仅来源于作者的主观臆想,没有任何科学依据。
【例1】:
首先来分析最基本的混杂情况,即本文开头图2的情形。为阅读方便,图7复现了这种情形。我们假设感染新冠病毒会引起较高的死亡率,同时年龄也直接影响死亡率(年龄高的人死亡率高),年龄也直接影响感染新冠病毒的概率(年龄高的人感染率高)。为了分析混杂因子,我们回答以下几个问题。
图7:例1
- A和Y之间是否存在混杂:答案是肯定的: L 是 A 和 Y 的共因,或者, A 和 Y 之间有一条未被阻断的后门路径 A←L→Y ,所以是存在混杂的。
- 从结构角度定义,L 是混杂因子吗(能否通过以某些变量为条件来阻断A 和 Y之间的后门路径):答案是肯定的。根据d-分离法则,我们只要以 L 为条件,就可以阻断 A←L→Y 这条后门路径。根据混杂因子的结构角度定义, L 是混杂因子。
- 从传统角度定义,L 是混杂因子吗:首先,L 是 A 的因,所以 L 与 A 相关;其次,当以 A 为条件时, L 与 Y 相关(虽然阻断了 L→A→Y 这条路径,但未阻断 L→Y 这条路径);第三, L 不在 A→Y 的路径中。所以 L是 A→Y 的混杂因子。
因此,以“年龄”这个混杂因子为条件,我们就能更好地分析出“感染新冠病毒”与“死亡率”的因果关系。例如,我们可以将年龄分为不同的层次(老年、中年、青少年、幼儿等),然后对不同的层次分别探究感染与死亡之间的关系。
【例2】:
图8给出了另一种因果图结构。这里的共因变成了“免疫力”,我们假设免疫力低下的人容易感染上新冠病毒,同时,免疫力低下的人本身死亡率也高。同时,我们假设“免疫力”是一个不方便测量的变量。这意味着,我们不能以 U 为条件进行分析。然后同样回答以下几个问题。
图8:例2
- A和Y之间是否存在混杂:答案是肯定的: U 是 A 和 Y 的共因,或者, A 和 Y 之间有一条未被阻断的后门路径 A←L←U→Y ,所以是存在混杂的。
- 从结构角度定义,L 是混杂因子吗(能否通过以某些变量为条件来阻断A 和 Y之间的后门路径):答案是肯定的。根据d-分离法则,我们只要以 L 为条件,就可以阻断 A←L←U→Y 这条后门路径。
- 从传统角度定义,L 是混杂因子吗:从传统角度定义,首先,L 是 A 的因,所以 L 与 A 相关;其次,当以 A 为条件时, L 与 Y 相关(虽然阻断了 L→A→Y 这条路径,但未阻断 L←U→Y 这条路径);第三, L 不在 A→Y 的路径中。所以 L是 A→Y 的混杂因子。但是, L 并不是引起混杂的那个共因,U才是,但是我们可以通过以L为条件消除混杂。
【例3】:
图9给出了另一种因果图结构。我们假设“感染非典病毒”和“感染新冠病毒”一样都能让死亡率提高,而免疫力低下的人都会导致容易感染非典病毒或者新冠病毒。同样,也通过回答以下几个问题来进行分析。
图9:例3
- A和Y之间是否存在混杂:答案是肯定的: U 是 A 和 Y 的共因,或者, A 和 Y 之间有一条未被阻断的后门路径 A←U→L→Y ,所以是存在混杂的。
- 从结构角度定义,L 是混杂因子吗(能否通过以某些变量为条件来阻断A 和 Y之间的后门路径):答案是肯定的。根据d-分离法则,我们只要以 L 为条件,就可以阻断 A←U→L→Y。
- 从传统角度定义,L 是混杂因子吗:从传统角度定义,首先,L 因为 U 这个共因而与 A 相关;其次,当以 A 为条件时, L 与 Y 相关(虽然阻断了 L←U→A→Y 这条路径,但未阻断 L→Y 这条路径);第三, L 不在 A→Y 的路径中。所以 L是 A→Y 的混杂因子。但是同样, L 并不是引起混杂的那个共因,U才是,但是我们可以通过以L为条件来消除混杂。
以上的三个例子,都存在混杂,并且无论使用结构角度的定义还是传统角度的定义,都能正确的找出混杂因子。但事实上,这两种定义并非一直有效。接下来的这种情况便是如此。
【例4】:
如图10给出的这种因果图结构。我们假设有吃野味的饮食习惯(U1)的人出现在华南海鲜市场(L)的频率很高,同时,部分人没有吃野味的习惯,但由于工作需要(U2)也经常出入于华南海鲜市场(比如流行病学专家、市场保安等),他们与新冠肺炎患者密切接触(A)的几率也更大,而这直接导致了他们容易感染新冠病毒(Y)。同样,我们还是分析 A 和 Y 之间是否存在混杂。
- A和Y之间是否存在混杂:答案是否定的:首先, A 和 Y 不存在共因,其次A 和 Y 之间有一条后门路径 A←U2→L←U1→Y ,但这条路径被 L 这个对撞子阻断了,所以 A 和Y之间是不存在混杂的, A 和 Y 之间的相关性完全来自于二者之间的因果关系。
从实际的角度,我们已经无需再问后两个问题,因为不存在混杂,就不需要找出混杂因子。但是,我们依然可以考察,当仍然以 L 为条件时,会发生什么样的情况。
首先,以 L 为条件会将 A 和 Y 之间的后门路径 A←U2→L←U1→Y 打开,这便给 A 和 Y 之间带来了一条非因果的相关,可称之为偏倚,准确说是选择偏倚(selection bias)。
其次,如果使用传统定义的三个条件来考察:① L 是与 A 相关(因为 U2 这个共因);②L 是与 Y 相关(因为 U1 这个共因);③L 不在 A→Y 的路径中。三个条件都满足,所以按照传统的定义, L 应该是一个混杂因子。但很显然这是不对的。这说明,用传统定义来考察混杂因子在大部分情况下是可行的,但在某些特殊情形下会有误。这是因为传统定义的三个条件只考虑了统计学含义,没有考虑实际的因果结构,而混杂是一个和因果结构有关的概念。
小结
这一节主要学习了混杂的概念,包括如何通过d-分离、后门路径准则等方法来识别混杂是否存在,以及找出混杂因子。有以下几点需要进行强调:
- 混杂是一个绝对的概念,混杂因子则是一个相对的概念。混杂要么存在要么不存在,但某个变量是不是混杂因子,这个不好说,我们关心的是以哪个变量为条件能够消除混杂。
- 以某个变量为条件,我们可以消除混杂,但这个变量不一定是引起混杂的那个共因。
- 用传统定义的三个条件来判断混杂因子并不百分之百正确。在某些不存在混杂的情况下,三个条件可能也都能被某个变量满足。但此时并不存在真正混杂因子,我们也不需要以该变量为条件,否则会引发选择偏倚。
本节的主要内容来源于Coursera宾夕法尼亚大学课程《A Crash Course in Causality: Inferring Causal Effects from Observational Data》[1]和edx哈佛大学课程《Causal Diagrams: Draw Your Assumptions Before Your Conclusions》[2],部分举例为便于理解按照新冠病毒相关事件进行了改编。本节标题上方的图片来源于网络。本节中有关新冠病毒的因果图不具有科学价值,仅作为方便理解的举例使用。更准确的例子可参考因果系统——关河因果新型数据分析产品_因果分析_关河因果【官网】 (grandhoo.com)https://yinguo.grandhoo.com/home。
参考
- ^Jason A. Roy, "A Crash Course in Causality: Inferring Causal Effects from Observational Data", Coursera A Crash Course in Causality: Inferring Causal Effects from Observational Data | Coursera
- ^Miguel Hernán, "Causal Diagrams: Draw Your Assumptions Before Your Conclusions", edx online course https://www.edx.org/course/causal-diagrams-draw-your-assumptions-before-your