因果推断学习笔记(一)——反事实推理中的归因问题


前言

考虑这样一个情景,A先生早晨来到工位上,边摘下口罩边看着昨日新增新冠确诊的新闻,不禁感慨,若不是自己每天都戴口罩注意防控,恐怕自己也已经感染了。“若没有戴口罩,恐怕已经感染”,这句话就暗含着因果推理中的一个重要知识——反事实。换句话说,“戴口罩”是“预防感染”的一个原因。发现“戴口罩”是“预防感染”的原因,并确定其影响程度,就是反事实推理中的归因问题。


一、问题描述

假设输入变量X和输出变量Y均为二值函数, X = 1 X=1 X=1 Y = 1 Y=1 Y=1分别表示“戴口罩”和“未感染”, X = 0 X=0 X=0 Y = 0 Y=0 Y=0分别表示“没戴口罩”和“感染”。归因主要关注两个问题:

  1. 在已知A先生常戴口罩( X = 1 X=1 X=1)且未感染( Y = 1 Y=1 Y=1)的情况下,如果之前他不戴口罩( X = 0 X=0 X=0)且被感染( Y = 0 Y=0 Y=0)的概率;
  2. 在已知B先生不戴口罩( X = 0 X=0 X=0)且感染( Y = 0 Y=0 Y=0)的情况下,如果之前他常戴口罩( X = 1 X=1 X=1)且未感染( Y = 1 Y=1 Y=1)的概率。

问题1中的概率可表示为

P N = P ( Y X = 0 = 0 ∣ X = 1 , Y = 1 ) PN = P(Y_{X=0}=0|X=1,Y=1) PN=P(YX=0=0X=1,Y=1)

其中 Y X = 0 Y_{X=0} YX=0是一个反事实概念,表示假设 X = 0 X=0 X=0且其他条件不变时 Y Y Y的值,它跟条件概率 P ( Y = 0 ∣ X = 0 ) P(Y=0|X=0) P(Y=0X=0)不同。 P N PN PN反映了如果 X X X没有发生,则 Y Y Y不会发生的概率,即反映了“戴口罩”和“感染”之间因果关系的必要性。因此 P N PN PN也称“必要性概率”。

问题2中的概率可表示为
P S = P ( Y X = 1 = 1 ∣ X = 0 , Y = 0 ) PS = P(Y_{X=1}=1|X=0,Y=0) PS=P(YX=1=1X=0,Y=0)

相似地, P S PS PS反映了如果 X X X发生,则 Y Y Y也会发生的概率,即反映了“戴口罩”和“感染”之间因果关系的充分性。因此 P S PS PS也称“充分性概率”。

P N PN PN P S PS PS是反事实推理的重要组成部分,可以有效帮助我们确认事物发生的原因,即归因。但目前为止,这两个概率值无法直接求解,这是因为在已知 X = 1 X=1 X=1的前提下,无法保证其“穿越”到过去再做出 X = 0 X=0 X=0的选择。这里以“必要性概率”的求解为例,介绍一种目前常用的分析方法。


二、“必要性概率”PN的求解

1. 单调性情况下

对于 P N PN PN,研究人员引入了一种大多数情况下满足的单调性假设,即 Y X = 1 ≥ Y X = 0 Y_{X=1} \geq Y_{X=0} YX=1YX=0,可以理解为采取行动(戴口罩)的结果 Y X = 1 Y_{X=1} YX=1不会比不采取行动(不戴口罩)的结果 Y X = 0 Y_{X=0} YX=0更差。在单调性情况下, P N PN PN可以写为:

P N = P ( Y = 1 ) − P ( Y = 1 ∣ d o ( X = 0 ) ) P ( X = 1 , Y = 1 ) PN = \frac{P(Y=1)-P(Y=1|do(X=0))}{P(X=1,Y=1)} PN=P(X=1,Y=1)P(Y=1)P(Y=1do(X=0))

式中, d o ( X = 0 ) do(X=0) do(X=0)表示干预,即指定人必须不戴口罩,一般只能通过随机试验获得。根据全概率公式,上式可进一步写为:

