发布说明#
DoWhy 托管在 GitHub 上。
您可以在这里浏览 HTML 友好格式的代码。
v0.9: 新的函数式 API(预览)、更快的反驳以及针对 GCM 的更好的独立性测试#
2022 年 12 月 5 日
新函数式 API 的预览(参见笔记本)。新的 API(实验阶段)允许模块化地使用不同的功能,并为因果估计器提供了单独的拟合和估计方法。请在此处留下您的反馈。基于 CausalModel 的旧 DoWhy API 应能像以前一样工作。(@andresmor-ms)
- 更快、更好的敏感性分析。
现在许多反驳方法支持使用 joblib 进行并行处理,并显示进度条 (@astoeffelbauer, @yemaedahrav)。
非线性敏感性分析 [Chernozhukov, Cinelli, Newey, Sharma & Syrgkanis (2021), 示例笔记本] (@anusha0409)
E-value 敏感性分析 [Ding & Vanderweele (2016) <https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4820664/>, 示例笔记本] (@jlgleason)
新的单元变化归因 API (@kailashbuki)
新的质量选项 BEST 用于因果机制的自动分配,它使用可选的自动机器学习库 AutoGluon (@bloebp)
通过 causal-learn 包实现更好的条件独立性测试 (@bloebp)
计算高效后门集的算法 [示例笔记本] (@esmucler)
支持估计受控直接效应 (@amit-sharma)
支持对 econml 估计器进行多值处理 (@EgorKraevTransferwise)
文档采用新的 PyData 主题,包含新的主页、入门指南、修订的用户指南和示例页面 (@petergtz)
一份贡献指南以及为新贡献者简化的说明 (@MichaelMarien)
使用 Poetry 简化开发环境,用于管理依赖项和项目构建 (@darthtrevino)
错误修复
v0.8: GCM 支持和基于偏 R2 的敏感性分析#
2022 年 7 月 18 日
非常感谢 @petergtz、@kailashbuki 和 @bloebp 提供的 GCM 包,以及 @anusha0409 提供的线性模型偏 R2 敏感性分析实现。
图因果模型:SCMs、根因分析、归因、假设分析等。
敏感性分析:更快、更通用的基于偏 R2 的线性模型敏感性分析,基于Cinelli & Hazlett (2020)。
新的文档结构:更新的文档结构,包括用户和贡献者指南。查看文档。
错误修复
贡献者:@amit-sharma, @anusha0409, @bloebp, @EgorKraevTransferwise, @elikling, @kailashbuki, @itsoum, @MichaelMarien, @petergtz, @ryanrussell
v0.7.1: 添加了图反驳器。支持 dagitty 图和外部估计器#
带有条件独立性测试的图反驳器,用于检查数据是否符合假定的因果图
通过在其自己的 init 方法中直接添加特定于方法的参数来改进估计器文档
支持使用自定义外部估计器
dowhy 和 econml 估计器的 init_params 结构一致
添加对 Dagitty 图的支持
修复了 GLM 模型、无混杂因素的因果模型以及酒店案例研究笔记本的错误
感谢 @EgorKraevTransferwise、@ae-foster、@anusha0409 的贡献!
v0.7: 针对未观测混杂因素和安慰剂处理的更好反驳器#
[主要] 更快的后门识别,支持最小调整、最大调整或穷举搜索。提高了识别的测试覆盖率。
[主要] 添加了因果发现的新功能 [实验性]。DoWhy 现在支持来自外部库(如 CDT)的发现算法。[示例笔记本]
[主要] 实现了用于因果识别的 ID 算法。[实验性]
为 DoWhy 的效应估计添加了友好的文本解释。
添加了一种新的估计方法,距离匹配,它依赖于输入之间的距离度量。
用于推断反驳器默认参数的启发式方法。
自动推断倾向得分分层分析的默认分层。
在基于倾向得分的估计方法中添加了对自定义倾向模型的支持。
修复了线性回归置信区间的错误。改进了 bootstrap 方法。
允许对 econml 估计器进行效应估计,无需重新拟合模型
非常感谢 @AndrewC19、@ha2trinh、@siddhanthaldar 和 @vojavocni
v0.6: 针对未观测混杂因素和安慰剂处理的更好反驳器#
[主要] 安慰剂反驳器也适用于 IV 方法
[主要] 将 matplotlib 移至可选依赖项。可以使用 pip install dowhy[plotting] 进行安装
[主要] 一种新的方法,用于生成未观测混杂因素进行反驳
更新以与 EconML 的新 API 对齐
所有反驳器现在都支持连续处理的控制和处理值
更好的日志配置
Dummyoutcomerefuter 支持未观测混杂因素
非常感谢 @arshiaarya、@n8sty、@moprescu 和 @vojavocni
v0.5-beta: 增强的文档和对因果中介的支持#
安装
DoWhy 现在可以在 Conda 上安装了!
代码
支持通过中介公式进行识别
支持前门准则
用于中介的线性估计方法
使用路径和 d-separation 实现广义后门准则
添加了 GLM 估计器,包括逻辑回归
用于解释因果模型、估计和反驳器的新 API。@ErikHambardzumyan 的第一个解释器可视化了混杂因素分布的变化方式
当分箱中没有足够数据时,倾向得分分层估计器的错误消息更友好
增强了带有机器学习组件的虚拟结果反驳器——现在也可以模拟非零效应。已准备好进行 alpha 测试
文档
社区
创建了一个包含贡献指南的贡献者页面
添加了 allcontributors 机器人,以便在新贡献者的拉取请求合并后立即添加他们
非常感谢 @Tanmay-Kulkarni101、@ErikHambardzumyan、@Sid-darthvader 的贡献。
v0.4-beta: 强大的反驳功能和对异质处理效应的更好支持#
- DummyOutcomeRefuter 现在包含机器学习函数,以提高反驳的能力。
除了生成随机的虚拟结果外,现在还可以生成一个虚拟结果,它是混杂因素的任意函数,但始终独立于处理,然后测试估计的处理效应是否为零。这受到了 T-learner 思想的启发。
我们还提供了默认的基于机器学习的方法来根据混杂因素估计这样的虚拟结果。当然,您可以指定任何自定义的机器学习方法。
- 添加了一个新的 BootstrapRefuter,模拟混杂因素的测量误差问题。您可以在混杂因素的值上添加噪声来生成 bootstrap 样本,而不是进行简单的 bootstrap,然后检查估计结果的敏感性。
反驳器支持自定义选择要添加噪声的混杂因素。
所有反驳器现在都提供置信区间和显著性值。
- 对异质效应库(如 EconML 和 CausalML)的更好支持
除了 EconML 的所有方法外,所有 CausalML 方法都可以直接从 DoWhy 调用。
[估计器命名方案变更] 为了实现估计器命名方案的一致性,我们建议在内部 dowhy 估计器前加上字符串“dowhy”。例如,“backdoor.dowhy.propensity_score_matching”。这不是一个破坏性变更,因此您也可以继续使用旧的命名方案。
EconML 特定:由于 EconML 假定效应调节因子是混杂因素的子集,如果用户指定了混杂因素之外的效应调节因子并尝试使用 EconML 方法,则会发出警告。
置信区间和标准误差:为所有方法添加了基于 bootstrap 的置信区间和标准误差。对于线性回归估计器,还实现了相应的参数形式。
用于获取置信区间、标准误差和条件处理效应 (CATE) 的便捷函数,如果需要,可以在拟合估计器后调用
提高了测试覆盖率。此外,测试现在用随机种子进行初始化,因此测试更可靠。
感谢 @Tanmay-Kulkarni101 和 @Arshiaarya 的贡献!
v0.2-alpha: CATE 估计和与 EconML 集成#
此版本包含许多重大更新
(重大变更) CausalModel 的导入现在更简单了:“from dowhy import CausalModel”
现在支持多元处理。
可以对数据的任何子集估计条件平均处理效应 (CATE)。包括与 EconML 的集成——可以使用 DoWhy 通过 estimate_effect 方法调用 EconML 中的任何方法(参见示例笔记本)。
除了 CATE 外,许多估计方法还支持特定的目标估计值,如 ATT 和 ATC。
为了可重现性,您可以为所有反驳方法指定一个随机种子。
多个错误修复和文档更新。
包括来自 @j-chou、@ktmud、@jrfiedler、@shounak112358、@Lnk2past 的贡献。感谢大家!
v0.1.1-alpha: 首次发布#
这是该库的首次发布。