这个项目能做什么

DoWhy 是一个开源的因果推断 Python 库,在 PyWhy 生态下开发。它旨在引导用户完成因果推理的各个步骤,并为回答因果问题提供统一接口。 该库建立在两大框架之上:图形因果模型和潜在结果。对于效应估计,它使用基于图的准则和 do-calculus 来建模假设并识别非参数因果效应,然后切换到基于潜在结果的方法进行估计。对于效应估计之外的问题,它通过每个节点上明确的因果机制对数据生成过程建模,从而能够将观察到的效应归因于特定变量,并估计逐点反事实。 主要能力包括: - 效应估计:识别、平均因果效应、条件平均因果效应、工具变量等。 - 量化因果影响:中介分析、直接箭头强度、内在因果影响。 - What-if 分析:从干预分布生成样本并估计反事实。 - 根因分析与解释:将异常归因于原因、寻找分布变化的原因,以及估计特征相关性。 一个显著特性是反驳与证伪 API,它可以为任何估计方法检验因果假设,旨在使推断更稳健,并让非专家也能使用。 效应估计的典型工作流包括四个步骤:建模、识别、估计和反驳。用户定义因果图(通常通过 NetworkX),识别目标估计量,用统计方法进行估计,然后运行稳健性检查。DoWhy 强调可解释性,允许在任何时候检查未检验的假设、已识别的估计量和估计结果。 图形因果模型(GCM)框架支持结构因果模型、因果机制的自动分配、拟合、评估、异常归因和干预采样。它基于 Pearl 的框架,并显式地对因果机制建模。 DoWhy 支持 Python 3.8+,可通过 pip、poetry 或 conda 安装。诸如 pydot 或 pygraphviz 之类的可选依赖可支持以 dot 格式输入图,并生成更美观的图形。该项目提供大量文档、示例 notebook、案例研究和视频教程。它是 PyWhy 组织的一部分,该组织还托管相关工具,例如用于条件平均处理效应估计的 EconML。