因果推断学习笔记(三):因果推断比赛 ACIC Data Challenge 学习笔记
近期的学习是寻找效果稳定又跑得快的 causal inference 黑盒子,并且四处收集一下“黑盒子”评估方式。
从2016年开始,一年一度的 Atlantic Causal Inference Conference 有一个 Data Challenge:一个关于因果推断的比赛。网上可以找到官方对于2016年和2017年这两次比赛的一些小结,一边看一边囤一篇简单的学习笔记。
ACIC2016 Data Challenge
ACIC2016 Data Challenge主页:https://jenniferhill7.wixsite.com/acic-2016/competition
主办方在赛后写了一篇总结性质的论文:Dorie, V. et al. 2017. Automated versus do-it-yourself methods for causal inference: Lessons learned from a data analysis competition. arXiv:1707.02641 [stat]. (Jul. 2017)
Data Challenge 介绍
ACIC2016 的赛题是估算 ATT (Average Treatment effect on the Treated),ATT=E[Y(1)-Y(0)|T=1]。严格一点来说,这个比赛其实是估算 SATT (Sample Average Treatment Effect),也就是ATT取期望的时候,这个期望是在 sample 上取期望的 (“the expectation is taken over the analysis sample”)。
比赛所用的数据是“半真实”的,对于每个数据集:
- covariates 是真实的
- 来源于 Collaborative Perinatal Project
- “a massive longitudinal study that was conducted on pregnant women and
their children between 1959 to 1974 with the aim of identifying causal factors
leading to developmental disorders” - 主办方选择了4802个样本,每个样本包含58个 covariates,其中3个categorical 、5个binary、27个count data 、23个continuous
- treatment 和 outcome 是主办方通过各种各样的秘密方法生成的,因为数据是主办方生成的,所有数据的真实 SATT 都是已知的,可以作为“正确答案”对不同的因果推断算法进行评估。
有一组参赛组是“Black box组”。参赛者提交源码,主办方会在7700组(77种 x 重复100遍)数据上进行评估。Exciting!
数据生成方法已经开源在(GitHub:vdorie/aciccomp),几行脚本就可以把数据都生成出来自己用。
Black box 赛果
下面这张截图是 block box 分组的主要结果。几个主要的评估指标如下:
- Bias 和 RMSE: 估算的 SATT 和真实 SATT 的差异。
- Coverage:每个推断算法都会返回一个关于 SATT 的置信区间。Coverage 表示多大比例的置信区间包含真实 SATT。
- Inverval length:平均的置信区间长度。Coverage 和 Inverval length 要结合起来看才有意义(它俩是有 trade-off 的),理论上希望 coverage 越高并且 inverval length 越小。
- PEHE (precision in estimation of heterogeneous effects):对于每个数据集,PEHE 是每个人的 treatment effect(individual level treatment effect)估算值的 RMSE。
从 Bias 和 RMSE 来看,BART、H20 Ensemble、calCause 和 TMLE明显好于其它方法。从 Coverage 和 Interval length 来看,BART、calCause 和 TMLE 效果也很好,H2O Ensemble 看起来不返回置信区间。
name | bias | rmse | coverage | interval length | 备注 |
---|---|---|---|---|---|
BART | -0.002 | 0.02 | 0.81 | 0.04 | |
H2O Ensemble | -0.007 | 0.03 | 1 | 6.14 | 没有 confidence interval。没找到源码。 |
calCause | -0.003 | 0.03 | 0.82 | 0.07 | 来自于 IBM Research。没找到源码。 |
TMLE | -0.007 | 0.03 | 0.88 | 0.07 | R里有包。 |
主办方的论文中还提供了一些赛后提交的新版算法的 Bias/RMSE,不少算法是 BART 和其它算法的结合版本。其中,个人感觉 BART on PScore 这个想法很不错。和 BART 相比起来,Bias/RMSE 差不多,在 ave interval length 差不多的情况下 coverage 更好。
ACIC2017 Data Challenge
ACIC2017 Data Challenge 介绍:SecondAnnualCausalInferenceDataAnalysisChallenge.pdf
Data Challenge 介绍
2017年的比赛和2016年的套路基本一致。比赛的数据依然是“半真实”的,covariates 和去年一致(但是实际上生成数据时只用了其中8个),treatment 和 outcomes 依然是花式生成的(生成方式不同)。比赛内容除了估算 SATT,还需要估算 individual treatment effects(CATE )。
这一年的挑战的主题是 “targeted selection”(当然,这是赛后公布的): “That is, we were interested in understanding the behavior of various methods in situations where the likelihood that an individual receives treatment is a function of the expected response of that individual if left untreated.” 我觉得 targeted selection 是一个很实际的主题。例如,拿广告投放举例,广告主一般倾向于把广告投给有潜力转化的人,一般不会把广告浪费在八竿子打不着的人身上。
比赛结果小结
完整的比赛结果小结在 Prof. Hahn 的主页上:https://math.la.asu.edu/~prhahn [Summary report] [Summary plots]
我重画了一下 summary plots,因为官方的 summary plots 只标了算法的ID,看起来不是很方便。第一幅图越往右下角越好(置信区间可以 cover 到真实 SATT 并且置信区间小)。第二幅图越往左下角最好(SATT 和 CATE都准)。个人感觉,整体上看,这4个方法比较好:
- BART with propensity score 和 BART with propensity score (symmetrized):大概能猜到是怎么做的,应该是先学一个 propensity score 然后当做 covariates 放进BART,不过找不到源码。
- Baysian Causal Forest (图中为bcf_att):在 https://math.la.asu.edu/~prhahn/results_stuff.zip 可以找到源码
- Targted learning:在 GitHub 可以找到源码 https://github.com/ck37/atlantic-causal-2017
个人感想
- 从两年的比赛来看,BART 是一个输出非常稳定的选手。同时,BART 和其它方法结合起来似乎战斗力还可以变得更强。个人特别喜欢 BART on PScore 这个组合。
- Ensemble 看起来是很有前途的。在16年的比赛里,H2O Ensemble 效果很好,可惜没有开源。
- 比赛中用的数据生成方式很适合利用公开的或者自己的 covariates 生成大量 benchmark 数据。毕竟如果要在真实场景中构造这么多带有 ground truth ATT 的数据,是要吐血的。