微软EconML简介:基于机器学习的Heterogeneous Treatment Effects估计
EconML简介
EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation
EconML是一个通过机器学习方法从观察数据中估计heterogeneous treatment effects的Python包。该软件包是 微软研究院ALICE项目 的一部分,目的是将最新的机器学习方法与计量经济学结合,从而实现复杂因果推断问题的自动化。EconML希望做到以下几点:
- 实现同时涉及计量经济学和机器学习的最新方法
- 保持对effect heterogeneity建模的灵活性(通过随机森林、boosting、lasso和神经网络等技术),同时保留所学模型的因果解释,并同时提供有效的置信区间
- 使用统一的API
- 构建标准的Python包以用于机器学习和数据分析
机器学习最大的promise之一是在许多领域实现决策的自动化。许多数据驱动的决策场景的核心问题是对heterogeneous treatment effects的估计,也即:对于具有特定特征集的样本,干预对输出结果的causal effect是什么?简言之,这个Python工具包旨在测量某些干预变量T对结果变量Y的causal effect,控制一组特征X和W,来衡量causal effect如何随X的变化而变化。这个包里实现的方法适用于观察的数据集(非实验或历史)。为了使估计结果具有因果解释,一些算法假设数据中没有未观察到的混杂因子(即同时对T和Y产生影响的因子均被包含在X,W中),而其他一些算法则假设可以使用工具变量Z(即观测变量Z对干预T有影响,但对结果变量Y没有直接影响)。并且包中的大多数算法都可以提供置信区间和推断结果。
EconML包的详细文档见: Welcome to econml’s documentation 。
causal inference和heterogeneous treatment effects的使用背景和具体的case见 文档 。具体的例子有: ABtest的例子 , 客户细分 , 软件公司的多元投资归因
EconML的使用例子
Estimation Methods(Causal Forests)
from econml.dml import CausalForestDML
from sklearn.linear_model import LassoCV
# Use defaults
est = CausalForestDML()
# Or specify hyperparameters
est = CausalForestDML(criterion='het', n_estimators=500,
min_samples_leaf=10,
max_depth=10, max_samples=0.5,
discrete_treatment=False,
model_t=LassoCV(), model_y=LassoCV())
est.fit(Y, T, X=X, W=W)
treatment_effects = est.effect(X_test)
# Confidence intervals via Bootstrap-of-Little-Bags for forests
lb, ub = est.effect_interval(X_test, alpha=0.05)
Interpretability
from econml.cate_interpreter import SingleTreePolicyInterpreter
# We find a tree-based treatment policy based on the CATE model