StatsPAI
首个 Agent 原生的因果推断 Python 库,一行 import 实现 DID/IV/RDD/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个 Agent 原生的因果推断 Python 库,一行 import 实现 DID/IV/RDD/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

作者: Biaoyue (Bryce) Wang — Stanford REAP / CoPaper.AI
Star: 279 ⭐ | Fork: 56 | License: MIT | 语言: Python
想象你是一位经济学期刊的审稿人,一篇论文声称「每天喝咖啡的人平均寿命更长」,作者信心满满地展示了 p < 0.05 的显著性结果。但你只需要问一个问题就能让整篇论文摇摇欲坠:这是相关性还是因果性?
因果推断(causal inference)正是回答这类问题的学科。经济学家 Guido Imbens、Joshua Angrist 因为在因果推断方法论上的贡献获得了诺贝尔奖;医学领域无数 RCT(随机对照实验)靠的就是因果推断的逻辑。但长期以来,因果推断的工具被锁在 Stata 和 R 的世界里——Python 生态虽然有 scikit-learn,却没有一款能够真正替代 Stata 完成「双重差分法(DID)」、「工具变量法(IV)」、「断点回归(RDD)」等高级计量的工具。
StatsPAI 正是来解决这个问题的。它由 Stanford 研究者 Biaoyue Wang 开发,是全球首个真正意义上的 Agent 原生因果推断 Python 库——不仅人类能用,大语言模型(LLM)和 AI Agent 也能调用,而且数值结果与 Stata、R 已有的参考实现进行了对齐验证。

