brycewang-stanford/StatsPAI
StatsPAI is the first Agent-native Python library for causal inference and applied econometrics — unified API, broad cross-method coverage, structured result objects, machine-readable schemas, Skills, an MCP server, and R/Stata parity validation.
StatsPAI – 实证研究中 Stata 和 R 的 Python 原生替代方案
功能简介 – StatsPAI 整合了传统上位于 Stata 或 R 中的大量计量经济学和因果推断工具(例如 regress、ivregress、reghdfe、csdid、rdrobust、synth、psmatch2、esttab)。它通过简洁、Python 原生的 API 重新呈现这些命令,同时保留熟悉的语法和选项(稳健/聚类标准误、vce= 处理、test、lincom、margins 等估计后命令)。该软件包还附带约 1,600 个函数的注册表、内置数据集,以及将表格导出到 Excel、Word、LaTeX 或直接导出到 LLM 智能体的实用工具。
适用人群 – 目前在 Stata、R 和 Python 之间切换使用的实证经济学家、社会科学家或政策分析师。如果您经常编写回归、DiD、RD、合成控制或匹配代码,并且希望在不丢失“Stata 风格”工作流程的情况下留在 Python 生态中,那么这个库就是为您准备的。
主要功能
- Stata 风格 API – 诸如
sp.regress、sp.ivreg、sp.feols、sp.rdrobust、sp.synth、sp.psmatch2等函数。选项遵循 Stata 约定(vce="robust"、vce="cluster firm")。 - R 风格等价功能 – 许多函数与 R 包(
lm、fixest、did、DoubleML)一一对应。相同的调用适用于两个世界。 - 智能体就绪元数据 – 每个公共函数都注册一个机器可读的模式(
sp.describe_function、sp.function_schema)。捆绑的statspai‑mcp服务可以将估计器暴露给 Claude Code、Cursor 等。 - 跨语言桥梁 –
sp.stata("…", data=df)运行原始 Stata 代码;sp.from_stata/sp.from_r将命令转换为 Python API。 - 可扩展附加功能 – 可选依赖项可添加绘图(
statspai[plotting])、高维固定效应(statspai[fixest])、贝叶斯模型(statspai[bayes])、神经网络因果模型(statspai[neural])、JAX 加速(statspai[performance])和空间分析(statspai[spatial])。 - 内置数据集 – 14 个离线数据集(Card 1995、LaLonde/NSW、RD 参议院数据等)用于快速演示和验证。
- 结果导出 –
sp.regtable构建一个单一的表格对象,可以打印或保存为.xlsx、.docx、LaTeX、Markdown 或 HTML。 - 交互式图形编辑器 –
sp.interactive(fig)在 Jupyter 笔记本中提供类似 Stata 的 GUI,用于微调 Matplotlib/Seaborn/Plotly 图形。
工作原理 – 核心库(约 634,000 行)实现了统计估计器、注册表系统以及现有 Python 包(例如 pyfixest、linearmodels、DoubleML、EconML)的轻量封装。验证状态(certified、validated、api_stable)附加到每个函数上,以便用户了解数值输出是否已与 Stata/R 交叉验证。
典型工作流程
import statspai as sp
# 加载内置数据集
card = sp.datasets.card_1995()
# 使用 Stata 风格稳健标准误进行普通最小二乘回归
ols = sp.regress("lwage ~ educ + exper + expersq + black + south + smsa",
data=card, robust="hc1")
print(ols.summary())
# 估计后检验和边际效应
print(ols.test("educ = 0"))
print(sp.margins(ols, variables=["educ"]))
# 导出包含多个规格的回归表
tbl = sp.regtable(ols, sp.ivreg(...), model_labels=["OLS", "2SLS"])
tbl.to_excel("table1.xlsx")
相同的代码可以从 LLM 智能体调用,智能体可以查询函数模式以发现可用参数。
重要性 – 它降低了将实证工作流程迁移到 Python 的摩擦,保留了研究人员信任的统计惯例(Stata 风格的小样本校正、聚类、估计后命令),并让 AI 助手能够发现这些工作流程。该项目是开源的,经过同行评审(JOSS 2026),由斯坦福 REAP 团队维护。
以上所有细节均直接取自存储库的 README;没有推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目