因果推断的software汇总

因果推断的software汇总

  • methods and tools for causal discovery and causal inference 中提到的可用于推断时间序列中因果发现的R包:

  • NlinTS:时间序列中的非线性因果关系检测模型。非线性时间序列分析和因果关系检测模型。

具体使用教程:https://cran.r-project.org/web/packages/NlinTS/NlinTS.pdf

已有用例:GitHub - cran/NlinTS: :exclamation: This is a read-only mirror of the CRAN R package repository. NlinTS — Models for Non Linear Causality Detection in Time Series

  • Tigramite(Runge,2004–2021)是一个Python框架,用于时间序列数据中的因果发现。该工具实现了三种不同的因果发现方法(PCMCI、PCMCI+和LPCMCI)和以下条件独立性测试:

GitHub - jakobrunge/tigramite: Tigramite is a python package for causal inference with a focus on time series data. The Tigramite documentation is at

  • 使用混合DAG从纵向数据中改进因果关系发现:

http://proceedings.mlr.press/v104/strobl19a/strobl19a.pdf

GitHub - ericstrobl/CIM: Causal Inference over Mixtures

  • DoWhy(Sharma等人,2019)是最完整的工具之一。它用Python编写,为几种方法提供了统一的框架,几乎涵盖了因果推理的整个过程。DoWhy包括四项任务:通过因果图对因果问题进行建模,确定感兴趣的因果估计,估计因果效应并验证所获得的结果。目前实施了以下识别策略:后门标准、前门标准、工具变量和中介分析。对于其中的每一种,都提供了一些估计因果影响的方法。此外,DoWhy与EconML的各种基于机器学习的估计器紧密相连(Microsoft Research,2019):

https://github.com/py-why/dowhy/blob/main/README.rst

  • 倾向性得分匹配在以下三种工具中实现。

流行的R包Matching(Sekhon,2011)提供三个主要功能:

Match(执行正确的分数匹配)、MatchBalance(检查匹配方法是否平衡数据)和GenMatch(通过遗传搜索算法为每个协变量生成最优权重,以自动平衡数据)。

GitHub - JasjeetSekhon/Matching

  • MatchIt(Ho等人,2011)是另一种流行的选择。该包提供了matchit函数,它通过不同的方法生成匹配的数据。在执行匹配之后,可以将标准回归技术应用于所获得的数据以检索感兴趣的因果效应。

r包教程:MatchIt: Getting Started

离散协变量的大型数据集:

R包R-FLAME(Orlandi等人,2020):

https://cran.r-project.org/web/packages/FLAME/FLAME.pdf

Python版本dame FLAME:(用于对包含离散协变量的数据集执行观察因果推理匹配)
GitHub - almost-matching-exactly/DAME-FLAME-Python-Package: A Python Package providing two algorithms, DAME and FLAME, for fast and interpretable treatment-control matches of categorical data

优点:

用于实现快速、大范围几乎完全匹配(FLAME;Wang等人,2021)

动态几乎完全匹配方法(DAME;Dieng等人,2019)。

倾向性得分加权在以下四个工具中实现。

  • PSW通过函数PSW提供了几种基于倾向评分的技术。该软件包允许目视检查两个治疗组的倾向评分分布,评估协变量平衡,并测试倾向评分模型的规范。

倾向得分加权匹配分析方法:

倾向得分加权匹配分析方法的R实现_Sim1480的博客-CSDN博客

包的应用事例:

https://github.com/cran/PSW/blob/master/R/psw_balance.R

  • CBPS(Fong等人,2021)(covariate balancing propensity score)

作用:IPW方法的倾向得分其实是策略的倾向选择概率,但是选择性偏差带来的是样本之间其他相关变量分布的不平衡。所以使用逆倾向得分属于只考虑了策略的倾向选择概率,却用来平衡样本之间其他相关变量的分布。Covariate balancing propensity score (CBPS),协变量平衡倾向得分方法被设计出来来同时衡量这两方面,来使倾向得分更准确。

GitHub - kosukeimai/CBPS: R package: CBPS

可实现方法:CBPS 利用倾向得分的双重特征作为协变量平衡得分和治疗分配的条件概率,基于估计倾向得分的匹配、加权和双重鲁棒方法。

