因果森林理论和实战

理论介绍

广义的随机森林(Causal Tree):广义随机森林算法随机森林是一种通过集成学习思想将多棵树集成在一起的算法,其基本单元是决策树。随机森林是广义的随机森林的特例(经典的随机森林只能去估计label Y,不能用于估计复杂的目标)。

ATE(Average Treatment Effect)指标是一种用于衡量处理效应大小的统计指标

因果关系讲解(基础掌握)

参考因果发现和因果推断,比较基础,这里不做更多解释。

置信区间

置信区间‌是指在统计学中,由样本统计量构造的总体参数的估计区间。它表示总体参数的真实值有一定概率落在该测量结果周围的程度,即给出被测量参数的测量值的可信程度。‌

置信区间的定义和计算方法

在这里插入图片描述

置信区间的应用场景

在统计分析中,置信区间主要用于描述对总体参数估计的不确定性。它可以帮助我们进行总体参数的推断和比较。例如,如果两个总体参数的置信区间不重叠,可以认为这两个总体参数有显著差异;如果置信区间包含了某个特定值,可以认为该总体参数与该特定值没有显著差异。

置信水平

置信水平是指置信区间包含总体参数真实值的概率,通常取值为95%或99%。例如,95%的置信水平意味着在长期重复抽样中,大约有95%的置信区间会包含总体参数的真实值。

Causal Tress

随机森林算法与因果推断相结合的同时,给出了估计量的渐进分布和构造置信区间的方法。

  1. 通俗理解构建一颗Causal Tree的过程:首先将训练集划分为tr和est两部分,用tr来训练生成一颗决策树,训练的目标函数同时考虑了实验效应(最大)和方差(最小)。然后用est来估计CATE作为该叶子结点的CATE,对于新样本将会用该CATE作为预测值。笔者认为Causal Tree和PSM本质上是一样的,都是要找到与实验组人群的替身然后计算ATT,只不过Causal Tree是用建树的方式而PSM是计算样本之间的相似性。
    其中,CATE 是在处理效果在不同子群体中不同的情况下的常见指标。

  2. 方法
    2.1 节点切割方法(详解相关论文讲解
    Honest approach,传统决策树使用全部训练集样本来生成树,而Causal Tree先将样本集划分为tr(train)和est(honest)两部分,其中tr用来划分叶子结点,生成训练模型,est用来计算每个叶子节点的CATE。
    2.2 评价指标(目标函数)
    Causal Tree针对MSE进行了两点改动:
    (1)修改了MSE的表达式,更聚焦于Treatment Effect
    (2)修改了均方误差的计算方法,split出test set 和 estimate set分别进行Partitioning和Estimate Effect 两个任务(honest approach)
    在这里插入图片描述
    Treatment effect之所以比通常的预测问题要更难解决,因为Groud-truth在现实中是无法直接观测到的,一个人在同一时刻要么吃药要不么吃药,没有平行宇宙让我们去从上帝视角观察吃药与否带来的变化。因为个体的treatment effect无法估计,只能去估计群体的treatment effect- ATE (Average treatment effect),当出现个体效果差异时ATE无法反应局部效果,估计相似群体的treatment effect-CATE(Conditional average treatment effect)[详见因果关系讲解]
    在这里插入图片描述
    其中Y表示outcome,X表示feature,T表示Treatment

  3. 整体方法介绍
    参考基于树模型的异质因果效应估计
    相关理论推导篇

环境[动手实验]

# 创建环境
# conda create --name causalforest python=3.8

# 激活环境
conda activate causalforest

# 前往地址
# /root/test_yang/CausalForest
/root/test_yang/CausalForest/test/causalforest2.py
### 因果森林算法及其在机器学习中的应用 因果森林是一种基于决策树随机森林的因果推断方法,旨在通过数据驱动的方式估计个体处理效应(Individual Treatment Effect, ITE)。它能够有效应对传统因果推断模型中存在的隐藏混淆因子问题[^2]。 #### 1. 因果森林的核心概念 因果森林扩展了经典的随机森林框架,用于估计条件平均处理效应(Conditional Average Treatment Effect, CATE),即不同子群体下的因果效应。具体而言,因果森林通过对样本进行分层分割,使得每棵决策树都能捕捉到局部区域内的因果关系。这种方法不仅提高了因果效应估计的准确性,还增强了模型的可解释性鲁棒性[^1]。 #### 2. 因果森林的工作机制 因果森林的主要工作机制可以分为以下几个方面: - **分裂准则**:与传统的回归树或分类树不同,因果森林采用特定的分裂标准来最大化子节点之间的因果异质性。这种分裂方式有助于识别哪些特征对因果效应的影响最大。 - **双重稳健估计器**:为了减少偏差并提高估计精度,因果森林通常结合倾向得分匹配或其他调整技术,从而更好地控制混淆变量的影响。 - **正则化策略**:为了避免过拟合,因果森林引入了一系列正则化手段,例如最小叶大小约束、样本重采样以及噪声注入等措施。 以下是因果森林的一个简单实现流程: ```python from econml.causal_forest import CausalForest import numpy as np # 假设 X 是协变量矩阵,T 是处理向量,Y 是结果向量 X = np.random.normal(size=(1000, 5)) T = np.random.binomial(1, 0.5, size=1000) tau = X[:, 0] * T # 真实的处理效应 epsilon = np.random.normal(size=1000) Y = tau + epsilon # 构建因果森林模型 cf_model = CausalForest(n_estimators=100, min_samples_leaf=10) # 训练模型 cf_model.fit(Y=Y, T=T, X=X) # 预测个体处理效应 individual_effects = cf_model.effect(X) print(individual_effects[:10]) ``` 上述代码展示了如何利用 `econml` 库构建因果森林模型,并预测给定输入下每个样本的处理效应。 #### 3. 因果森林的优势与局限性 ##### 优势 - 能够灵活适应复杂的高维数据环境。 - 提供了一种无参数化的解决方案,适用于多种类型的因果推断场景。 - 自动检测潜在的交互作用非线性模式。 ##### 局限性 - 对于大规模数据集可能面临计算效率低下的挑战。 - 结果依赖于超参数的选择,需要仔细调优才能获得最佳性能。 - 当存在强混杂因素时,仍需额外的技术辅助以进一步降低偏倚。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值