P N = P ( Y = 1 ∣ X = 1 ) − P ( Y = 1 ∣ X = 0 ) P ( Y = 1 ∣ X = 1 ) + P ( Y = 1 ∣ X = 0 ) − P ( Y = 1 ∣ d o ( X = 0 ) ) P ( X = 1 , Y = 1 ) PN = \frac{P(Y=1|X=1)-P(Y=1|X=0)}{P(Y=1|X=1)}+\frac{P(Y=1|X=0)-P(Y=1|do(X=0))}{P(X=1,Y=1)} PN=P(Y=1X=1)P(Y=1X=1)P(Y=1X=0)+P(X=1,Y=1)P(Y=1X=0)P(Y=1do(X=0))

上式中,第一项被称为过剩风险率(ERR),反映了对 X = 1 X=1 X=1 X = 0 X=0 X=0的不同风险比率;第二项混杂因子(CF)表示需要为混杂偏差因素的校正,即 P ( Y = 1 ∣ X = 0 ) ≠ P ( Y = 1 ∣ d o ( X = 0 ) ) P(Y=1|X=0) \neq P(Y=1|do(X=0)) P(Y=1X=0)=P(Y=1do(X=0))。换句话说,指定人群不戴口罩得到的感染情况与人们自愿不戴口罩的感染情况不同,比如自愿不戴口罩的人可能在其他方面也比一般人群更不注意防护(更容易感染),那么第二项CF会调整这个偏向。

2. 非单调性情况下

对于一般的非单调性问题, P N PN PN无法直接求得,有学者给出了 P N PN PN的上下界,即
m a x [ 0 , P ( Y = 1 ) − P ( Y = 1 ∣ d o ( X = 0 ) ) P ( X = 1 , Y = 1 ) ] ≤ P N ≤ m i n [ 1 , P ( Y = 0 ∣ d o ( X = 0 ) ) − P ( X = 0 , Y = 0 ) P ( X = 1 , Y = 1 ) ] max[0,\frac{P(Y=1)-P(Y=1|do(X=0))}{P(X=1,Y=1)}] \leq PN \leq min[1,\frac{P(Y=0|do(X=0))-P(X=0,Y=0)}{P(X=1,Y=1)}] max[0,P(X=1,Y=1)P(Y=1)P(Y=1do(X=0))]PNmin[1,P(X=1,Y=1)P(Y=0do(X=0))P(X=0,Y=0)]

进一步推导,下界(LB)和上界(UB)可表示为:
L B = E R R + C F LB=ERR+CF LB=ERR+CF U B = E R R + q + C F UB=ERR+q+CF UB=ERR+q+CF

其中, E R R ERR ERR C F CF CF分别表示过剩风险率和混杂因子, q = P ( Y = 0 ∣ X = 1 ) / P ( Y = 1 ∣ X = 1 ) q=P(Y=0|X=1)/P(Y=1|X=1) q=P(Y=0X=1)/P(Y=1X=1)表示 X = 1 X=1 X=1群体中负面结果与正面结果的比率。可以看出, E R R ERR ERR q q q均可以通过观测数据(常通过问卷调查得到)估计,而 C F CF CF则必须通过试验数据估计,因为里面包含干预项。


三、案例分析

分析一个起诉药品制造商的诉讼案件。C先生买了一种止疼药来缓解疼痛,却在服药后死亡。C先生的家人(原告)提起诉讼,要求药品制造商(被告)承担责任。被告和原告分别提供药检结果(试验数据)和调查结果(非试验数据),见下表,其中 x x x x ′ x' x分别表示服药和不服药, y y y y ′ y' y表示死亡和存活。