适用数据:横截面数据和纵向数据
优点:同时最大化了协变量平衡和治疗分配预测,而通常倾向评分算法预测治疗分配,然后检查协变量,以查看它们在不同治疗组之间是否平衡。这使得该方法对错误规范更加鲁棒。
Issues · ngreifer/WeightIt · GitHub

CBPS包括基于估计倾向得分的匹配、加权和双重鲁棒方法。

  • 包ipw(van der Wal&Geskus,2011)实现了时间固定和时变框架的处理加权的逆概率。

ipwpoint: Estimate Inverse Probability Weights (Point Treatment) in ipw: Estimate Inverse Probability Weights

  • PSweight(Zhou等人,2021)通过倾向得分权重、精确匹配权重、熵权重、ATT权重和重叠权重涵盖了基于倾向核的估计量:(当前版本PSweightpackage包括以下类型的权重:重叠权重(ATO)、处理权重的逆概率(ATE)、处理权重(ATT)之间的平均处理效果、匹配权重(ATM)和熵权重(ATEN) ,并允许二元和多重(分类)处理。除了简单的加权估计器外,该软件包还实现了结合加权和结果回归的增强加权估计器。对于二元结果,加性估计值和比值估计值(因果相对风险和比值比)都被考虑在内,方差通过三明治法或非参数自举估计。为了在指定倾向得分和结果模型时提供额外的灵活性,该包还可以通过以下方式与用户提供的倾向得分估计和结果预测一起使用ps.estimate和 out.estimate,并提供一个三明治标准误差,它忽略了估计这些滋扰的可变性。)

GitHub - thuizhou/PSweight

  • RISCA(Foucher等人,2020)是对边缘结构模型感兴趣的用户的一个可行选择,因为它提供了G估计和逆概率加权的功能:

使用教程:https://cran.r-project.org/web/packages/RISCA/RISCA.pdf

使用事例及代码:GitHub - cran/RISCA: :exclamation: This is a read-only mirror of the CRAN R package repository. RISCA — Causal Inference and Prediction in Cohort-Based Analyses

  • CausalGAM(Glynn&Quinn,2017)也提供了双重稳健估计量,这是一个实现标准估计量和AIPW估计量的R库,或者tmle(Gruber&van der Laan,2012)包提供了目标最大似然估计量的一个R实现。

使用教程:https://cran.r-project.org/web/packages/AIPW/AIPW.pdf

使用事例及代码:GitHub - yqzhong7/AIPW: R Package: Augmented Inverse Probability Weighted (AIPW) Estimation for Average Causal Effect

一些工具依靠机器学习来估计因果效应。

  • BART(Sparapani等人,2021)为贝叶斯加性回归树的估计提供了一个包。

使用教程:https://cran.r-project.org/web/packages/BART/BART.pdf

作用:用于非参数机器学习和贝叶斯加性回归数的有效计算。

参考论文:Nonparametric Machine Learning and Efficient Computation with Bayesian Additive Regression Trees: The BART R Package| Journal of Statistical Software

  • grf(Tibshirani等人,2020)是一个R包,它实现了基于树的方法(Athey等人,2019)用于CATE估计。主要功能是因果森林,它训练因果森林以检索异质处理效果。(已用)

python包:

  • EconML:提供了几种用于检索异质因果效应的最先进方法的实现

双机器学习(Chernozhukov等人,2018):Double/debiased machine learning for treatment and structural parameters | The Econometrics Journal | Oxford Academic
因果树/森林(Athey&Imbens,2016;Wager&Athey,2018)

一个应用案例:https://arxiv.org/pdf/1902.07409.pdf

文章代码:https://github.com/grf-labs/grf/tree/master/experiments/acic18

双重鲁棒学习(Foster&Syrgkanis,2020):

Statistical Learning with a Nuisance Component (Extended Abstract) | IJCAI

元学习者(Künzel等人,2019):https://www.pnas.org/doi/10.1073/pnas.1804597116

