pymc-labs/CausalPy
A Python package for causal inference in quasi-experimental settings
CausalPy – 准实验设计的贝叶斯优先因果推断
功能概述 – CausalPy 是一个 Python 库,让分析师在无法进行真实随机实验时,能够估计因果效应。它实现了一系列经典的准实验方法(双重差分、合成控制、回归断点分析等),并以 基于 PyMC 的贝叶斯模型 运行(可选 OLS 回退)。输出包含完整的后验摘要、可信区间、基于 ROPE 的实务显著性检验以及可直接发表的图表。
为何选择它
- 具备不确定性感知:不仅提供单点估计,还能获得分布、HDI、尾部概率和 ROPE 分析。
- 可重现的工作流程:数据加载、模型设定、拟合与可视化皆封装在高阶类(
RegressionDiscontinuity,SyntheticControl等)中,产生单一result对象,并具备plot()和summary()方法。 - 基于 PyMC:利用现代概率编程(PyMC 6, PyTensor 3, ArviZ),同时支持通过 scikit‑learn 进行经典 OLS 以供快速检查。
- 顾问级支持:团队为高风险的提升测试或政策影响评估提供付费咨询服务。
核心功能(摘自 README)
| 功能 | 详细信息 |
|---|---|
| 方法 | 合成控制、地理提升、ANCOVA、双重差分 (Diff‑in‑Diff)、交错式双重差分、回归断点/转折分析、中断时间序列、工具变量、反倾向分数加权 |
| 贝叶斯优先 | 模型以 PyMC 编写;提供后验 HDI、尾部概率、ROPE。通过 scikit‑learn 提供 OLS 回退。 |
| 决策级输出 | effect_summary() 返回表格与文字说明;plot() 提供出版级质量的图形。 |
| 安装 | pip install CausalPy 或 conda install -c conda‑forge causalpy。支持 Python 3.12+。 |
| 执行注意事项 | 使用 numba (通过 PyTensor) – 首次采样会产生编译成本;可能发生原生崩溃;nutpie 可能会静默更改 NUTS 默认值。 |
| AI 代理技能 | 用于 AI 编程助手的微型“技能”位于 causalpy/skills/ 并发布至 Decision AI Hub。 |
| 文档与支持 | Read‑the‑Docs 网站、GitHub Discussions 用于问答、Issues 用于报告错误,以及咨询用的 Calendly 链接。 |
| 授权 | Apache 2.0。 |
典型用法(快速入门示例)
import causalpy as cp
import matplotlib.pyplot as plt
# 加载包内自带的示例数据集
df = (
cp.load_data("drinking")
.rename(columns={"agecell": "age"})
.assign(treated=lambda d: d.age > 21)
)
# 使用贝叶斯线性回归拟合回归断点模型
result = cp.RegressionDiscontinuity(
df,
formula="all ~ 1 + age + treated",
running_variable_name="age",
model=cp.pymc_models.LinearRegression(),
treatment_threshold=21,
)
# 可视化断点处的跳跃
fig, ax = result.plot()
# 打印包含后验区间的摘要
result.summary()
result 对象封装了拟合模型、诊断信息以及用于报告的辅助方法。
适用对象
- 产品/营销分析师:评估地理提升、政策变更或交错式推广效果。
- 社会科学家:需要严谨的双重差分或回归断点分析,并进行不确定性量化。
- 数据科学家:偏好贝叶斯方法,但仍希望保留快速 OLS 选项。
它 不 适用于:
- 从观测数据中进行纯粹的因果发现。
- 全自动化的“黑箱”因果答案。
- 大规模生产管线(无内置编排功能)。
入门与资源
- 安装:
pip install CausalPy(或 conda)。需要 Python 3.12+, PyMC 6。 - 文档:https://causalpy.readthedocs.io – 包含每种方法的教学。
- 社区:GitHub Discussions 用于使用问题;Issues 用于错误报告。
- 视频演示:README 中的 YouTube 链接。
总结
CausalPy 是一个研究级、贝叶斯优先的 Python 工具箱,用于准实验因果推断。它将经典设计封装在 PyMC 驱动的工作流程中,提供具备不确定性感知的估计、诊断和易于分享的视觉化结果,同时对于熟悉 Python 数据科学堆栈的分析师来说,安装与使用都非常简单。
相关
- 项目
- 项目
- 项目
- 项目
- 项目