目录
联系方式的效应
逆概率加权:首次尝试
联系方式的效应
我们已经完成了大部分艰苦的工作,即理解数据并识别处理变量和混杂因素。现在我们可以开始使用 Causal Inference 360 的工具了。
我们将首先研究联系方式 'contact' 的因果效应。具体来说,我们将考虑平均因果效应,比较如果每个人都通过手机联系与如果每个人都通过座机联系时,正面结果(开设定期存款)的发生率。
我们将以两种不同的方式估计这种效应:逆概率加权(IPW)和标准化。你可以查看各自的笔记(IPW、标准化)来了解更多细节,并尝试第三种方法,即双重稳健回归。回想一下,在观察数据的因果推断中,真实的因果效应永远是未知的:对于每个客户,我们只能观察到他们被分配的干预措施对应的一个结果,我们不能回到过去进行随机实验(随机分配客户进行干预)。通过以不同的方式估计效应,依赖不同的假设,如果结果相近,我们可以增加对所获得结果的信心。
逆概率加权:首次尝试
逆概率加权(IPW)需要一个模型来估计给定混杂因素 X 时处理分配的概率(称为倾向性)。这里我们将从简单的逻辑回归开始。
from sklearn.linear_model import LogisticRegression
from causallib.estimation import IPWlr = LogisticRegression(solver='lbfgs', max_iter=1000)
#lr = LogisticRegression(penalty='l1', solver='saga', max_iter=1000)
#lr = GradientBoostingClassifier()
ipw = IPW(lr)
ipw.fit(X, a)
IPW(clip_max=None, clip_min=None, use_stabilized=False, verbose=False,learner=LogisticRegression(max_iter=1000))
接着,估计两种干预措施下的正面结果发生率(如果所有人都通过手机联系则为 0,如果所有人都通过座机联系则为 1)只需要调用 IPW 对象的 `estimate_population_outcome` 方法即可。
outcomes = ipw.estimate_population_outcome(X, a, y)
outcomes
0 0.156671
1 0.226395
dtype: float64
然而,在接受这个结果之前,我们需要检查 IPW 模型是否存在我们可以通过观察数据检测到的问题。我们使用 Causal Inference 360 的评估图表来做这项检查。
%matplotlib inline
from causallib.evaluation import evaluateeval_results = evaluate(ipw, X, a, y)
eval_results.plot_all()
eval_results.plot_covariate_balance(kind="love");
评估图表显示了以下问题:
- ROC 曲线:标记为“Propensity”的蓝色曲线是根据混杂因素 X 预测处理 a 的标准 ROC 曲线。在正常的分类任务中,我们希望 AUC 值接近 1,但对于因果推断而言,过高的 AUC 值(此处为 0.93)表明两个处理组(手机/座机)过于容易区分。特别是,ROC 曲线左端的垂直部分表明我们可以正确地识别出大量的座机联系(真阳性),几乎没有手机联系混合在其中(假阳性)。此外,标记为“Weighted”的橙色曲线的理想 AUC 应该是 0.5,这意味着在应用倾向性权重之后,两个处理组变得不可区分。当前的 AUC 为 0.19,与理想情况相差甚远。
- 倾向性分布:此图显示了两个处理分配组的倾向性值分布:手机(蓝色)和座机(橙色),其中 a=1 表示被座机联系的概率。右端的大橙色柱状图没有上面的蓝色柱状图,再次指出了存在一个基本上总是被座机联系而从未被手机联系的人群。
- 协变量平衡(左下角):此图(称为 Love 图)中的橙色三角形显示了两个处理组在某些协变量(混杂因素)的均值上有较大差异。重新单独绘制 Love 图,我们可以看到最大的差异出现在经济指标 'cons.price.idx'、'euribor3m' 和 'emp.var.rate' 上。此外,倾向性权重并没有成功减少这些差异(蓝色圆圈)。
综合来看,这些图表显示了两个处理组之间缺乏重叠,特别是存在一个几乎总是被座机联系的人群。除非我们愿意对结果如何从一个区域外推到另一个区域(即,对于总是被座机联系的人群,在手机联系下的结果是什么)做出强烈的假设,否则在没有处理重叠的区域估计因果效应是不建议的。
为了继续进行,我们将排除这一组仅被座机联系的人群,并再次尝试。上述倾向性分布图表明,这可以通过对估计的倾向性值设置阈值(比如说 0.9)来简单地实现。为了获得更多的洞察,我们将使用 IBM 的 AI Explainability 360 (AIX360) 工具包中的规则集学习器来通过少量规则描述这一人群。