因果推理学习笔记
星期六, 11月 16, 2024 | 4分钟阅读 | 更新于 星期六, 11月 16, 2024
因果推理入门级简介
因果推理
定义——对比实验
实验组的 干预 是因,与对照组 区别 是果
介入主义 (Interventionism)
- 模型组成
- 系统(受干预的对象) $u \in U $
- 介入方式 $t \in T$,并定义「不介入」为 $c$
- 状态函数 $Y$,记作 $y = Y_t(u)$,特别地,默认状态 为 $Y_c(u)$
结构因果模型 Structural Causal Model
虚拟事实模型 Rubin Causal Model
-
对单个系统而言,定义「结果」为 $\delta(u) = Y_t(u) - Y_c(u)$
-
用 期望 扩展到群体 $E[\delta(u)] = E[Y_t(u)] - E[Y_c(u)]$ (线性)
-
因果推断的 根本问题:无法同时知晓完全相同的系统在 不同介入 后的状态 $Y_c(u)$ 和 $Y_t(u)$
- 个体处理效应稳定假设 (Stable unit treatment value assumption, SUTVA):对个体 $u_1$ 的干预 不影响任意其他个体 $u_2$
- 同效果假设:对每个个体,某种介入 的影响相同
- 同质性假设:对每个个体,所有介入 的影响相同
-
缺陷
- 一次仅修改一个变量
- 黑箱
贝叶斯网络
-
有向无环 的概率图模型,引入先验的「条件独立」信息
-
每个节点的概率分布为: $$ P(X = x|\mathrm{pa}(X)) $$
-
即使有大量 缺失、未知变量 信息,仍可通过 边缘化操作 进行推断
-
可以解决
- 条件概率(包含空条件)
- 最大后验概率
三个节点的关系
- cascade $A → B → C$
- $ A ⊥̸ C$ 且 $(A \perp C) | B$
- 对应因果推断中的「chain」结构
- common parent $A ← B → C$
- $ A ⊥̸ C$ 且 $(A \perp C) | B$
- 对应因果推断中的「Fork」结构
- V-structure $A→ B ← C$
- 与上述两种情况相反,$ A \perp C$ 且 $(A ⊥̸ C) | B$
- 对应因果推断中的「Collider」结构
d-connected / d-separated(有向连接 / 分割)
- 如果所有的「依赖路径」都被阻隔,则为 d-separated
- 只要有一条未被阻隔,即为 d-connected
结构方程模型 Structural Equation Model
$$ X = f_X(\mathrm{pa}(X), u(X)) $$
- $X$ 依赖于 内生变量 $\mathrm{pa}(X)$ 和 外生变量 $u(X)$
- 不同于贝叶斯网络(许多连续概率分布 可逆),这里采用 函数式 方程,用于打破对称性
- $f_X$ 可以是非线性的,描述一种「变化传递」
干预
-
不同于 条件概率 进行的「缩小观察范围」SEM 还允许「干预」操作 $$ P(Y|do(X = x_0)) $$
-
将 $X$ 赋值为 $x_0$,并切断所有 指向 $X$ 的边(包括内生、外生变量)
-
与观察不同,干预会影响模型的「默认状态」
观察:$X = x_0$ 条件下 $Y = y_0$ 的概率
介入:令 $X = x_0$ 为当前默认状态,求 $Y = y_0$
(已知仪器示数 / 拆下仪器电池)
-
调整公式 Adjustment Formula
$$ P(Y = y|do(X = x)) = \sum\limits_{z} P(Y = y| X = x, Z = z) P(Z = z) \\ P(Y = y|do(X = x)) = \sum\limits_{z} P(Y = y| X = x, PA = z) P(PA = z) $$
-
类似全概率公式(加权求和)但更简单
https://github.com/FeatherBlade91/featherblade91.github.io/tree/main/img
-
可以仅通过「观测数据」计算 干预 后结果
-
使用要求:Z 是可观测的
-
应用举例:辛普森悖论(男 357,女 343,共 700)
服药组治愈率 未服药组治愈率 男性 $\frac{81}{87} = 0.93$ $\frac{234}{270} = 0.87$ 女性 $\frac{192}{263} = 0.73$ $\frac{55}{80} = 0.69$ 总计 $\frac{273}{350} = 0.78$ $\frac{289}{350} = 0.83$ 实际上应该计算 $$ \begin{eqnarray} && P(治愈| do(服药)) \\ &=& \sum P(治愈 | 服药, 性别)P(性别) \\ &=& P(治愈 | 服药, 男)P(男) + P(治愈 | 服药, 女)P(女) \\ &=& 0.93 * \frac{357}{700} + 0.73 * \frac{343}{700}\\ &=& 0.832 \\ \\ && P(治愈| do(不服药)) \\ &=& \sum P(治愈 | 不服药, 性别)P(性别) \\ &=& P(治愈 | 不服药, 男)P(男) + P(治愈 | 不服药, 女)P(女) \\ &=& 0.87 * \frac{357}{700} + 0.69 * \frac{343}{700}\\ &=& 0.781 \end{eqnarray} $$
-
后门调整
-
后门路径:连接 $X, Y$ 的路径中,存在「直接指向 $X$ 的箭头」,则为 $X$ 的后门路径
- 若不存在后门路径,则 $P(Y = y|do(X = x)) = P(Y = y|X = x)$
- 否则上述等式不成立
-
后门调整:如果要计算 $P(Y = y|do(X = x))$,而 $X$ 存在后门路径,在干预时需进行 阻断(控制)
可以选择阻断满足下列条件的一组变量 $Z$ ,对这一组 $Z$,调整公式成立(同上)
- $Z$ 都不是 $X$ 的 后代
- 以 $Z$ 为条件将阻断 $X, Y$ 间的所有 后门路径
- 不会产生新的 $X$ 的后门路径($Z$ 不为 collider 及其子节点)
$$ P(Y = y|do(X = x)) = \sum\limits_{z} P(Y = y| X = x, Z = z) P(Z = z) \ $$
前门调整
$$ P(Y = y|do(X = x)) = \sum_zP(Z = z|X = x)\sum_{x’} P(Y = y| X = x’, Z = z)P(X = x’) $$
-
前门调整
- $X, Z$ 之间没有 未阻断的路径
- 以 $Z$ 为条件将阻断 $X, Y$ 间的所有 后门路径
- $Z$ 和 $Y$ 之间所有的 后门路径 被 $X$ 阻断
-
推导过程(后门 + 全概率)
逆概率加权
- 有时 $Z$ 取值过多不好遍历,可以套一层条件概率公式
$$ \begin{eqnarray} P(Y = y|do(X = x)) &=& \sum\limits_{z} P(Y = y| X = x, Z = z) P(Z = z)\\ &=& \sum_z\frac{ P(Y = y, X = x, Z = z)}{P(X = x|Z = z)} \end{eqnarray} $$
线性情况
-
相互独立
-
离散:$P(Y|X, Z) = P(Y|Z)$
-
连续:$E[Y|X, Z] = E[Y|Z]$
-
线性建模 $$ E[Y|X_1 = x_1, \dots, X_n = x_n] = r_0 + r_1x_1 + \dots + r_nx_n $$ 其中 $r_i$ 称为 回归系数,是对观测数据归纳出的结果,并反应因果特性
另外有一部分参数在有向边上,称为 路径系数
-
示例 $$ \begin{eqnarray} Y &=& dZ + eW + U_Y\\ &=& dZ + e(bX + U_W + cZ) + U_Y \\ &=& (d + ce)Z + ebX + U_Y + eU_W \\ &=& \dots \end{eqnarray} $$
-
-
路径系数的计算
-
断开 $X$ 与 $Y$ 的边
- 如果有 一组变量 $Z$ 能将 $X$ 和 $Y$ d-separate,则有 线性回归模型
$$ Y = r_X X + r_Z Z + \epsilon $$
反事实推理
-
计算施加干预后的概率 $$ P (Y|do(T = t), U = u) $$
- 一般需要假设所有「外生变量」$U$ 可观测
- 然而现实中,$U$ 往往无法全部得到,因此反事实推理普遍困难
因果发现
因果图的建立
- 基于约束的遍历方法
- 基于得分的搜索方法
- 基于结构性方程假设的方法
因果效应评估
参考资料:
可解释人工智能导论 第3章 (https://space.lib.buaa.edu.cn/space/searchDetailLocal/mbb2b289855b830a211e8ef7a19b5f0d9)
- 最佳方式:随机对照试验 (Randomized Controlled Trial, RCT)
- 但现实中成本过高,或样本 难以获取
- 解决方法:观测性数据(仍可分组对比,但存在 混淆偏差)
样本匹配法
-
为每个样本 匹配 其反事实组
-
每组样本除干预变量外,其余性质尽可能相近,可通过定义「距离」衡量近似度 $$ c(i) = \arg \min\limits_{j:t_j = 1 - t_i} \mathrm{dist} (\boldsymbol x_i, \boldsymbol x_j) $$
- 计算量大,且难以求解
基于倾向性得分的方法
-
倾向性得分 (Propensity Score) 给定观测变量,被干预 的条件概率,即「属于实验组 的 “倾向性”」 $$ e(X) = P(T|X) $$ 这是一种 balancing score,具有两个很好的性质 $$ T_i \perp X_i | e(X_i) \ T_i \perp Y_i | e(X_i) $$ 即,对于 倾向性得分相同 的用户
- 干预与 特征 独立
- 干预与 潜在结果 独立
-
「倾向性匹配」可用于代替距离衡量 近似度,将样本匹配法中公式改写为 $$ c(i) = \arg \min\limits_{j:t_j = 1 - t_i} |e_i - e_j| $$
-
「逆倾向性得分加权」:调整实验组、对照组 分布相同 (干预组除以 $e_i$,非干预组除以 $1-e_i$ ) $$ w_i = \frac{t_i}{e_i} + \frac{1 - t_i}{1 - e_i} $$
-
然而,倾向性得分常常是 未知 的
- 估算方法:监督学习,如 Logistic Regression
混淆变量平衡 Directly Confounder Balancing
-
为避免倾向性得分的 模型假设错估,直接平衡样本的 混淆变量 分布
- 思路:$分布相等 \iff 分布的各阶矩相等 $
- 各阶矩:$E_X[X, X^2, X_iX_j, X^3, X_iX_jX_k, \dots]$
-
实践中,只平衡 一阶矩 ,并添加 权重的熵 作为惩罚项 $$ \min \sum_{i: t_i = 0} w_i \log w_i \\s.t. ||\overline{X_t} -X_c\boldsymbol{w}||_2^2 = 0 \\ \sum _{i: t_i=0} w_i = 1, \\ \quad \boldsymbol{w} \geqslant 0 $$