什么时候用
先判断任务是否合适
- 想估计处理对不同人群的差异化影响而不仅是平均效应
- 观察数据中存在大量控制变量需要非参数控制
- 希望得到个体化处理推荐(决策树/森林策略)
- 需要比较多个CATE模型的样本外表现并选择最佳模型
先准备什么
材料越清楚,结果越有用
- •准备结果变量Y、处理变量T、异质性特征X和控制变量W
- •如用工具变量方法需额外准备工具变量Z
- •根据T的连续/离散类型选择对应估计器族
- •选定用作干扰模型的sklearn估计器和最终阶段模型
它会怎样推进
从材料到可以检查的结果
- 01
选择估计器
根据处理类型和研究目标选DML/DR/元学习器/IV/因果森林
- 02
拟合CATE
用交叉拟合去除干扰参数偏差,在X上学习异质性处理效应
- 03
获取效应
调用effect和effect_interval获取逐样本的CATE点估计和置信区间
- 04
解释与策略
用SHAP解释异质性来源,用决策树输出个体化处理推荐
- 05
模型选择
在验证集上用RScorer比较候选CATE模型,选最优或加权集成
第一次这样开始
把仓库地址直接交给 AI
先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。
第一次直接复制
帮我安装这个库:https://github.com/py-why/EconML 安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。
结果出来后
先看这些检查点
- 干扰模型(model_y/model_t)是否在交叉验证中有足够的拟合度
- 置信区间的宽度是否合理,bootstrap重采样次数是否足够
- 离散处理的baseline类别选择是否与实际问题一致
- 工具变量估计的有效性是否基于合理的外生性判断
常见误区
这些判断仍由你负责
- 在离散处理场景忘记设置discrete_treatment=True
- 用元学习器时未把混淆变量W拼入特征矩阵X
- 把SHAP值解释为因果归因而非对CATE预测的贡献度量
- 在无有效工具变量的场景强行使用IV估计器
技术依据
查看能力拆解、验证范围与来源
技术依据
查看能力拆解、验证范围与来源
- 01
DML族CATE估计
用 Double Machine Learning(DML / R-Learner)框架,把任意 sklearn 模型同时用作 nuisance(E[Y|X,W]、E[T|X,W])和 final stage(τ(X)),估计连续或离散处理下的异质性效应,并按 final-stage 类型(线性/debiased lasso/kernel/非参数/因果森林)给出对应置信区间。
- 02
元学习器CATE估计
用元学习器(S-Learner / T-Learner / X-Learner / Domain Adaptation Learner)把任意现成监督模型(如 GradientBoostingRegressor/Classifier)组合成离散处理的 CATE 估计器,无需显式 nuisance 残差化,适合低维处理、强基线模型或对正交学习框架不依赖的场景。
- 03
双重稳健CATE估计
在离散处理(多处理臂 vs baseline)下,用双重稳健(Doubly Robust)校正处理选择偏差:第一阶段交叉拟合倾向性 pt(X,W)=Pr[T=t|X,W] 和回归 h(X,W,T)=E[Y|X,W,T],构造 pseudo-outcome Y^DRt;第二阶段在 X 上拟合 final 模型得到 τt(X)。只要倾向性或回归 nuisance 之一正确指定,CATE 估计即一致。
- 04
工具变量CATE估计
当存在未观测混淆、但存在有效工具变量 Z(影响 T、不直接影响 Y)时,用 IV 正交学习(OrthoIV / DMLIV / DRIV / IntentToTreat / SieveTSLS)估计连续或离散处理下的 CATE,通过交叉拟合 E[Y|X,W]、E[T|X,W]、E[Z|X,W](和 IV-DR 的额外 nuisance)去除混淆和弱工具偏差,并给出置信区间。
| 能力 | 主要输入 | 主要输出 | 人工检查 |
|---|---|---|---|
DML族CATE估计源码已核对 |
|
|
|
元学习器CATE估计源码已核对 |
|
|
|
双重稳健CATE估计源码已核对 |
|
|
|
工具变量CATE估计源码已核对 |
|
|
|
正交机器学习CATE估计源码已核对 |
|
|
|
策略学习与CATE解释源码已核对 |
|
|
|
处理机制
- 01
核心处理链
异质性处理效应估计库,用正交机器学习估计个体化因果效应
已核对范围
- 静态读取 dml/dml.py DML/LinearDML/SparseLinearDML/KernelDML/NonParamDML/BaseDML 类继承与 fit 构造
- 静态读取 dml/rlearner.py RLearner/ModelNuisance/ModelFinal 机制
- 静态读取 dml/causalforest.py CausalForestDML 继承与 BLB inference
- 静态读取 metalearners/metalearners.py SLearner/TLearner/XLearner/DomainAdaptationLearner 全部类
- 静态读取各类的 model 构造、fit、effect 与 bootstrap inference
- 静态读取 dr/drlearner.py DRLearner 及 ModelNuisance/ModelFinal/BaseDR
- 静态读取 DRLearner estimating equations(propensity + regression nuisance)
- 静态读取 LinearDRLearner/SparseLinearDRLearner/ForestDRLearner 的 final-stage mixin
仍待核对
- 未运行任一 DML 估计器,未验证 CATE、CI、coef 实际数值
- 未验证 final-stage 选择对推断的影响
- 未运行任一元学习器,未验证 CATE、bootstrap CI 实际数值
- 未验证 DomainAdaptationLearner 的倾向性加权 final 行为
- 未运行任一 DR 估计器,未验证 CATE、CI、coef 实际数值
- 未验证多处理臂(非 baseline)的 final multi-task 行为
- 未运行任一 IV 估计器,未验证 CATE、CI 实际数值
- 未验证 IntentToTreat(二元 Z、二元 T)的特殊 final 路径
读取版本
e546416862280c90f9b21e95c298d00d599c75c8许可
MIT
最近核对
内容 2026-07-10
Stars 2026-07-11
相关文章
具备相关能力的其他库
相关课程
把单项工具放进完整研究设计流程
课程一从研究问题、文献判断、理论假设和方法骨架继续推进,帮助你建立可以复用的研究设计档案。