相关性≠因果性
在阐述为什么之前需要阐述是什么?在日常生活和数据分析中,我们可以得到大量相关性的结论,我们通过各种统计模型、机器学习、深度学习模型,通过分析得到种种结论,但是这里面存在一个巨大的疑问就是,“相关性一定等于因果性吗?”
举个 ,这个是缅因州黄油消费量和离婚率的关系
从图上可以看出这两个变量呈高度相关的关系,但是如果我们从因果的角度来阐释,说黄油消费导致了离婚,或者离婚导致了黄油出售,显然都非常荒谬。
实际上,相关性通常是对称的,因果性通常是不对称的(单向箭头),相关性不一定说明了因果性,但因果性一般都会在统计层面导致相关性。
举个 ,我目前在做权益方向的工作,以权益为例,我们为了促进某些不活跃用户的消费,给不活跃用户发了更大的红包,给活跃用户发了更小的红包,把所有特征扔进模型训练,得出了一个奇怪的结论,给用户越大的红包,用户越不买东西。
不考虑因果性的话,相似的或者别的类型的错误还有很多,《Theoretical Impediments to Machine Learning With Seven Sparks from the Causal Revolution》这篇论文说到了因果推断的三层
第一层是关联:X条件下Y会怎么样,也就是现在机器学习中常用的方式,尽可能通过深层次的网络去拟合X和Y的关系
第二层是干预:如果我服用了阿司匹林,身体会怎么样?也就是如果我改变了X,Y会怎么样?
第三层是反事实推断:相当于对结果来考虑原因,相当于如果我们希望Y变化,那么我们需要对X做出什么样的改变?
从作者角度这样看来,因果推断是高于现行机器学习方法的方法,但我的观点来说,因果推断的方法其实是通过因果关系,解决现行只考虑相关关系的的机器学习方法产生的一系列问题。
上图男女分别来看
女性对照组1/(1+19)=5%发病率,处理组3/(3+37)=7.5%发病率,这个药对女性有害
男性对照组12/(12+28)=30%发病率,处理组8/(8+12)=40%发病率,这个药对男性也有害 但从总体看,对照组13/(13+47)=21.6%发病率,处理组11/(11+49)=18.3%发病率,这个药对人类有效,发生了什么?
上图分血压情况来看
血压降低的情况下对照组1/(1+19)=5%发病率,处理组3/(3+37)=7.5%发病率,血压降低的患者发病率增加了
血压升高的情况下对照组12/(12+28)=30%发病率,处理组8/(8+12)=40%发病率,血压升高的患者发病率也增加了 但从总体来看,对照组13/(13+47)=21.6%发病率,处理组11/(11+49)=18.3%发病率,这个药对人类有效,发生了什么?让我们来看两种情况下的因果图
从上面的因果图可以很容易明白
在第一个问题下,不同的性别有不同的服药意愿,也就是性别是服药和发病的共同原因,所以应该分层进行统计
在第二个问题下,服药会导致血压变化,也就是血压是服药和发病的共同结果,如果分层统计,则会低估服药的影响,总体的结论才是正确的。
从这两个辛普森悖论的例子我们可以看出现在因果推断最重要的两个研究方向:
causal discovery:因果发现,也就是发现以上统计变量之间的因果关系,从统计变量中探寻出一个如上的因果图
causal effect:因果效应,在得到因果关系之后,确定效果,比如上面的问题是,知道因果图之后,确定服药之后发病率增加(减少)多少
注:后面的介绍主要还是着重于因果效应相关的论文和发展,如果对于因果发现更有兴趣的大佬可以移步。
其实整体思路非常清晰,就是训练一棵预测treatment的树,然后在树的叶子结点做因果推断,如果大家仔细看了前面的倾向性得分的话,会发现其实这个思路其实就相当于propensity matching的树版,可能跟subclassification更相似。
关于因果推断的树模型方式理论上应该专门开一栏进行介绍,但是相关论文我看的不多,而且在很多因果推断的新论文里面BART,Causal Forest的效果其实都比不上现在新的前沿算法了,所以在此就简单介绍一种。
相关的因果推断方向还有很多,比如重加权方法,表示学习方法,对抗学习方法,doubly robust方法,元学习方法等,这些方向相关论文都不少,如果都在这篇里面说完会显得全文非常冗余,所以后期会尽量把相关看过的论文都总结下来。
这里面照搬了综述文章《A Survey on Causal Inference》里面的图,其实讲的已经非常全了,大家自行食用: