更改

跳到导航 跳到搜索
添加938字节 、 2025年6月12日 (四) 19:40
第4行: 第4行:     
'''因果森林'''(''Causal Forest'')是一种用于估计异质性处理效应(''Heterogeneous Treatment Effects'', HTE)的非参数机器学习方法。它基于随机森林(''Random Forest'')算法的扩展形式,由苏珊·艾西(Susan Athey)等人提出,用于在高维数据中识别个体或群体层面的因果效应差异,属于因果推断(''Causal Inference'')领域的一类重要方法。
 
'''因果森林'''(''Causal Forest'')是一种用于估计异质性处理效应(''Heterogeneous Treatment Effects'', HTE)的非参数机器学习方法。它基于随机森林(''Random Forest'')算法的扩展形式,由苏珊·艾西(Susan Athey)等人提出,用于在高维数据中识别个体或群体层面的因果效应差异,属于因果推断(''Causal Inference'')领域的一类重要方法。
−
==背景与发展==
+
 
 +
==背景与发展 ==
 
传统的因果推断方法,如倾向得分匹配(''Propensity Score Matching'')或工具变量法(''Instrumental Variables''),主要关注平均处理效应(''Average Treatment Effect'', ATE)。然而在实际应用中,不同个体对于同一处理可能反应不同,因此估计个体层面的处理效应,即条件平均处理效应(''Conditional Average Treatment Effect'', CATE)成为重要研究方向。
 
传统的因果推断方法,如倾向得分匹配(''Propensity Score Matching'')或工具变量法(''Instrumental Variables''),主要关注平均处理效应(''Average Treatment Effect'', ATE)。然而在实际应用中,不同个体对于同一处理可能反应不同,因此估计个体层面的处理效应,即条件平均处理效应(''Conditional Average Treatment Effect'', CATE)成为重要研究方向。
   第20行: 第21行:     
*'''医疗''':评估新药在不同患者群体中的效果;
 
*'''医疗''':评估新药在不同患者群体中的效果;
−
* '''公共政策''':识别社会项目在不同地区或人群中的效应差异;
+
*'''公共政策''':识别社会项目在不同地区或人群中的效应差异;
 
*'''教育''':分析干预措施对不同学生群体的影响;
 
*'''教育''':分析干预措施对不同学生群体的影响;
 
*'''市场营销''':发现不同客户对促销手段的反应差异。
 
*'''市场营销''':发现不同客户对促销手段的反应差异。
   −
==算法 ==
+
==算法==
    
[[文件:广义随机森林.png|缩略图]]
 
[[文件:广义随机森林.png|缩略图]]
第36行: 第37行:  
##构树集(用于构建树的结构)
 
##构树集(用于构建树的结构)
 
##估计集(用于估计每个叶子节点中的处理效应) 这种拆分方式称为“诚实性”(honesty),可避免过拟合,并保证渐近一致性。
 
##估计集(用于估计每个叶子节点中的处理效应) 这种拆分方式称为“诚实性”(honesty),可避免过拟合,并保证渐近一致性。
−
#'''分裂标准(Splitting Criterion)''' 与传统随机森林最小化均方误差(MSE)不同,因果森林的分裂准则最大化处理效应的异质性,通常使用以下目标函数:△= Var[f(X)]
+
#'''分裂标准(Splitting Criterion)''' 与传统随机森林最小化均方误差(MSE)不同,因果森林的分裂准则最大化处理效应的异质性,通常使用以下目标函数:<syntaxhighlight lang="python">
−
 
+
\Delta = \text{Var}[\hat{\tau}(X)]
−
即寻找能最有效区分处理效应差异的协变量。
+
</syntaxhighlight>即寻找能最有效区分处理效应差异的协变量。
−
 
+
#'''叶节点处理效应估计''' 在每个叶节点中,使用估计集中的样本计算处理组与对照组的均值差异来估计 CATE:<syntaxhighlight lang="python">
−
#'''叶节点处理效应估计''' 在每个叶节点中,使用估计集中的样本计算处理组与对照组的均值差异来估计 CATE:公式1!!!!
+
\hat{\tau}(x) = \frac{1}{|S_1(x)|} \sum_{i \in S_1(x)} Y_i - \frac{1}{|S_0(x)|} \sum_{i \in S_0(x)} Y_i
−
 
+
</syntaxhighlight>
−
#'''森林聚合(Ensemble Aggregation)''' 最终的 CATE 估计为所有树对该样本估计的平均:公式1!!!!
+
#'''森林聚合(Ensemble Aggregation)''' 最终的 CATE 估计为所有树对该样本估计的平均:<syntaxhighlight lang="python">
−
 
