什么时候用
先判断任务是否合适
- 有观察数据、有因果假设但无法做随机实验
- 需要从数据中估计某个处理对结果的因果效应大小
- 想检验因果结论是否对未观测混淆稳健
- 需要定位异常的根因或量化各因素对分布变化的贡献
先准备什么
材料越清楚,结果越有用
- •准备包含处理、结果和协变量的表格数据
- •基于领域知识画出变量间的因果DAG(有向无环图)
- •选定estimand类型(ATE、CATE、ATE等)和估计方法
它会怎样推进
从材料到可以检查的结果
- 01
因果图建模
把处理、结果、混淆变量的因果假设编码为图模型和变量角色
- 02
效应识别
在图结构上判断效应是否可识别,找出有效的调整变量集合
- 03
效应估计
用指定统计方法从数据中估计因果效应大小并给出置信区间
- 04
反驳检验
用加随机混淆、安慰剂处理、数据子集等方法检验效应估计的稳定性
- 05
敏感性分析
量化未观测混淆需要多强才能推翻已有结论(E-value)
第一次这样开始
把仓库地址直接交给 AI
先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。
第一次直接复制
帮我安装这个库:https://github.com/py-why/dowhy 安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。
结果出来后
先看这些检查点
- 因果图的箭头方向是否符合领域知识而非数据驱动
- 识别阶段输出的调整变量集合是否排除本身就是处理结果的变量
- 反驳检验中新效应值是否偏离原估计过大
- E-value是否足够大于最强已观测混淆
常见误区
这些判断仍由你负责
- 跳过因果图建模直接用变量声明跑识别和估计
- 把单一反驳方法通过等同于因果结论成立
- 忽略econml等可选依赖未安装时的降级行为
技术依据
查看能力拆解、验证范围与来源
技术依据
查看能力拆解、验证范围与来源
- 01
GCM因果机制建模与归因
不依赖经典 backdoor/iv 识别-估计范式,而是通过显式建模每个变量的因果数据生成机制(structural causal model),支持效应估计以外的因果任务:异常归因、根因分析、分布变化分解、干预/反事实采样、因果影响力量化、特征相关性、模型证伪。
- 02
反驳检验
对已估计的因果效应,用多种稳健性检验(加随机共同原因、加未观测共同原因、安慰剂处理、虚拟结果、数据子集、bootstrap)扰动估计过程,判断估计值是否对假设违反敏感,从而为非专家提供"这个因果结论是否站得住"的可检查信号。
- 03
因果图建模与假设声明
把研究者的因果假设(哪些变量是处理、哪些是结果、哪些是共同原因、哪些是工具变量、哪些是效应修饰因子)和数据,显式编码成内部 CausalModel 和 CausalGraph,使后续识别、估计和反驳都能引用同一套假设。
- 04
因果效应估计
在已识别的 estimand 基础上,用指定的统计方法(倾向性得分、回归、双重稳健、工具变量、回归断点、两阶段、GLM、econml CATE)从数据中估计因果效应的数值大小,并给出置信区间、显著性和条件效应。
| 能力 | 主要输入 | 主要输出 | 人工检查 |
|---|---|---|---|
GCM因果机制建模与归因源码已核对 |
|
|
|
反驳检验源码已核对 |
|
|
|
因果图建模与假设声明源码已核对 |
|
|
|
因果效应估计源码已核对 |
|
|
|
因果效应识别源码已核对 |
|
|
|
敏感性分析源码已核对 |
|
|
|
处理机制
- 01
核心处理链
端到端因果推断库,用四步流水线统一因果建模、识别、估计与反驳
已核对范围
- 静态读取 gcm/init.py 完整 API 导出清单
- 静态读取 gcm/whatif.py interventionalsamples/counterfactualsamples/averagecausaleffect
- 静态读取 gcm/anomaly.py attributeanomalies、gcm/distributionchange.py、gcm/influence.py、gcm/featurerelevance.py 模块位置
- 静态读取 gcm/fittingsampling.py fit/drawsamples、gcm/auto.py assigncausalmechanisms、gcm/modelevaluation.py evaluatecausalmodel、gcm/validation.py refutecausalstructure
- 静态读取 causalmodel.py refuteestimate、causalrefuter.py CausalRefuter 基类与 CausalRefutation 对象
- 静态读取 causalrefuters/ 目录反驳器模块清单与 refuteestimate.py ALLREFUTERS 列表
- 静态读取 testsignificance、choosevariables、SignificanceTestType 枚举
- 静态读取 randomseed、njobs、showprogressbar 参数
仍待核对
- 未运行 GCM 流程,未验证归因字典和采样输出
- 未验证 auto.assigncausalmechanisms 的机制选择规则
- 未验证 distributionchange 和 arrowstrength 的数值输出
- 未运行反驳检验,未验证 neweffect 和 pvalue 实际输出
- 未验证各反驳器对估计值的实际扰动幅度
- 未运行 CausalModel 构造,未验证图解析(DOT/GML/DiGraph)实际行为
- 未验证 missingnodesasconfounders 对结果的改变
- 未运行 estimateeffect,未验证任一估计器实际数值输出
原仓库
py-why/dowhy读取版本
a53f80c7501aa81fbe7db261e1774246a8053699许可
MIT
最近核对
内容 2026-07-10
Stars 2026-07-11
相关文章
具备相关能力的其他库
相关课程
把单项工具放进完整研究设计流程
课程一从研究问题、文献判断、理论假设和方法骨架继续推进,帮助你建立可以复用的研究设计档案。