因果模型:表示因果结构

对于一组变量 \(V\),它的 因果结构 能够被一个有向无环图(DAG)表示,其中 DAG 中每个节点对应于 \(V\) 中的一个变量;变量间的直接函数关系由DAG中的一个带箭头的连接线表示。用 DAG 表示的因果结构能够精确地说明每一个变量是如何被它的父节点影响的。举个例子, \(X \leftarrow W \rightarrow Y\) 表明 \(W\) 是一个父节点,也是变量 \(X\)\(Y\) 共同的因。更具体一点,对于两个不同的变量 \(V_i\)\(V_j\),如果它们的函数关系是

\[V_j = f(V_i, \eta_{ij})\]

其中 \(f\) 为函数关系, \(\eta\) 表示噪声,那么用 DAG 来表示这个因果结构时,应该有一个箭头从 \(V_i\) 指向 \(V_j\)。详细的介绍这种因果结构的DAGs可以在 [Pearl] 中找到。

根据 Pearl 的理论,因果效应(也称因果估计量)能够用 \(do-operator\) 表示。例如表达式:

\[P(y|do(x))\]

代表在施加干涉 \(x\)\(y\) 的概率函数。因果结构对于表达和估计感兴趣的因果估计量至关重要。YLearn实现了一个对象 CausalGraph 来支持表示因果结构和对因果结构的相关操作。请参考 因果图 来获得更多细节。

YLearn关心因果推断和机器学习的交叉应用,因此我们假设使用的数据是足够多的观测数据,而不是需要设计随机实验得到的实验数据。对于一个表示因果结构的DAG,因果估计量通常不能被直接的从数据中估计出来,(如平均治疗效应(ATEs))。因为反事实结果是不能够被观测到的。因此有必要在进行任何估计之前,将这些因果估计量转化为其他的能够从数据中估计出来的量,它们被称为统计估计量。把因果估计量转化为对应的统计估计量的过程称为 识别

支持识别和其他因果结构相关操作的对象是 CausalModel。更多的细节可以在 因果模型 中找到。

在Pearl的因果推断语言中,也有必要把结果表示为概率的语言。为了这个目的,YLearn也实现了一个对象 Prob, 其在 概率表达式 中介绍。