| 第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]'' | |
| − | | |
| − | 参考文献格式!!!!!!
| |
| | | | |
| | ==编者推荐== | | ==编者推荐== |