+
\hat{\tau}_{\text{forest}}(x) = \frac{1}{B} \sum_{b=1}^B \hat{\tau}_b(x)
 +
</syntaxhighlight>
 
===理论性质===
 
===理论性质===
 
Wager 和 Athey(2018)证明,在一定正则条件下,因果森林具备以下渐近性质:
 
Wager 和 Athey(2018)证明,在一定正则条件下,因果森林具备以下渐近性质:
第59行: 第61行:     
==示例:==
 
==示例:==
−
<code>#-----------环境准备----------#
+
<syntaxhighlight lang="python" line="1">
−
import numpy as np
+
#-----------环境准备----------#
−
import pandas as pd
+
import numpy as np
−
from sklearn.ensemble import RandomForestRegressor
+
import pandas as pd
−
from causal_forest import CausalForest  # 假设已有一个名为causal_forest的库
+
from sklearn.ensemble import RandomForestRegressor
−
#----------数据准备----------#
+
from causal_forest import CausalForest  # 假设已有一个名为causal_forest的库
−
# 假设我们有一个名为data的DataFrame,包含预测变量X和目标变量y
+
#----------数据准备----------#
−
X = data.drop('y', axis=1)
+
# 假设我们有一个名为data的DataFrame,包含预测变量X和目标变量y
−
y = data['y']
+
X = data.drop('y', axis=1)
−
#---------模型训练-----------#
+
y = data['y']
−
cf = CausalForest(RandomForestRegressor())
+
#---------模型训练-----------#
−
cf.fit(X, y)
+
cf = CausalForest(RandomForestRegressor())
−
#--------因果效应估计-------#
+
cf.fit(X, y)
−
causal_effects = cf.estimate_causal_effects(X, y)
+
#--------因果效应估计-------#
−
#-------预测和解释----------#
+
causal_effects = cf.estimate_causal_effects(X, y)
−
predictions = cf.predict(X)
+
#-------预测和解释----------#
−
+
predictions = cf.predict(X)
−
# 输出因果效应
+
 
−
for feature, effect in causal_effects.items():
+
# 输出因果效应
−
    print(f"{feature}: {effect}")</code>
+
for feature, effect in causal_effects.items():
 +
    print(f"{feature}: {effect}")
 +
</syntaxhighlight>
    
==局限性==
 
==局限性==
第92行: 第96行:  
==参考文献==
 
==参考文献==
   −
 
+
#Athey, S. & Imbens, G. (2016). "Recursive Partitioning for Heterogeneous Causal Effects", ''Proceedings of the National Academy of Sciences'', 113(27), 7353–7360.
−
===Recursive Partitioning for Heterogeneous Causal Effects - arXiv===
+
#Wager, S. & Athey, S. (2018). "Estimation and Inference of Heterogeneous Treatment Effects using Random Forests", ''Journal of the American Statistical Association'', 113(523), 1228–1242.
−
''[Submitted on 5 Apr 2015 (v1), last revised 30 Dec 2015 (this version, v3)]''
+
#Athey, S., Tibshirani, J., & Wager, S. (2019). "Generalized Random Forests", ''Annals of Statistics'', 47(2), 1148–1178.
−
 
+
#grf: Generalized Random Forests R package. <nowiki>https://github.com/grf-labs/grf</nowiki>
−
===Estimation and Inference of Heterogeneous Treatment Effects ...===
+
# econml: Microsoft Research Causal ML Library. <nowiki>https://github.com/microsoft/EconML</nowiki>
−
''[Submitted on 14 Oct 2015 (v1), last revised 10 Jul 2017 (this version, v4)]''
+
#Recursive Partitioning for Heterogeneous Causal Effects - arXiv''[Submitted on 5 Apr 2015 (v1), last revised 30 Dec 2015 (this version, v3)]''
−
 
+
#Estimation and Inference of Heterogeneous Treatment Effects ''[Submitted on 14 Oct 2015 (v1), last revised 10 Jul 2017 (this version, v4)]''
−
===Generalized Random Forests - arXiv===
+
#Generalized Random Forests - arXiv''[Submitted on 5 Oct 2016 (v1), last revised 5 Apr 2018 (this version, v4)]''
−
''[Submitted on 5 Oct 2016 (v1), last revised 5 Apr 2018 (this version, v4)]''
+
#Machine Learning Methods Economists Should Know About''[Submitted on 24 Mar 2019]''
−
 
  −
===Machine Learning Methods Economists Should Know About===
  −
''[Submitted on 24 Mar 2019]''
  −
 
  −
参考文献格式!!!!!!
      
==编者推荐==
 
==编者推荐==
281

个编辑

导航菜单