建模因果关系#

除了少数例外,在 DoWhy 中,执行因果任务(causal task)的第一步是以因果图的形式建模因果关系。因果图模型化了系统或问题域中存在的因果关系,即“原因-效应关系”。这有助于明确表达每个因果假设。例如,海拔 → 温度,即海拔越高导致温度越低。在 DoWhy 中,我们要求因果图是一个有向无环图(DAG),其中边 X→Y 表示 X 导致 Y。从统计学上讲,因果图编码了变量之间的条件独立关系。

通常,因果图可以基于领域知识构建。例如,在微服务分布式系统中,我们可以使用请求跟踪框架来重建该系统中的依赖图。在这里,因果图是依赖图的逆向。

../../_images/microservice-architecture1.png

在其他情况下,例如在理解导致酒店预订取消的因素中,我们可以咨询领域专家,了解并构建因果图。

../../_images/hotel-booking-cancellations.png

在不知道因果图的情况下,我们可以应用从数据中学习因果结构的方法。章节从数据中学习因果结构介绍了相关的统计方法。

因果图是大多数因果任务中最重要的组成部分,因为下游分析的准确性取决于它。要诊断并可能驳斥因果图,请查看驳斥因果图以及示例笔记本用户给定有向无环图的伪造性检验。这些测试不能断定一个图是有效的,但可以检查任何对于数据集有效的图都应满足的必要属性。因此,它们可以用来驳斥无效图,帮助发现错误并改进图。

一旦有了因果图,接下来的步骤取决于我们想做什么。