大语言模型(LLM)虽然能生成流畅的文本、编写代码、回答问题,但在逻辑推理上有一个根本性缺陷:它们擅长发现相关性(A 和 B 经常一起出现),但很难推理因果性(A 导致 B,而不是反过来)。
举个例子:训练数据里「公鸡打鸣」和「太阳升起」高度相关,GPT-4 能否推断出「公鸡打鸣导致太阳升起」这个荒谬的因果结论?当前的 Transformer 架构天然倾向于相关性思维,这被称为「因果推理的诅咒」。
StatsPAI 的出现正是为了给 AI Agent 装备因果思维。2025-2026 年,随着 Agentic AI(大模型智能体)成为 AI 领域最热门的方向,如何让 AI Agent 在真实决策场景中做出可靠的判断,成了一个核心挑战——因果推断正是解决这一挑战的钥匙。无论是政策评估(新政策是否真的有效?)、医疗研究(药物是否真的治愈了疾病?)、金融风控(风控策略是否真正降低了违约率?),都需要因果推断的思维方式。
StatsPAI 的设计哲学是极简入口、无限深度。用户只需要一行代码:
import statspai as sp
这一行 import 背后,是跨越 80+ 子模块的 1000+ 注册函数,覆盖了现代计量经济学和因果推断的主要方法:
| 方法类别 | 代表方法 | 应用场景 |
|---|---|---|
| 双重差分 (DiD) | 标准 DiD、事件研究、交错 DiD | 政策效果评估(改革开放前后 GDP 变化) |
| 工具变量法 (IV) | 2SLS、弱工具变量检验 | 无法随机分组的因果研究(教育年限→工资) |
| 断点回归 (RDD) | 清晰 RDD、模糊 RDD | 入学分数线附近的学生成绩差异 |
| 合成控制法 | SCM、主观加权合成控制 | 禁酒令对各州死亡率的影响 |
| 双重机器学习 (DML) | R-learner、因果森林 | 高维协变量下的因果效应估计 |
| 因果发现 | PC 算法、FCI、LLM-DAG | 从观测数据中自动发现因果图结构 |
| 元学习器 | T-learner、S-learner、X-learner | 异质性处理效应的个性化估计 |
| 面板数据 | 固定效应、双重差分面板、合成控制 | 企业/国家层面的纵向政策评估 |
StatsPAI 最有特色的设计在于它从一开始就是为 AI Agent 设计的。它的每一个函数都返回结构化结果对象,附带机器可读的 schema,AI Agent 可以直接解析和使用这些结果,而不需要像传统 Python 库那样靠正则表达式从打印输出里提取数据。
关键 Agent 原生接口包括:
sp.causal_question:自然语言因果问题 DSL,输入「教育年限对工资的因果效应是多少」,系统自动转化为合适的 estimand(因果估计量)并调用对应算法。sp.llm_dag_propose / validate / constrained:用 LLM 自动提出和验证因果 DAG(有向无环图),构建因果推断的假设体系。sp.paper():从数据分析到结构化论文的自动生成,支持 Markdown/LaTeX 导出。sp.causal_text:文本因果分析,从海量文本中提取因果信号。StatsPAI 专门维护了一个 _parity_index.json 对齐索引,每个方法在发布前都经过与 Stata 的参考实现对比测试。只有通过数值对齐验证的方法才标记为 validation_status: validated,其余为 beta 或 experimental。这种严谨的态度让它在学术场景中更有说服力。
StatsPAI 采用标准的 Python 包结构,主代码位于 src/statspai/,包含 87 个子目录,对应不同的方法模块:
src/statspai/
├── core/ # 核心抽象基类和注册机制
├── causal/ # 通用因果推断框架
├── did/ # 双重差分族
├── iv/ # 工具变量法
├── rd/ # 断点回归
├── dml/ # 双重机器学习
├── synth/ # 合成控制
├── matching/ # 倾向得分匹配
├── causal_discovery/ # 因果发现
├── causal_llm/ # LLM 驱动的因果分析
├── metalearners/ # 元学习器族
├── bartik/ # Bartik 工具变量
├── bayes/ # 贝叶斯因果推断
├── conformal_causal/ # 共形因果推断
├── agent/ # Agent 交互层
├── schemas/ # 结构化结果 schema 定义
└── workflow/ # 端到端研究工作流
核心技术依赖:
StatsPAI 是纯 Python 库,无 Docker 支持,无 Web UI,直接通过 pip 安装即可运行:
pip install statspai
最低环境要求:Python 3.9~3.13,RAM 2GB,磁盘 500MB,不需要 GPU。安装后直接 import statspai as sp 即可使用全部 1000+ 函数。官方提供了大量示例脚本(examples/ 目录),涵盖:
did_mpdta.py:双重差分实战(麦当劳工资数据)rd_lee.py:断点回归(Lee 2008 选举数据)dml_card.py:双重机器学习(Card 数据集)synth_prop99.py:合成控制法(加州禁烟令)README_CN.md 提供了完整的中文入门指南,中文社区友好。
StatsPAI 的愿景很大,但也面临真实的挑战:
Stata/R 的护城河很深:Stata 在学术界有几十年的积累,大量已发表的论文用的是 Stata 代码,迁移成本不容忽视。StatsPAI 提供了 parity 验证来降低这个门槛,但完全替代还需要时间。
Agent 原生是亮点还是噱头:让 LLM 调用因果推断函数确实有意义,但当前的 sp.causal_question DSL 对自然语言的理解能力取决于底层 LLM 的能力,不同模型效果差异明显。
数值对齐的覆盖范围:官方声称已验证的方法是否真的覆盖了用户最常用的那些?目前 _parity_index.json 公开可查,但具体每个方法的验证详情还需要深入阅读源码。
StatsPAI 的出现代表了 AI 研究的一个新兴方向:将计量经济学/统计学中的因果推断方法论与 AI Agent 工作流深度融合。它的增长曲线值得关注:v1.0 发布时 836 个函数、2834 个测试用例;到 v1.20 已扩展到 1000+ 函数,覆盖面持续扩大。
从更大的视角看,随着 AI Agent 在金融、医疗、法律、政策等高风险决策领域的应用扩展,因果推断能力将成为 AI Agent 的核心竞争力——统计相关性可以在海量数据中发现规律,但只有因果推断才能告诉 AI「如果我做 X,会发生什么」的反事实问题。StatsPAI 正是这个方向的先行者。
数据来源:GitHub 仓库 (brycewang-stanford/StatsPAI)、PyPI 官方页面、作者主页 statspai.com,图片均来自项目官方仓库并经验证可访问。