发布说明#

DoWhy 托管在 GitHub 上。

你可以以html友好的格式浏览代码 这里.

v0.9: 新功能API(预览版),更快的反驳,以及更好的GCM独立性测试#

2022年12月5日

  • 新功能API的预览(参见笔记本)。新API(处于实验阶段)允许模块化使用不同的功能,并包括因果估计器的单独拟合和估计方法。请在此留下您的反馈。基于CausalModel的旧DoWhy API应像以前一样工作。(@andresmor-ms)

  • 更快、更好的敏感性分析。
  • 用于单位变化归因的新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, 根因分析, 归因, 假设分析, 等等。

  • 敏感性分析: 基于Cinelli & Hazlett (2020)的更快、更通用的基于部分R2的线性模型敏感性分析。

  • 新文档结构:更新了文档结构,包括用户和贡献者指南。查看 文档

  • 错误修复

贡献者: @amit-sharma, @anusha0409, @bloebp, @EgorKraevTransferwise, @elikling, @kailashbuki, @itsoum, @MichaelMarien, @petergtz, @ryanrussell

v0.7.1: 添加了图反驳器。支持dagitty图和外部估计器#

  • 使用条件独立性测试的图反驳器,用于检查数据是否符合假设的因果图

  • 通过在自身的初始化方法中直接添加特定于方法的参数,改进估计器的文档

  • 支持使用自定义外部估计器

  • 为dowhy和econml估计器提供一致的init_params结构

  • 添加对Dagitty图的支持

  • 修复了GLM模型、无混杂因素的因果模型以及酒店案例研究笔记本中的错误

感谢 @EgorKraevTransferwise, @ae-foster, @anusha0409 的贡献!

v0.7: 更好的反驳工具用于未观察到的混杂因素和安慰剂处理#

  • [主要] 支持最小调整、最大调整或穷举搜索,加快后门识别速度。增加识别的测试覆盖率。

  • [主要] 新增了因果发现的新功能 [实验性]。 DoWhy 现在支持来自外部库如 CDT 的发现算法。 [示例笔记本]

  • [主要] 实现了用于因果识别的ID算法。[实验性]

  • 为DoWhy的效果估计添加了友好的基于文本的解释。

  • 添加了一种新的估计方法,距离匹配,它依赖于输入之间的距离度量。

  • 用于推断反驳者默认参数的启发式方法。

  • 自动推断倾向评分分层的默认层。

  • 在基于倾向的估计方法中增加了对自定义倾向模型的支持。

  • 修复了线性回归置信区间的错误。改进了自举方法的版本。

  • 允许在不重新拟合模型的情况下进行效果估计,适用于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-分离实现广义后门准则

  • 添加了GLM估计器,包括逻辑回归

  • 用于解释因果模型、估计和反驳的新API。由@ErikHambardzumyan创建的第一个解释器可视化混杂因素分布的变化

  • 当分箱中没有足够数据时,倾向评分分层估计器的错误信息更加友好

  • 对带有机器学习组件的虚拟结果反驳器进行了增强——现在也可以模拟非零效果。准备进行alpha测试

文档

社区

  • 创建了一个贡献者页面,其中包含贡献指南

  • 添加了allcontributors机器人,以便新贡献者可以在他们的拉取请求合并后立即被添加

非常感谢 @Tanmay-Kulkarni101, @ErikHambardzumyan, @Sid-darthvader 的贡献。

v0.4-beta: 强大的反驳和改进的异质性治疗效果支持#

  • DummyOutcomeRefuter 现在包含机器学习功能,以增加反驳的能力。
    • 除了生成一个随机的虚拟结果外,现在你可以生成一个虚拟结果,该结果是混杂因素的任意函数,但始终独立于治疗,然后测试估计的治疗效果是否为零。这是受到T-learner思想的启发。

    • 我们还提供了基于机器学习的默认方法来估计基于混杂因素的虚拟结果。当然,你可以指定任何自定义的ML方法。

  • 添加了一个新的BootstrapRefuter,用于模拟混杂变量测量误差的问题。与简单的bootstrap不同,您可以在混杂变量的值上生成带有噪声的bootstrap样本,并检查估计值的敏感性。
    • 该refuter支持自定义选择要添加噪声的混杂变量。

  • 所有反驳者现在都提供置信区间和显著性值。

  • 更好地支持异构效应库,如EconML和CausalML
    • 所有CausalML方法都可以直接从DoWhy调用,此外还包括所有EconML方法。

    • [更改估计器的命名方案] 为了实现估计器命名方案的一致性,我们建议在内部DoWhy估计器前加上字符串“dowhy”。例如,“backdoor.dowhy.propensity_score_matching”。这不是一个破坏性更改,因此您也可以继续使用旧的命名方案。

    • EconML特定:由于EconML假设效应修饰符是混杂因素的一个子集,如果用户指定了混杂因素之外的效应修饰符并尝试使用EconML方法,则会发出警告。

  • CI 和标准误差:为所有方法添加了基于引导的置信区间和标准误差。对于线性回归估计器,还实现了相应的参数形式。

  • 便利函数用于获取置信区间、标准误差和条件处理效果(CATE),在需要时可以在拟合估计器后调用

  • 更好的测试覆盖率。此外,测试现在使用随机种子进行播种,因此测试更加可靠。

感谢 @Tanmay-Kulkarni101 和 @Arshiaarya 的贡献!

v0.2-alpha: CATE估计与EconML集成#

此版本包含许多重大更新:

  • (重大变更) CausalModel 的导入现在更简单了:“from dowhy import CausalModel”

  • 现在支持多元处理。

  • 可以为数据的任何子集估计条件平均处理效果(CATE)。包括与EconML的集成——通过estimate_effect方法可以使用DoWhy调用EconML中的任何方法(参见示例笔记本)。

  • 除了CATE,许多估计方法还支持特定的目标估计量,如ATT和ATC。

  • 为了可重复性,您可以为所有反驳方法指定一个随机种子。

  • 多个错误修复和文档更新。

包括来自 @j-chou, @ktmud, @jrfiedler, @shounak112358, @Lnk2past 的贡献。感谢大家!

v0.1.1-alpha: 首次发布#

这是该库的第一个版本。