该文将rf和bart作为基学习器,在此基础上比较了s-learner,t-learner and t-learner的作用,使用了树结构和可观测特征的叶预测值相独立的随机森林版本。(honest rf :hte包GitHub - soerenkuenzel/hte),这个随机森林包在有噪声环境下表现良好并且接近理论上的假设。对于bart方法,在基学习器上使用了dbarts包。(GitHub - vdorie/dbarts: Discrete Bayesian Additive Regression Trees Sampler

  • 处理步骤:

t-learner:

  1. 分别用两个不同的基学习器处理treat组和base组的期望outcome。

  2. 两组的average outcome 相减得到t-learner。

s-learner:

将待处理指标视作和其他指标做相同处理,并估计下式:

𝜇(𝑥,𝑤)≔𝔼[𝑌𝑜𝑏𝑠∣∣𝑋=𝑥,𝑊=𝑤]

使用base-learner处理整个数据集并用下式计算CATE:

𝜏̂ 𝑆(𝑥)=𝜇̂ (𝑥,1)−𝜇̂ (𝑥,0)

x-learner:

  1. 使用监督学习或者线性回归算法作为基学习器估计处理组和控制组的平均outcome,表示如下:

𝜇0(𝑥)=𝔼[𝑌(0)|𝑋=𝑥]

𝜇1(𝑥)=𝔼[𝑌(1)|𝑋=𝑥],

  1. 基于控制组结果估计处理组的处理效应,反向操作估计另一方向的处理效应,表示如下:

𝐷˜1𝑖≔𝑌1𝑖−𝜇̂ 0(𝑋1𝑖)

𝐷˜0𝑖≔𝜇̂ 1(𝑋0𝑖)−𝑌0𝑖

𝜏(𝑥)=𝔼[𝐷˜1∣∣𝑋=𝑥]=𝔼[𝐷˜0∣∣𝑋=𝑥]τ(x)=E[D̃1|X=x]=E[D̃0|X=x].:

使用任何监督学习或回归方法进行评估𝜏(𝑥) 以两种方式:将估算的治疗效果作为治疗组的反应变量𝜏̂ 1(𝑥) 同样在对照组中获得𝜏̂ 0(𝑥). 将监督学习或回归算法称为第二阶段的基础学习者。

  1. 通过第2阶段中两个估计值的加权平均值定义CATE估计值:

𝜏̂ (𝑥)=𝑔(𝑥)𝜏̂ 0(𝑥)+(1−𝑔(𝑥))𝜏̂ 1(𝑥)

Causal ML包(Chen et al.,2020)涵盖了类似的方法,但不太广泛。

  • 估计ITE的python包:

CEVAE(Shalit等人,2017):GitHub - clinicalml/cfrnet: Counterfactual Regression

原文:http://proceedings.mlr.press/v70/shalit17a.html

使用新的误差边界对个体平均效应进行估计。

原文:https://hal-lirmm.ccsd.cnrs.fr/lirmm-01886794/document

  • 工具变量估计由R包ivreg提供(Fox等人,2021)函数ivreg适合不同的估计,包括两阶段最小二乘法(2SLS)和矩量法(MM)。

使用教程:
ivreg: Two-Stage Least-Squares Regression with Diagnostics

ivreg function - RDocumentation

事例:

GitHub - kolesarm/ivreg: Instrumental variables regression in matlab

分割线


 

https://github.com/sweichwald/tidybench/blob/master/README.md

https://arxiv.org/pdf/2207.05584v1.pdf

主流因果推断方法:

  1. 使用蒙特拉罗方法提出MDL方法用于发现因果关系:

Causal Discovery in Hawkes Processes by Minimum Description Length

文中给出了详细的1. 确定了目标函数。2.估计目标函数的方法。3. 计算拟合优度的方法。3. 估计模型复杂度的方法。4. 因果推断算法过程。

2.应用上述方法的相关文章:(创新点:从二进制数据推断因果发现,直接处理数据,不需要对因果关系和形式进行任何假设)

https://eda.rg.cispa.io/pubs/2016/origo-budhathoki,vreeken.pdf

3.Causation, Prediction, and Search

https://www.ics.uci.edu/~dechter/courses/ics-295cr/spring-2021/reading/Causation_Prediction_and_Search.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值