双重机器学习DML介绍

本文参考:
[1]文心一言回答;

一、核心原理与数学框架

双重机器学习(Double Machine Learning, DML)由Chernozhukov等学者于2018年提出,是一种结合机器学习与传统计量经济学的因果推断框架。其核心目标是在高维数据和非线性关系下,无偏估计处理变量(如政策、治疗)对结果变量(如收入、健康)的因果效应。

1. 基本模型设定

DML通常基于部分线性模型(Partially Linear Model, PLR):
在这里插入图片描述

2. 核心步骤:两阶段残差回归

在这里插入图片描述

3. 关键技术:交叉拟合与正交化

在这里插入图片描述

4.DML的优势

处理高维数据:通过机器学习自动筛选重要协变量,避免“维度诅咒”。
非线性关系建模:支持随机森林、神经网络等非线性模型,适应复杂数据结构。
稳健性:交叉拟合和正交化技术降低过拟合风险,确保估计无偏。

二、DML无偏的数学原理

1.数学框架:部分线性模型(PLR)

DML的核心基于以下部分线性模型:
在这里插入图片描述

2. 正交化:剥离协变量影响

步骤1:残差化处理

在这里插入图片描述

步骤2:残差回归

在这里插入图片描述

3. Cross-fitting:避免过拟合

在这里插入图片描述

4.Neyman正交性:对模型偏误不敏感

在这里插入图片描述

5. 关键点总结

正交化:通过残差化剥离协变量X的影响,确保T~ 和 Y~ 与X正交。
交叉拟合:避免过拟合,提高估计的稳健性。
Neyman正交性:对第一阶段模型偏误不敏感,保证无偏性。
机器学习灵活性:支持非线性模型(如随机森林、神经网络),适应复杂数据结构。

三、DML的双重稳健体现

双重机器学习(DML)的“双重稳健”性体现在其对两种独立误差来源的稳健性,以及通过正交化与交叉拟合技术实现的双重保障。以下是具体体现:
对第一阶段模型偏误的稳健性:即使第一阶段模型存在误差,只要满足正交性条件,第二阶段估计仍无偏。
对模型选择的稳健性:无论使用线性还是非线性模型,只要正确应用正交化和交叉拟合,估计量都是无偏的。
交叉拟合的双重保障:通过样本分割和交叉验证,避免过拟合并提高稳健性。

3.1.对第一阶段模型偏误的稳健性

DML的核心思想是通过两阶段残差回归剥离协变量X的影响。其双重稳健性首先体现在:即使第一阶段模型(用于拟合Y和T关于X的预测值)存在误差,只要满足正交性条件,第二阶段的估计仍能保持无偏。
在这里插入图片描述
在这里插入图片描述

3.2.对模型选择的稳健性

DML的双重稳健性还体现在:无论使用线性模型还是非线性机器学习模型,只要正确应用正交化和交叉拟合,估计量都是无偏的。

3.3.交叉拟合的双重保障

DML通过交叉拟合(Cross-fitting)技术进一步强化了稳健性:
在这里插入图片描述

3.4.数学证明:Neyman正交性

DML的双重稳健性可严格证明为Neyman正交性:
在这里插入图片描述

四、Neyman正交

Neyman正交性(Neyman Orthogonality)是统计学和计量经济学中的一个核心概念,尤其在因果推断和双重机器学习(DML)中扮演关键角色。其核心思想是确保估计量对第一阶段模型偏误不敏感,从而保证估计的无偏性。以下是详细解释:

4.1.定义与数学表达

在这里插入图片描述

4.2.核心意义

Neyman正交性确保了以下两点:
在这里插入图片描述

4.3.在DML中的作用

在双重机器学习中,Neyman正交性通过以下步骤实现:
在这里插入图片描述

4.4.直观理解

Neyman正交性可理解为一种“双重保护”:
在这里插入图片描述
总结
Neyman正交性是双重机器学习(DML)无偏性的核心数学保障。它通过要求估计量对第一阶段模型的偏误“不敏感”,并结合正交化和交叉拟合技术,确保了在高维数据和非线性场景下因果效应的准确估计。

### 双重机器学习简介 双重机器学习(Double Machine Learning, DML)是一种用于估计因果效应的方法,尤其适用于处理高维数据集的情况。该方法通过两步过程来减少模型偏差并提高估计精度[^1]。 ### 实现步骤概述 DML 的核心思想在于将样本分为两个部分:一部分用来训练预测模型;另一部分则利用这些预测结果来进行最终的目标参数估计。这种方法能够有效缓解传统单一模型可能带来的过拟合问题。 ### Python 中的 DML介绍 为了简化开发流程,在 Python 生态中有专门针对此算法设计好的工具包 `doubleml` ,它提供了易于使用的接口以及多种内置模型支持: #### 安装 doubleml 库 ```bash pip install DoubleML ``` ### 使用示例代码展示 下面是一个简单的例子展示了如何使用上述提到的库完成一次基本操作: ```python import numpy as np from sklearn.linear_model import LassoCV from doubleml import DoubleMLData, DoubleMLPLR # 创建模拟数据集 np.random.seed(42) n_obs = 500 dim_x = 200 X = np.random.normal(size=(n_obs, dim_x)) theta = 3. sigma = 1. d = X[:, 0] * theta + sigma * np.random.standard_normal(size=n_obs) obj_dml_data = DoubleMLData.from_arrays(X, d) # 设置初始估计器 learner_g = LassoCV() learner_m = LassoCV() # 构建 PLR 对象 (Partially Linear Regression Model) dml_plr_obj = DoubleMLPLR(obj_dml_data, ml_l=learner_g, ml_m=learner_m) # 进行交叉验证后的系数估计 dml_plr_obj.fit().summary ``` 这段程序首先定义了一个线性关系作为真实的数据生成机制,并加入了一些噪声成分使得情况更加贴近实际应用环境。接着创建了相应的对象实例并通过调用 fit 方法完成了整个计算过程最后输出总结统计信息表。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值