系列首篇:MIT因果迷你课笔记 —— 相关和因果
上篇:MIT因果迷你课笔记 —— 因果归纳模型的评估方式(SHD和SID)
这篇是发现因果关系的最后一篇,也是这里要提的最后一个发现因果关系的方法。
之前讲过两种归纳因果关系的方法,第一种是基于独立关系的判断方法:
第二种是基于分布方程中,噪音的独立性的方法:
MIT因果迷你课笔记 —— 发现因果关系2(restricted structural causal model)
今天要说的是第三种:基于不变性的因果预测(invariant causal prediction)
如上图所示,假设我们现在有一个因果系统,不知道因果关系,但在不同环境下观测到了一系列数据,左边蓝色数据是在环境1中观测到的,右边红色数据是在环境2中观测到的。环境和环境之间的区别在于做了不同的干预。
现在我们想要知道Y的因是哪些。
首先我们用线性模型拟合:
Pr(>|t|)是P-value,P值估计系数不显著的可能性,有较大P值的变量是可以从模型中移除的候选变量。由上述实验可知,线性拟合后,Y和X1,X2,X3,都有很小P值,无法根据这个实验找到Y的因。
那用这篇介绍的Invariant Causal Prediction (ICP)来实验呢:
ExpInd长度和Y一致,但其中数据表示的是环境编号,1指环境1,2值环境2,即用于ICP这个方法的数据,包含了不同环境下的数据。而得到的结果表明,X3是Y的因。
接下来我们来说说ICP基于的原理:
不变性原理:
如果Y的结构方程不变,那么无论如何进行干预,只要不干预Y,P(Y|PAY)保持不变。这个很好理解,Y的值由Y的因和噪音决定,那么如果确定了因的值,Y的分布也是确定的,且与图中其他变量是无关的。
这里列一些典型的干预:
1. 使X1只受特定噪音影响
2. 改变影响X4的噪音:
3. 对多个变量作出干预,如下:
<div align=center></div>
这些干预都不能改变P(Y|PAY)。
当我们取得了不同干预(不同环境)下的数据后,对于任意环境下的数据,都有一致的P(Y|PAY),前提是这些环境中不包括干预了Y的环境:
以上就是不变性原理。
那么怎么根据这个原理,来找到Y的PAY呢?
这才是我们这篇的主要任务。
方式是,穷举S,然后检测这个S是否会使得P(Y|S)在不同环境下一致。如果某个S使得P(Y|S)在不同环境下一致,那么S有可能就是PAY。当出现多个集合符合要求,即满足不变性原理时,取交集:
α指显著性水平。
举个例子,列举不同的S集合及不变性验证结果如下:
打勾的是符合不变性原则的,打叉的是不符合不变性原则的,上例中,{3,5},{1,3,6},{3,8}都有可能是PAY,取交集后得到{3},则{3}有很高的概率是属于PAY(S*)的。
这种因果判断的方法,和进行不同干预的数量,即我们所能拥有的环境的数量,以及干预的效果关联很大,如果想让结果尽量的准确,得到的交集不是空集,且尽可能地接近PAY,那么增加环境的数量,保证干预的有效性以及准确性会非常重要。
干预也可以被看成是一个变量,如下图所示:
将干预看成是变量E,变量E影响了X2的值。
用ICP验证,很容易得到X2和X4是Y的因:
但如果X2和Y之间的关系是非线性的,但调用解决线性关系的代码,方程或软件包,就可能无法得到正确答案:
另一种会失败的情况是,干预了Y:
这里引入一个新的概念,hidden variables,隐藏变量,如下图中的X4,他确然会影响X2和Y的值,是X2和Y的因,但我们并不知道它的存在,或者无法对它进行干预,那么就会出现下面的情况。
得到的Y的因不是X2,而是X1,即X2的因。从某种程度上来说,也算是归因成功,因为X1是X2的因,因此X1其实是Y的间接因。所以这种情况下的也能在一定程度上完成归因的任务。
接下来来看看这个方法如何用在真实案例中:
以上是一个基因实验,总共有6170个基因,有160个数据观察点,也可以理解为有160个样本,图中横坐标显示的是基因5954的活性,纵坐标显示的是基因4710的活性,第二张图中显示,如果降低一个样本(红色点表示)中的基因5954的活性,那么基因4710的活性也会降低,由此可推断,基因5954是基因4710的因。
上图中中间这幅图,表示的是在既不干预基因5954,又不干预基因4710活性的前提下,对实验环境进行不同干预后,基因5954和基因4710的活性表达。在这个实验中总共有1479个不同的基因删除动作(干预实验)。
上面三个干预实验中,头两个实验能很明显的判断出,被干预的那个基因是观察基因的因。而第三个实验中,表达的是降低基因3672的活性并不能使基因1475的活性降低,因此不能确定是1475的因。
那么不变性方法如何应用到上述实验中的因果推断中?
上述实验中总共有六千多个基因,如果两两配对,那么有6170×6169个组合,如果再算上方向问题,即A有可能是B的因,B也有可能是A的因,那么需要做6170×6169~6170×6169×2个干预实验,才能理清楚这个实验中,所有基因的因果关系。
因此,可以用不变性方法打辅助啊。
首先将干预中可以明确指出因果关系的干预排除,比如我们想找基因4710的因,那么我们先将实验中对5954的干预实验排除,通过其他的干预实验和不变性方法,看看是否能推断出5954是4710的因。在这里,不做任何干预的环境视为环境1,做了干预(Y和Y的因的干预实验)的视为环境2,应用不变性方法,找出潜在因果关系。
接下来,我们来比较一下不变性原理和其他方法在上述实验中找潜在因果关系的效能。
横坐标表示的是通过不变性原理,推理出来的可能存在因果关系的基因对的数量,比如通过不变性原理,发现了25组基因可能存在因果关系,按可能性由高到低排个序,选出最有可能的一组,去验证,发现果然是的,所以折线图第一个点的坐标落在了(1, 1),接着验证下一组,发现也是对的,则坐标继续落在了(2,2),如果接下来一组验证不对,那么坐标落在(3,2),完美的情况,当如PERFECT那条线,随机的选择验证的基因组,则结果就如灰色条所示。
由上述实验可知,不变性原理对因果推断是非常有用且有效的。大大提高了因果推断的效率。
之后会将因果归纳和机器学习相关联,感兴趣的不妨关注吧。
如果觉得有用,一定帮老夫在右下角点个“在看”哦。
系列首篇:MIT因果迷你课笔记 —— 相关和因果
上篇:MIT因果迷你课笔记 —— 因果归纳模型的评估方式(SHD和SID)
记:公式上上下下有不匹配的地方,因为截自不同的参考文献,所以写法会有出入,打公式太累了,我放过了自己。
声明:所有图片均来自参考,没有原创图片,公式和定理。
参考:
[1] Jonas Peters, University of Copenhagen, Mini-course on Causality, Laboratory for Information & Decision Systems (LIDS) and Models, Inference & Algorithms of the Broad Institute, MIT, 2017
[2] Jonas Peters, Peter Bühlmann and Nicolai Meinshausen, Causal inference using invariant prediction: identification and confidence intervals, 2015
[3] Nicolai Meinshausen, Package ‘InvariantCausalPrediction’, 2019
Comments