在这里插入图片描述
被告的数据来自严格的药检,原告的数据则来自对自愿服药的患者的调查。被告称,该药品虽然会导致死亡率的轻微增加(从1.4%增加到1.6%),但与镇痛效果相比,这种增加在接受范围内。根据传统的过剩风险率的计算,被告需要承担的责任可用如下概率值 P 1 P_1 P1衡量:
P 1 = P ( y ∣ x ) − P ( y ∣ x ′ ) P ( y ∣ x ) = 0.016 − 0.014 0.016 = 0.125 P_1=\frac{P(y|x)-P(y|x')}{P(y|x)}=\frac{0.016-0.014}{0.016}=0.125 P1=P(yx)P(yx)P(yx)=0.0160.0160.014=0.125

原告则辩称,被告的数据是在通过随机试验得到的,受试者并不都是自愿服药的,因此存在偏差,即试验设置和实际情况不同。鉴于C先生已死亡,应计算其当初如果没有服药且不会死亡的几率,即被告责任的计算应服从反事实理论。假设药品不会阻止死亡(即服药后要不维持现状,要不加剧死亡),则单调性成立,必要性概率可表示如下:
P 2 = P ( y ∣ x ) − P ( y ∣ x ′ ) P ( y ∣ x ) + P ( y ∣ x ′ ) − P ( y ∣ d o ( x ′ ) ) P ( x , y ) = 0.002 − 0.028 0.002 + 0.028 − 0.014 0.001 = − 13 + 14 = 1 P_2=\frac{P(y|x)-P(y|x')}{P(y|x)}+\frac{P(y|x')-P(y|do(x'))}{P(x,y)}=\frac{0.002-0.028}{0.002}+\frac{0.028-0.014}{0.001}=-13+14=1 P2=P(yx)P(yx)P(yx)+P(x,y)P(yx)P(ydo(x))=0.0020.0020.028+0.0010.0280.014=13+14=1

可以看出,根据调查数据观测到的 E R R ERR ERR为-13,给人的印象是药品能阻止死亡,但是偏差校正项(+14)修正了这种印象,使得必要性概率为1。另外,代入数据计算得到下界 L B = 1 LB=1 LB=1,因此可以得出结论:即使没有单调性假设,必要性概率也为1,即原告是正确的。如果抽样本身没有问题,数据提供了充分的支持,表明药品确实是C先生死亡的原因,药品制造商应对C先生的死亡承担全部责任。


总结

客观数据是实际工程中的重要组成部分,其主要包含试验数据和观测数据。一般情况下,观测数据更容易获得,更客观且成本更低,但是其中存在混杂因素,因此无法直接用于因果推断。混杂因素的发现并衡量,是反事实归因问题的重要部分。


参考文献
[1] Pearl J, Glymour M, Jewell NP. Causal inference in statistics: a primer. Hoboken: John Wiley & Sons; 2016.
[2] Kuang K, Li L, Geng Z, et al. Causal inference. Engineering, 2020.

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到因果推断时,常用的机器习方法是基于因果图模型的因果推断。下面是一个使用因果图模型进行因果推断的案例代码: ```python import numpy as np import pandas as pd from causality.inference.search import IC from causality.inference.independence_tests import RobustRegressionTest from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 准备数据 data = pd.read_csv('data.csv') # 假设数据存储在data.csv文件 X = data[['X1', 'X2', 'X3']] # 假设有三个特征变量X1, X2, X3 y = data['Y'] # 响应变量Y # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 进行因果推断 ic_algorithm = IC(RobustRegressionTest) graph = ic_algorithm.search(X_train, y_train) # 获取因果关系 causal_relationships = graph.edges # 根据因果关系进行预测 X_causal = X_train[list(causal_relationships.keys())] X_test_causal = X_test[list(causal_relationships.keys())] model = LinearRegression() model.fit(X_causal, y_train) predictions = model.predict(X_test_causal) # 评估预测结果 mse = np.mean((predictions - y_test) ** 2) print(f"Mean Squared Error: {mse}") ``` 在这个例子,我们假设有三个特征变量 X1, X2, X3 和一个响应变量 Y。我们使用因果图模型进行因果推断,从训练数据学习因果关系。然后,我们根据学习到的因果关系选择相关的特征变量进行预测。在这里,我们使用线性回归作为预测模型,根据训练集因果特征变量和响应变量训练模型,并使用测试集进行预测。最后,我们计算预测结果的均方误差作为评估指标。 请注意,这个例子使用了 causality 包的一些方法和类。你可能需要在运行代码之前安装该包,可以使用命令 `pip install causality` 进行安装。另外,这个例子只是一个简单的示例,实际可能需要根据具体问题进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值