斯坦福机器学习与因果推断笔记-全-

斯坦福机器学习与因果推断笔记(全)

001:机器学习与经济学导论 🧠📈

在本节课中,我们将探讨机器学习与经济学(或计量经济学、社会科学)之间的关系。我们将从区分两种主要的机器学习类型开始,并深入探讨它们与社会科学中传统方法的异同,特别是预测与因果推断之间的核心区别。

机器学习的两大类型

机器学习领域广阔,但今天我们主要区分两种核心类型:无监督学习有监督学习

无监督学习

无监督学习是指处理没有预先标注标签的数据。例如,你有一堆图片、视频或文档,但没有人事先告诉你哪些是猫,哪些是狗。算法的目标是根据数据本身的特征,将其分成不同的组(聚类)。

核心过程:算法将相似的图像归为一组。之后,当你查看某个分组(例如第5476组)时,你发现里面的图片都是猫。于是你说:“我的机器学习算法发现了猫。” 但实际上,算法只是将看起来相似的图片放在了一起,是你后来赋予了“猫”这个标签。

不同学科在使用这些方法时,目的可能不同。它可能作为回归分析中的一个解释变量,也可能用于描述产品特征。但就其本身而言,如果你想知道如何操作,完全可以通过网络搜索、Coursera等平台找到优秀教程。对于社会科学家来说,直接应用这些方法即可,其核心目标在不同领域并无本质差异。

有监督学习

上一节我们介绍了无监督学习,本节中我们来看看有监督学习。这看起来更像社会科学中常做的回归分析。

在有监督学习中,我们从一个稳定的环境开始,拥有独立的观测数据。在最简单的情况下,观测值之间互不相关。这类似于计量经济学一年级课程中教授的条件均值建模问题,即用X的函数来预测Y的期望值:E[Y|X] = f(X)

分类问题是有监督学习的另一个子集,此时Y是离散的标签(例如猫、狗、马)。这看起来很像社会科学中常用的多项逻辑回归。

因此,有监督机器学习似乎与社会科学在做同样的事情。甚至,当你上机器学习课程时,学到的第一个预测模型可能就是回归,第一个分类模型可能就是逻辑回归。这听起来我们完全在解决同一个问题。

但有趣的是,我们处理这个“相同”问题的方式却不同。接下来,我们将探讨为何我们会以不同方式处理同一问题,以及为何从相同方法中提出不同问题是有意义的。

分类问题示例:预测与理解的鸿沟

为了更具体地说明,让我们看一个机器学习中研究最广泛、也是过去15年取得巨大成功的分类问题示例:图像识别。

典型的分类问题是,你有一堆图片(比如动物图片),你的目标是给它们分类。在训练数据集中,你既有图像(X),也有标签(Y,如猫、狗、马)。

以下是构建分类模型的关键步骤:

  1. 特征提取:首先需要将图像转化为可观测的特征。一个简单的方法是,将图像视为由红、绿、蓝三原色的亮度值组成的像素矩阵。这样,图像就被数字化为一组数值(X)。
  2. 模型构建:然后,将这些特征X输入模型,以预测标签Y(例如,给定X,这是猫吗?)。

这里已经出现了一个细微的差距。在一些机器学习应用中,目标可能不是输出一个概率,而仅仅是给出“是猫”或“不是猫”的判断。在生产环境中,算法可能只输出类别标签。

然而,如果经济学家研究这个问题,我们通常会构建一个逻辑回归模型,试图输出一个概率 P(Y="猫"|X)。并且,我们通常对模型系数和函数形式本身感兴趣。我们会问:如果我改变某个X,概率会如何变化?我们真正试图理解的是模型的内在机制,而不仅仅是输出一个标签。

机器学习的优势与局限:以客户流失预测为例

机器学习,特别是像神经网络这样非常灵活的函数形式,在解决复杂的预测问题(如从像素数据中识别物体)方面取得了巨大进步。

以下是机器学习强大预测能力的一个例子(来自麦肯锡的宣传资料):

  • 问题:预测哪些客户会流失(停止使用服务)。
  • 方法对比
    • 传统逻辑回归:使用简单的、手动设定的函数形式(如线性或轻度非线性)。在二维驱动因素(A和B)空间中,其等概率线是一条平滑的曲线。
    • 机器学习模型:可以拟合出非常复杂的、具有多个山峰和山谷的等概率线。

假设麦肯锡正确运行了软件,并且其机器学习模型在测试集上预测流失的表现确实优于简单的逻辑回归模型。

但是,作为一个社会科学家或试图据此做决策的商业人士,你该如何使用这个输出呢?如果你照字面解释这个复杂模型,可能会得到反直觉的结论。例如,保持驱动因素A不变,增加驱动因素B,模型显示的流失概率可能会先升后降,再升再降。

这是因为预测模型的目标仅仅是预测。它的函数形式完全是为了最准确地预测Y(是否会流失)而优化的。这与因果分析的目标截然不同。因果分析要回答的是:如果B是我可以影响的(比如让用户更频繁登录网站),那么改变B是否会导致流失减少?这是一个完全不同的问题,需要用非常不同的模型和方法来回答。

因此,一个核心见解是:不能随意将预测模型的结果解释为因果关系。预测谁最可能流失,并不等同于确定谁应该接到销售电话以阻止其流失。那些最可能流失的人,也许是因为即将毕业搬离城市,销售电话对他们无效。所以,预测模型和用于干预决策的模型需要针对不同的问题来构建。

预测与因果推断:目标与方法的根本差异

上一节我们通过例子看到了预测与因果的不同,现在我们来更系统地梳理这种差异。

机器学习的核心:预测

在机器学习中,预测的目标是估计一个单一的数字:给定新的X,对Y的最佳预测是什么。其标准是最小化在新数据集上的均方误差

可以这样理解:教授让研究助理用一些X和Y数据去构建一个模型。然后,教授隐藏一些只有X的数据,让助理根据X预测Y,并仅根据预测Y的准确性来评分。教授不关心助理用了神经网络还是随机森林,只关心预测是否准确。

机器学习就像一个机器人研究助理,可以运行海量模型并返回最好的那个。它之所以有效,是因为你可以通过交叉验证等技术,在不依赖额外假设的情况下,准确地评估模型在“未来”数据上的性能。你只需要关心它是否“有效”。

但需要注意的是,为了最小化预测误差,机器学习通常会接受一定的偏差,以换取更低的方差,这就是偏差-方差权衡。这与计量经济学中追求条件均值函数的无偏估计目标不同。

社会科学的焦点:因果推断与识别

经济学家和社会科学家则更关注估计因果效应识别问题。识别是指:如果我拥有无限的数据,我能否回答我的因果问题?

考虑一个酒店的例子:

  • 因果问题:如果我提高酒店价格,会失去多少客户?
  • 数据:你收集了酒店的价格和入住数量数据。
  • 问题:你可能会发现,数据中价格和数量呈正相关(价格高时,入住率也高)。这是因为价格高的时期(如节假日、会议期间)需求本身就很旺盛。
  • 预测视角:如果目标仅仅是预测某天的入住量,高价格是一个很好的预测指标。
  • 因果视角:但这并不意味着“提高价格”这个干预行为会导致入住量增加。数据中的价格变动主要源于需求波动,而非外生的价格实验。

经济学家始终在思考如何从相关关系中剥离出因果关系。我们痴迷于标准误,因为因果效应很难精确估计,抽样变异可能很大。我们也深知,识别问题无法仅通过在一个随机保留的测试集上评估预测精度来解决,因为测试集同样会保持数据中固有的伪相关模式。

互相借鉴:取长补短

对计量经济学的反思与改进

传统计量经济学宣称进行因果推断并思考数据生成过程,但实际操作中,我们常常告诉研究助理运行上百个不同的模型设定,从中挑选几个有代表性的结果报告,仿佛我们只估计了一个模型。这不是因为我们是“坏人”,而是缺乏系统、诚实地处理模型不确定性和进行稳健性检验的工具。

机器学习可以帮我们走出这个困境。它可以提供系统化进行稳健性检验的方法,完整、诚实地描述我们所做的一切,同时仍然能够报告我们关心的参数估计。这是本课程将要教授的内容之一:如何利用机器学习方法,摆脱那种运行一堆设定、希望自己足够全面又不过度挖掘数据的不可靠研究模式。

关键经验与未来方向

一些关键的经验包括:

  1. 问题分解:许多计量经济学问题可以分解为预测部分因果部分。一旦完成这种分解,就可以将预测部分放心地交给现成的机器学习工具。
  2. 目标导向的模型选择:我们可以借鉴机器学习的数据驱动模型选择思想,但需要根据我们的计量目标(如参数估计)进行定制,使用不同的优化准则和目标函数,并保留进行统计推断的能力。
  3. 重视验证:机器学习总是有一个测试集。经济学可以学习这一点,设计更巧妙的测试集(例如,利用不同市场、不同时期的数据)来评估反事实预测的好坏。
  4. 计算技术:即使是对于结构模型,也可以借鉴随机梯度下降等强大的机器学习计算技术来提升性能。

展望未来,我们预测在五年内:

  • 正则化、数据驱动的模型选择将成为社会科学的标准。
  • 预测问题与因果模型之间的区别将得到更好的理解和界定。
  • 使用机器学习进行测量(如文本分析)将成为一个重要子领域。
  • 我们将更明确地区分模型中的因果部分和预测部分,并将预测部分委托给机器学习。
  • 研究的重点可能会从过度强调抽样变异,转向更多关注模型稳健性。

总结

本节课中,我们一起学习了机器学习与经济学交叉领域的基础。我们首先区分了无监督学习和有监督学习。然后,通过图像分类和客户流失预测的例子,深入探讨了有监督机器学习(专注于预测)社会科学传统方法(专注于因果推断) 在目标和方法上的根本差异。机器学习擅长在复杂数据中寻找预测模式,但其结果不能直接等同于因果效应。经济学家则长期致力于在存在混淆因素的情况下识别因果关系。最后,我们讨论了两者如何取长补短:机器学习可以为计量经济学提供强大的预测工具和系统化稳健性检验的方法,而计量经济学的因果推断框架则能帮助机器学习应用提出更正确、更有意义的问题。理解这些区别与联系,是将两者有效结合的关键第一步。

002:应用机器学习导论 🧠

在本节课中,我们将从应用视角介绍机器学习。课程将面向应用计量经济学的研究者和实践者,探讨如何将机器学习纳入计量经济学工具箱,并了解基于机器学习的新工具如何改进实证分析。

概述:现代机器智能的奇迹

当我们思考机器智能时,可能会联想到科幻电影中的未来场景。然而,许多机器智能技术已经存在于我们的日常生活中。

例如,Facebook不仅能识别照片中的人脸,还能识别出具体是哪位好友。Google Translate不仅能将图片中的文字转换为计算机可读格式,还能将其翻译成另一种语言并叠加在原图上。此外,现代汽车能够检测环境中的障碍物并采取规避行动,一些汽车甚至能完全自动驾驶。

这些例子构成了我们接下来几个模块的动机。具体来说,我们首先想探究:我们是如何能够解决如此复杂的机器智能任务的?其次,基于我们对这些任务及其解决方法的了解,我们能否为应用计量经济学学到一些东西,从而改进我们通常进行的分析(例如分析田野实验)?

从传统AI到现代机器学习 🥒

为了更好地理解现代机器智能的工作原理,让我们从一个日本黄瓜农场的故事开始。农场需要根据质量对黄瓜进行分类,这通常是一项繁琐的人工任务。农场主的儿子试图通过建造一台机器来自动完成这项工作:用相机拍摄每根黄瓜的照片,然后让计算机判断其质量。

这本质上是一个分类问题。我们拥有数据 X(即图片的像素),目标是基于 X 预测黄瓜的质量 Y

传统方法:基于规则的编程

最初,人们可能会尝试通过编写程序来模拟人类的决策过程。例如,程序可以尝试识别黄瓜与背景的像素,测量黄瓜的颜色和曲率,然后根据预设的规则(如“颜色健康绿”且“曲率低于某阈值”)判断是否为高质量黄瓜。

这就是传统人工智能的方法:理解人类如何决策,然后将规则编码到计算机中。然而,这种方法并不十分成功。

现代方法:基于数据的统计学习

现代机器学习则将这个问题转化为一个统计问题,核心思想是从训练数据中学习映射关系,而非依赖人类直觉来编写规则。

具体来说,我们可以使用标注数据(即已知每张图片对应黄瓜质量的数据),然后拟合一个函数,将图像映射到质量类别。通过寻找一个拟合效果特别好的函数,我们就能解决这个分类问题。

这个过程看起来很像统计学:我们拥有结果变量 Y 和协变量 X,希望提取 XY 之间的关系结构。

机器学习为何不同?🔍

那么,机器学习与传统的线性回归等方法有何不同?

第一个明显的区别在于,机器学习使用更灵活、更丰富的数据驱动模型。在传统计量经济学中,我们可能拟合简单的线性回归或逻辑回归。但在图像分类问题中,X 是所有像素构成的高维向量,简单的逻辑回归模型 P(Y=1|X) = 1/(1+e^{-(β₀+β₁X₁+...+βₖXₖ)}) 效果不佳。

原因有二:

  1. 向量 X 维度太高。
  2. 该函数形式不足以捕捉像素与质量之间的复杂关系。理解图像需要理解相邻像素之间的关系,而标准函数形式在这方面非常不足。

因此,机器学习需要使用更复杂的函数。例如,我们可能使用神经网络。在神经网络中,输出 M 不仅仅是输入 X 的函数,而是中间变量的函数。可以将其理解为“函数的函数”。

一个简单的神经网络输出可以表示为:
M = σ( W₂ * σ( W₁ * X + b₁ ) + b₂ )
其中 σ 是激活函数(如sigmoid函数),W 是权重矩阵,b 是偏置项。

在实践中,我们使用的层数远不止两层。从简单神经网络发展到深度学习,就是通过添加更多层来实现的。因此,预测函数可能看起来像多个嵌套的复杂变换。

机器学习成功的关键要素 ⚙️

为了使这种灵活的方法有效工作,我们需要另外两个关键要素:

  1. 限制函数表达能力以避免过拟合:我们需要确保机器学习在搜索复杂函数时找到的模式不是虚假的。
  2. 使用数据决定允许的表达能力:即决定正则化的程度,这个过程也称为调参

此外,机器学习工具之所以具有巨大影响力,还因为它们易于获取。除了概念上的突破,我们现在拥有处理复杂数据的计算能力,并且相关的软件工具(如Google的TensorFlow)对所有人开放。前文提到的日本农场主的儿子,正是利用这些开源工具实现了黄瓜分类器。

聚焦:监督学习与预测 📈

在本课程中,我们将重点讨论一种特定类型的机器学习:专注于预测的监督学习

在监督学习中,我们拥有带标签的数据(即已知 YX),目标是学习 YX 之间的关系。本课程开篇提到的许多智能任务,都可以转化为监督学习问题。

以下是监督学习的一些应用实例:

  • 黄瓜分类:预测黄瓜质量。
  • 信贷审批:银行根据客户过去的财务行为数据,预测其贷款违约的可能性。
  • 税务审计:税务局利用历史审计数据,预测哪些报税表可能存在问题。
  • 图像识别:如Facebook的人脸识别。
  • 自动驾驶(简化版):可以将所有传感器输入作为 X,将人类驾驶员的操控动作作为 Y,通过预测人类在特定情境下的行为来实现初步的自动驾驶。虽然这不是最先进的方法,但它凸显了监督学习范式的力量。

监督学习的巨大成功 🏆

监督学习取得了令人瞩目的成功,图像识别竞赛ImageNet的结果就是一个例证。

在ImageNet竞赛中,参赛者会获得一个包含已标注图片的大型训练集,然后需要在一个未标注的新图片集上进行识别。评估标准是算法的错误率。

过去十年间,顶级机器学习算法的性能突飞猛进:

  • 最初,机器的错误率约为三分之一(约33%),这已经相当令人印象深刻。
  • 到2017年,错误率已降至约2%。
  • 相比之下,人类在相同任务上的错误率约为5%。

这意味着,机器在图像识别这项人类原本擅长的任务上,已经系统地超越了人类。

超越监督学习:更广阔的机器学习世界 🌐

机器学习的成功远不止于监督学习或预测任务。

  • 无监督学习:旨在发现无标签数据中的结构。例如:
    • 聚类分析:寻找相似数据点的群组。
    • 主题模型:用于从大量文本中自动提取结构,例如理解文本主题随时间的变化。
  • 强化学习:在游戏AI领域取得了突破。例如,AlphaGo通过分析人类棋谱学习围棋,而更先进的AlphaZero则完全通过自我对弈来发现超越人类和现有计算机程序的策略。

本课程的目标与范围 🎯

本系列课程的目标并非教授最前沿的机器学习技术或如何训练神经网络。我们的重点在于将机器学习世界与应用计量经济学及行为科学的世界连接起来,将机器学习作为一种工具来使用。

市面上已有大量资源来学习机器学习及其背后的统计学原理。因此,本课程更侧重于从概念上展示如何使用这些工具,以及如何将其具体应用于项目评估等场景。

具体来说,本课程的目标是:

  1. 提供一个框架,用于在应用计量学中使用和批判性评估机器学习。
  2. 在此基础上,将其与因果推断和项目评估中的典型任务结合起来。
  3. 最终,为大家提供一些具体的工具,展示机器学习如何切实增强应用研究工作。

课程范围说明:

  • 数据:重点关注社会科学类型的数据集(例如,根据房屋特征预测房价,或预测扶贫目标对象),而非处理大型像素图的图像分类问题。
  • 技术:将主要讨论如何使用现有工具,而非从头编写代码。但会提供足够的概念理解,以便大家知道需要注意什么,以及如何利用这些工具改进工作。
  • 前沿性:课程内容非常贴近当前研究,属于一个不断发展的议程,相关方法在未来几年可能还会演变。

总结与预告 📚

本节课我们一起学习了机器学习的应用导论。我们探讨了现代机器智能的核心通常具有预测任务的结构:利用包含结果变量 Y 和协变量 X 的训练数据,学习一个函数并将其应用于新实例。

在下一节课中,我们将深入探讨机器学习的“秘密武器”,理解是什么使得这种预测如此成功,尤其是当我们使用标准线性回归工具处理像复杂像素图这样的任务显得力不从心时。

在本次系列课程的最后一个模块中,我们将通过指出机器学习技术与计量经济学常用技术目标不同,来总结二者的区别。并以此为基础,提供一个框架,说明在哪些领域可以最有效地利用机器学习,以及在哪些领域需要特别谨慎。

下节课见!

003:应用机器学习的“秘方” 🧠

在本节课中,我们将从应用视角深入探讨机器学习,特别面向希望将机器学习纳入计量经济学工具箱的研究者和实践者。我们将理解基于机器学习的新工具如何改进实证分析。

在上一节中,我们讨论了机器学习特别擅长解决预测问题,即从训练数据中找到一个能很好外推到新数据点的预测函数。这种预测问题的解决方案对于解决机器智能问题的进展至关重要。

本节中,我们将探讨机器学习为何在预测方面表现如此出色,尤其是在处理非常复杂的数据和使用非常复杂的函数形式时。接着,在课程的下一个部分,我们将讨论机器学习工作方式的一些启示,特别是当我们真正关心估计(包括因果估计)时,机器学习如何应用。

现在,让我们完全专注于解决一个预测问题。以下是我们的设定。

预测问题的设定 📊

我们假设有一个训练数据集。数据点由一个结果变量 Y 和一个右侧变量或协变量 x 构成。我们的目标是根据 x 预测 y

为了更精确地定义,我们假设存在一个损失函数。该损失函数表达了当真实值为 y 时,我们预测为 ŷ 所必须付出的代价。

我们的目标是基于协变量 x 和使用某个预测函数 f,预测来自同一分布的新数据点的结果 Y,使得这个平均损失尽可能小。

到目前为止,这听起来很像标准的计量经济学:有一个结果 Y,一些协变量 x。标准计量经济学和机器学习之间的第一个区别仅仅是这些变量的称呼不同。具体来说,我称之为结果变量 Y 的,在机器学习中通常被称为标签。我称之为协变量 X 的,通常被称为特征

让我重新表述机器学习的目标:机器学习的目标是获取一个带有标签数据的训练数据集(即每个实例都有标签和特征),并从中找到一个预测函数,使得当我们根据特征预测新数据点的标签时,平均损失或风险尽可能小。需要澄清的是,这里我讨论的是监督学习,意味着我们的训练数据集中确实有标签,我们不需要在没有标签指导的情况下从协变量中寻找结构。

两种标准的预测问题 🔍

以下是两种标准的预测问题。

第一种称为回归,即当结果变量本身是连续的时候。我们经常为了方便或因其对特定任务有良好性质而使用的标准损失函数是平方误差损失。我们的目标是最小化预测值与来自同一分布的新实例的真实标签之间的平均平方差。换句话说,这里的损失函数就是 (ŷ - y)²

我将贯穿今天课程使用的两个例子:

  1. 预测新房子的对数房价 (y),基于该房子在具有相同分布的房屋样本中的特征 X
  2. 预测基于家庭特征的消费。这在例如贫困瞄准和社会项目针对特别贫困人群时,是一个非常重要的任务,因为消费可能是衡量其贫困程度的一个良好指标。

第二种典型的预测情况是当感兴趣的结果本身是二元的。在这种情况下,我们称这种预测练习为分类

考虑预测本身是二元的情况。基本上,真实值是 0 或 1,我给出我的最佳猜测。在这种情况下,我可能犯两种错误,因此有两种情况我们可能希望将代价与所犯的错误关联起来。

第一种情况是真实值实际上是 0,但预测是 1。我们称之为假阳性第一类错误。第二种情况是真实值是 1,但我的预测是 0。我们称之为假阴性第二类错误。如果我想设计一个损失函数,我可以为第一类和第二类错误设定特定的代价,可能基于我关心的具体问题,然后尝试找到一个分类函数来最小化该错误或与之相关的代价。

然而,在许多二元分类的情况下,我们实际上预测的是结果为 1 的概率。在这种情况下,量化分类规则质量的一种流行方法是绘制受试者工作特征曲线。该曲线的 x 轴是假阳性率,y 轴是真阳性率。对于每一个假阳性率(即假阳性占所有负例的比例),我绘制相应的真阳性率(即真阳性占所有实际正例的比例)。通过在不同的阈值下(例如,我称所有预测概率非常高的人为 1,并改变该阈值),我可以绘制假阳性率和真阳性率相互对应的曲线。曲线越靠近图的左上角,我的预测就越好。因此,量化二元预测或分类质量的另一种方法是查看该曲线,并询问该曲线离左上角有多远,例如,可以通过积分曲线下的面积来实现,这给了我曲线下面积

虽然我不会在这里详细讨论分类(即对二元结果进行预测),但了解术语“受试者工作特征”和“曲线下面积”有助于理解这些指的是量化分类函数质量的不同方式,或者换句话说,量化当感兴趣的结果是 0/1 时的预测质量。

回归预测与线性回归 📈

现在我想回到回归情况下的预测目标,即我们的结果实际上是连续的。假设我们想找到一个预测函数 ,使得相对于真实结果 y 的平均平方误差或均方误差尽可能小。

例如,我们可以尝试通过使用线性函数来实现这一点。这些线性函数非常像线性回归。它只是对不同的协变量 X 赋予一个系数,这里假设这些协变量或特征本身是连续变量。

因此,从训练数据中,例如,我可以选择线性回归中的系数 β,它提供了最佳的样本内拟合。这是我们非常熟悉的,这就是简单的线性回归。那么线性回归做了什么?它说我的目标是最小化样本外均方误差。我能做的最好的事情是什么?我只需查看已有的数据,并询问哪组系数能最小化我已有数据中的误差,这就是我想要选择的系数。

让我们退一步思考一下:这种方法(我们非常熟悉,因为它就是线性回归)在解决手头的预测问题方面有多好?

首先,有一些好消息:我们知道线性最小二乘法或线性回归具有许多最优性质,这些性质适用于这种情况。例如,根据高斯-马尔可夫定理,如果这里所有的误差项都是同方差的(意味着误差不会随协变量 X 系统性变化),那么 OLS 确实是具有最小方差的系数 β 的无偏估计量。

我刚才说了一大堆东西。首先,我指出它是无偏的,因为我称其为最优无偏估计量。其次,我说在所有无偏估计量中,它具有低方差。但当我们谈论样本外预测时,这并不立即清楚是否正是我们想要的。确实,我们现在可以问一个问题:这些性质是否也转化为样本外的最优预测器。

偏差-方差权衡与过拟合 ⚖️

现在我想通过一个稍微形式化的论证来理解线性回归估计量是否不仅在估计参数 β 方面表现良好(正如我们刚才讨论的,这意味着它具有零偏差和低方差),而且这些性质是否也转化为良好的预测解决方案。

为此,我考虑一个新数据点,我假设这个新数据点实际上是由协变量 x 和结果 y 之间的线性关系以及一些额外的噪声生成的。所以我假设这个新数据点由 y = β * x + ε 给出。

当我用某个 β̂(即我在训练数据集中的 OLS 解)来估计我的系数 β 时,我会犯一定的错误。这个错误对应于我的预测 ŷ 与真实值 y 之间的差异,或者换句话说,我的预测 β̂ * x 减去真实值 β * x 再减去 ε

当我将其平方并对它取平均时(既对训练样本的抽取取平均,也对误差 ε 取平均),我们会看到这个误差有多个组成部分。

首先,我总是会犯一些错误,因为有这个额外的项 ε 我无法消除,所以在我的损失计算中会存在一些不可约的方差。其次,真实系数 β 和我的估计值 β̂ 之间会存在差异。这部分损失实际上可以写成两个部分的和。首先,我可以问,平均而言,如果我重新抽取许多训练数据样本,我的 β̂ 是否接近 β?这是偏差部分,即 ββ̂ 的平均值之间的差异。其次,我可以问,当我重新抽取训练样本时,我的 β̂ 从一次抽取到另一次抽取的变化有多大?这贡献了方差。

换句话说,我获得的损失有三个组成部分:

  1. 不可约的噪声。
  2. 偏差,即平均而言,我的系数与真实系数相差多少。
  3. 方差,即当我反复计算系数时,这个系数从一次抽取到另一次抽取的变化有多大。

这种被称为偏差-方差分解的分解是计量经济学和统计学中良好预测挑战的重要框架,因为它表明当我的兴趣在于良好预测(即我希望平均而言接近真实值)时,一个无偏的估计量不一定是最优估计量。因为虽然它的偏差分量为 0,但可能意味着方差分量比它必须的要高。有时我可以通过平衡这两者来做得更好。换句话说,通过最优地解决偏差-方差权衡。

对于机器学习,函数形式可能看起来比这种线性回归更复杂,有时损失函数也与平方误差损失不同。因此,我个人更喜欢一种表述,即我们在这里面临近似过拟合之间的权衡。

这是什么意思?近似偏差发生在我的函数即使在平均意义上也无法很好地近似真实函数时。另一方面,如果函数非常灵活,因此可以非常详细地拟合我想要拟合的函数,那么近似质量就很高。然而,这种高近似质量也意味着存在高过拟合,这意味着从一次抽取到另一次抽取,我不仅拟合了信号(即 yx 之间的真实关系),还拟合了很多噪声(即这里的 ε),导致高方差。因此,总的来说,我喜欢称之为近似与过拟合之间的权衡,这很好地推广到其他不一定与简单线性回归处于同一空间的机器学习方法。

近似与过拟合的实例演示 📉

为了进一步探索这种近似与过拟合的权衡,并给出一个不依赖于我刚才展示的数学的例子,让我们考虑一个情况,我们的目标是拟合协变量 x 和结果 y 之间的这种关系,目标是找到一个能在新数据点上预测良好的函数。

这里我查看了 8 个数据点,并使用结果 y 和协变量 x 之间的简单线性回归来找到关系。现在,我可以通过查看当我绘制新数据点(此处为红色)时,这条线拟合得如何来尝试找出它的表现。我将蓝色数据点称为我的训练样本,红色数据点称为我的测试样本。我的目标是使用训练样本来尽可能接近测试样本点相对于我的回归线。换句话说,我希望位于一条尽可能接近这些红点的线上,以便根据它们的 x 值很好地预测它们的 y 值。

现在,让我们思考一下我们是否能比这里看到的做得更好。例如,我们可以使用一个更复杂的函数,不仅仅是 yx 之间的简单线性关系,而是可以使用一个 2 次多项式或抛物线来拟合。

这条蓝色的曲线实际上更好地拟合了训练数据集中的点,因为它更灵活。它能够更好地捕捉训练数据集中那些蓝点之间的关系。然而,同时我们看到在测试数据点上的拟合实际上变得更差。这里发生了什么?我们有一个更复杂的函数。这个更复杂的函数能够更详细地近似 y 变量和 x 变量之间的关系,但同时它也更容易过拟合,因为一些灵活性不仅用于更好地拟合 yx 之间的真实关系,还用于拟合一些噪声。

当我们为多项式添加更多次数时,这一点变得更加极端。例如,当我在这里再添加两个次数,并查看 4 次多项式时,我看到蓝线开始几乎完美地拟合训练数据集中的点,然而它在测试数据集上的拟合方式却越来越差。那么这里发生了什么?

随着我们为函数添加更多的自由度(在这里我通过向回归中添加额外的多项式来表达),我的样本内拟合(此处为蓝色)变得越来越好。因此,样本内拟合误差越来越低,因为我添加的自由度越多,这个函数就越能近似任何潜在的关系,并且它能更好地拟合已经看到的数据。

同时,对于新数据点的拟合(这正是我追求的目标),预测质量最初会增加(意味着损失会越来越低),但随后它也开始越来越多地拟合数据中的特异之处,因此在某个点之后,净损失会增加,预测质量会下降,因为过拟合的负面影响超过了更好近似的正面影响。

总结来说,随着模型变得更复杂,它开始越来越地拟合真实函数,因此其近似质量增加。但同时,它也开始越来越地拟合噪声,过拟合也随之增加。因此,当我们进行机器学习,当我们想要能够在非常高维度中预测良好时,重要的是我们不仅要使用能够很好表达该关系的灵活函数形式,还要限制它们的表达能力,或者换句话说,我们使用正则化来控制我们允许的过拟合程度。最优情况下,在我刚刚展示的例子中,我们会找到一个点,在这个点上这两个权衡以一种使整体预测质量更好的方式达到平衡。

正则化的具体方法:LASSO 与 Ridge 🛠️

现在我想给出几个具体例子,说明这种正则化可能是什么样子。我刚才展示的例子中,我们只是简单地改变了线性回归中的多项式次数。在实践中,这可能不是构建更复杂或更简单函数的最明智方式,尤其是在已经有很多协变量可用的情况下。因此,相反,我们将在这里明确地包含正则化,即明确限制函数的表达能力,目前仍在线性回归的框架内。

具体来说,与其运行最小化样本内拟合的 OLS 解,我们最小化样本内拟合,但受到一些约束,这些约束表明我们的函数不能太复杂。具体来说,我们将通过使用系数的某种范数或伪范数来实现这一点,并规定这些系数不能太大。

我们在这里考虑的典型范数有哪些?第一个实际上不是一个真正的范数,但非常直观。它说让我们限制允许为非零的系数的数量。换句话说,当我使用这里的第一个准则时,我会说让我们找到只使用特定数量变量(例如可用变量中的 C 个)的回归拟合,所有其他变量必须为 0。基于这些变量,我尝试找到最佳拟合。这会给我一个稀疏解。然而,它有一个很大的缺点,即计算上不可行,因为我实际上必须尝试许多不同的变量组合才能找到最优解。

相反,我们经常使用的一种正则化方式是使用一个范数,该范数规定让我们对所有系数的绝对值设定一个限制,即我们取线性回归中系数的绝对值,并对这些绝对值求和,然后不允许这个绝对系数和太高。

第三种表现良好的正则化方式是使用欧几里得范数或这些回归系数的平方和。并规定让我们找到一个解,其中这些回归系数的平方和不太高。

在所有这些情况下,我们实际上都获得了一个杠杆,通过它我们可以控制函数的复杂性。例如,通过规定只有给定数量的系数可以非零,或者系数的总大小不允许超过某个阈值。

我现在将详细讨论其中的两个例子,特别是对应于 L1 范数(绝对系数和)和 L2 范数(平方系数和)的例子。并且,为了技术假设和实用性,我将假设这些系数不惩罚截距项,并且我们已经对 X 协变量进行了标准化,使得不同的方向实际上具有可比性,并且对系数施加范数是有意义的。

LASSO 回归

我想考虑的第一个例子是我们用 L1 范数(即各个绝对系数大小的和)来限制系数大小的情况。

这意味着所有允许我使用的系数必须位于原点周围的这个菱形内。因此,与其找到位于这些同心圆中心的无约束最优点,我将在可行集内(即在这种情况下较小的系数集合内)找到根据预测所隐含的距离最接近该中心的点。

在实践中,我们实际上不会解决这个问题。在许多情况下,我们会解决该问题的拉格朗日松弛形式,该形式用影子成本替代了系数不能太高的约束,该影子成本表示基本上每当系数增大时都必须付出代价。换句话说,我们求解拉格朗日问题,即我们希望最小化样本内损失加上系数大小的成本。

这种特定的回归称为LASSO 回归。我现在想讨论它的几个性质。

从右边的图中你已经可以看到的第一个性质是,它倾向于产生不仅收缩(因为我们将成本与较大的系数相关联,所以系数比 OLS 的小)而且通常是稀疏的结果,意味着这种回归方法也会选择用于预测的变量子集,并使许多变量恰好为零。原因是,我们之前讨论的约束的可行集虽然是凸的,但也有“角点”,这意味着在某些情况下会产生恰好为零的解。

理解 LASSO 作用的一种方式是,LASSO 是资本主义的。当 LASSO 可以选择多个非零系数,并且这些系数以类似的方式贡献于预测时,它倾向于只选择其中一个,因此它倾向于选择“赢家”,倾向于产生许多零的解。

在实践中,这看起来如何?在实践中,我们可以改变与更复杂系数相关的成本 λ。这里有一个图表,我正是这样做的:我运行了一个 LASSO 回归,并改变了系数 λ。在这种情况下,λ 在左侧非常高,在右侧非常低。所以这里的轴与通常的方向相反。这意味着在左侧,拥有非零系数的成本非常高。确实,我们看到成本高到足以使最优解实际上将所有系数设置为 0。现在,每条彩色线代表一个系数。随着我们降低 λ,随着我们使包含系数变得越来越便宜,我们看到一些系数开始变为非零,并且随着我们降低较大系数的成本,它们也开始增加。有趣的是,越来越多的系数将进入我们的支持集,即越来越多的系数将被选择,但这并不一定意味着所有这些系数都会增加,也可能它们首先增加,然后随着其他系数被包含而再次减少。

因此,这又是进行正则化的一种方式,这是通过规定让我们使用一个约束来控制线性回归解的复杂性的一种方式,该约束与“我只想对有限的一组变量进行线性回归”非常相似,但与其限制变量的数量(这在计算上非常困难,并且具有一些不良特性),我取而代之的是希望找到一个解,其中系数的大小不太大,在这种特定情况下,我通过绝对值的和来衡量这些系数的大小。

Ridge 回归

另一种流行且非常相似的回归方法是Ridge 回归,其中我使用系数的平方和作为惩罚参数,而不是绝对值的和。所以现在我必须在系数的平方和变大时付出代价。

那么在我们之前的图片中,这会是什么样子?在我们之前考虑如何限制参数大小(即惩罚或系数大小到特定数字)的约束集的图片中,这意味着在这种情况下,我们会将它们限制在原点周围的圆内。

具体来说,例如,如果我将参数限制在平方和最大为 1 的范围内,那么我将恰好将我可以使用的参数限制在半径为 1 的原点同心圆内,并且我将选择在预测所隐含的特定距离度量下最接近 OLS 解的点。

与 LASSO 不同,Ridge 回归的性质截然不同。虽然 Ridge 回归仍然导致系数大小变小(因为它对较高的系数施加了代价),但 Ridge 回归不太可能将某些系数恰好设置为零。相反,如果有多个系数可以发挥类似的作用(意味着它们对产生的预测具有类似的作用),Ridge 倾向于成为社会主义的,意味着在存疑时,它会在多个系数之间分配预测能力,并产生多个非零但不太高的系数,而不是产生少数非零且高的系数以及许多为零的系数。

换句话说,这个社会主义估计量不产生稀疏解,而是倾向于产生所有系数都不太高但也没有太接近零的解。这种估计量的一种解释是,它可以被解释为贝叶斯后验,其中我假设我的系数具有以零为中心的正态先验,这正好导致了那种收缩。

从线性到非线性:回归树 🌳

我们现在已经看到了两种可以限制线性回归复杂性的方法。第一种 LASSO 倾向于资本主义,并将某些系数恰好设置为 0。第二种 Ridge 倾向于社会主义,并以系数不太高的方式分配系数,但也没有将任何系数恰好设为零。还有第三种方法称为弹性网络,它通过添加一个混合了 Ridge 惩罚和 LASSO 惩罚的惩罚来混合这两者。在这种情况下,我既可以调整我想要为复杂性付出多少代价的参数 λ,也可以调整通常称为 α 的参数,它告诉我如何混合这两者。

这些是我们经常称之为机器学习估计量的两种估计量,但老实说,它们非常接近线性回归,也来自统计学,Ridge 估计量是一个非常经典的统计估计量。然而,我以此作为我们讨论机器学习的切入点,因为尽管这些估计量非常接近线性回归,但它们具有机器学习估计量通常具有的许多一般结构。

具体来说,许多监督学习算法(即构建用于解决预测问题的算法)的特征在于特征的组合:首先,它们优化哪个函数类;其次,它们正则化的方式(即控制复杂性的方式);第三,它们解决在正则化约束下找到优化拟合的估计量的优化问题的方式。

我展示的线性回归估计量只是一些例子,现在我想展示一些属于同一种结构的其他算法。

为了激发我想看的下一种估计量,我想考虑一个在公共政策中使用预测方法的重要例子:贫困瞄准。在贫困瞄准中,我们的目标是找到那些特别需要支持的家庭。因此,我们可以有效地将其视为一个预测问题,其中感兴趣的结果是消费,我们可用的变量(即可用的特征)是我们拥有的任何特征,例如可用于瞄准的行政数据。因此,实际上,我们正在解决一个预测问题,右侧是家庭特征,左侧是消费(或者在这种情况下,我们使用对数消费)。

现在让我给你一个非常具体的例子,我们只用两个变量来预测对数消费。我们在这里考虑的两个变量是 x 轴上的居民人数和 y 轴上的房间数。在这里,我们通过颜色梯度将预测绘制为颜色。具体来说,我们看到了基于对数消费对常数项、房间数和居民数的线性回归的预测。我们看到,线性回归由于其构造方式,具有这些非常全局的梯度,在这种情况下转化为从左上角(消费被认为特别高)到右下角(消费被认为特别低)的梯度。然而,请注意,并非此图上的每个区域实际上都有我们样本中的家庭。因此,让我们只看样本中的那些家庭。

仅针对样本中的那些家庭,我们看到实际上很少有家庭同时拥有非常高的居民数和非常高的房间数,但有一些家庭居民数少而房间数多,也有一些家庭房间数少而居民数多。

那么,让我们看看这种试图拟合这两个变量与对数消费之间全局关系的线性回归,与我们样本中的实际消费值相比如何。在左侧,我绘制了预测消费,在右侧,我们看到的是实际消费。我们看到这大致吻合,是的,在左上角,消费确实非常高,这些是居民数少、房间数多的人。在右侧,居民数非常多的地方,消费看起来确实非常少。然而,当我观察这一点时,我会认为左侧的线性关系在表达这两个变量如何影响结果(这里不是消费)方面并不是很好。

具体来说,当我观察这个时,我会说可能存在一些交互作用,即房间数如何影响消费在很大程度上取决于居民数。具体来说,左侧有一个梯度。因此,对于较少的居民数,随着房间数增加,消费似乎上升。然而,这种关系在右侧不太明显。似乎基本上大多数生活在居民数非常多的家庭中的人消费较低或可能生活在贫困中。

换句话说,这里似乎存在一种关系,它是某种分箱(在居民数方面可能存在一个临界阈值)和一些交互作用(低消费与房间数之间的关系也取决于居民数,而不仅仅是线性回归建模的简单相加方式)的组合。

我们现在可以采取的一种方法是退一步说,这个特定的函数看起来效果不是很好,那么我们为什么不尝试一些其他线性回归,例如,我们手动创建一些这样的特征。我们可以手动创建一些这样的分箱,然后在我们的线性回归中包含交互项。然而,这听起来非常繁琐,并且不清楚当变量远不止这两个时,我们是否能够很好地完成这个迭代过程。

相反,我现在建议使用一种自动搜索这种交互作用的方法,具体来说,我现在想介绍回归树

回归树的工作原理 🍃

回归树试图拟合与到目前为止我们讨论的线性回归类型估计量不同的函数形式。

具体来说,回归树通过递归地跨不同特征进行分割来预测结果,创建一个决策树,其中每个分割对应于询问一个特征是否低于或高于某个阈值,然后通过在最终叶节点中对落入该叶节点的所有实例取平均值来形成预测。

让我们看一个具体例子。在这种情况下,假设我们想预测房价,我们面前看到的这个回归树意味着,如果浴室数量低于 1.5(换句话说,如果浴室数量是 0 或 1),那么平均房价(对数单位)是 9.4。或者,如果浴室数量至少为 2(意味着我们向右走),那么平均房价(对数)约为 10。

这将给我一个预测函数。但是,当然,我可能希望得到更精确的预测。所以我可以在我们的预测函数中添加更多层,现在创建一个完整的决策树,将不同的特征映射到叶节点中的预测。

在这种情况下,这个决策树不仅会考虑连续变量,还会考虑一些离散变量,因此它将能够以下列方式分割。如果我有一个实例(在这种情况下是一栋房子),其中浴室数量低于 1.5(意味着浴室数量为 0 或 1),并且楼层类型为 4、5 或 6,那么预测的房价(对数)将为 9.1。然而,例如,如果我有一栋有 7 个浴室的房子(这意味着我会在顶部向右走),那么我也会在底部向右走。所以,我的预测房价将是 11。原则上,我可以进一步扩展这些回归树,添加更多层。那么让我们看看这种方法在我们之前的贫困预测例子中表现如何。

在左侧这里,我绘制了 OLS 拟合值,我们看到,由于 OLS 的性质,OLS 试图拟合一个全局梯度,这意味着居民数和房间数的边际贡献不受这些变量取值的影响。

回归树走向另一个极端。回归树递归地拟合一棵树,试图通过递归分割从而找到交互效应来尽可能好地解释结果。例如,这棵树首先按居民数分割,然后在居民数内部,如果居民数非常低,则开始按房间数分割;而如果居民数较高,可能会再次按居民数分割。因此,它能够表达这两者之间的强烈交互效应,具体来说,对于低居民数,相对于房间数的梯度看起来与高居民数时截然不同。确实,看起来在这些数据中,高居民数本身已经表明消费低,而只有在居民数较少的家庭中,我们才看到相对于房间数的清晰梯度。

寻找最优树与交叉验证 🔄

我现在想讨论如何找到一棵最优树。具体来说,找到一棵好树面临两个挑战。第一个挑战实际上是计算上的。找到一棵最优拟合的树并不容易。我们通常通过使用贪婪优化算法来解决这个问题,该算法递归地找到一棵树,这是我多次顺便提到的。这只是说,与其找到一棵整体最优的树,我们通过总是向前一步做最好的事情来找到一棵树,但不一定是整体最好的事情。换句话说,我们通过首先在第一次分割中跨看起来最好的变量进行分割来拟合树,然后在每个叶节点中再次按在该叶节点内看起来最好的变量进行分割,然后在第三层在各自叶节点内看起来最好的变量内再次拟合,而不考虑我将进一步分割叶节点,只是向前一步。这是第一个挑战。

第二个挑战是,我该在哪里停止?我可以简单地继续越来越多地分割。例如,在这种情况下,在左下角的叶节点,我可以比在该点分割的那两个或三个变量更进一步地分割。换句话说,为什么我们不简单地继续越来越多地分割,直到每个叶节点中只剩下一栋房子?

答案相当直观。如果每个叶节点中真的只剩下一栋房子,我们将能够完美地拟合我们已经看到的任何数据。但同时,这极不可能产生良好的样本外预测,因为对于一栋我们尚未见过的房子,它最终所在的叶节点可能只有另一栋房子,而这另一栋房子可能完全不同,这可能是一个非常糟糕的预测。

因此,换句话说,我们再次看到这里存在近似与过拟合的权衡。例如,在这种情况下,我们允许树拥有的层数(即它可以分割的层数)决定了近似程度,但也决定了过拟合程度。我们拥有的层数越多,近似就越好,这棵树就越能潜在地拟合任何甚至非常复杂的关系。但同时,我们得到的过拟合也越多。因此,这种拟合可能越特异,这实际上可能使我们的样本外预测更差。

因此,和以前一样,我们有以下结构:我们有一个函数类(这里的函数类是回归树的函数类);我们有一个正则化器(例如,可以是树的层数,也可以是我在停止分割前希望每个叶节点中至少拥有的最小实例数);最后,我们需要一个算法来实际为我们解决那个问题,在这种情况下我简要提到,是一个贪婪算法,即一个近似算法,即使结果不一定是最优的,也能给我们一个好的结果。

这意味着这棵树非常遵循与 Ridge 回归和 LASSO 回归相同的结构,尽管函数类非常不同,并且使用的正则化器当然也特定于该函数类。

然而,就像在 LASSO 回归或 Ridge 回归的情况下一样,对于树,我告诉过我们应该正则化,即我们应该选择一个复杂性参数以避免复杂性太高,但我实际上没有告诉你如何选择那个正则化参数。我没有告诉你如何为 Ridge 和 LASSO 选择表达复杂性代价的 λ,也没有告诉你如何选择我们的树应该拥有的层数。

在我告诉你这在机器学习中是如何完成的之前,我想让你思考一下:你会如何选择正确的参数?这里有一个我们可以使用的技巧。

假设我们将数据分成两部分。正如我们之前的图片中所做的那样,我们在一些数据点上拟合我们的数据,然后我们使用其他一些数据点来查看我们做得如何。之前我在 8 个数据点上拟合了我们的数据,然后查看了另外 8 个数据点以了解我们做得如何。现在,我们对我们考虑的所有不同复杂性重复此操作。在之前的理想化例子中,我们首先考虑了一个简单的回归线(它是线性的),然后考虑了一个抛物线(即 2 次多项式),然后我们还考虑了一个 4 次多项式。

与其将选择复杂程度的指导仅仅基于样本内拟合(这只发生在蓝点内部,这只告诉我们更复杂是好的),我们现在可以简单地使用那些红点上的拟合,并说:我们在尚未见过的数据上表现如何?当然,如果你有很多数据,这是一件很棒的事情。这意味着我们仍然可以使用大量数据来拟合我们的函数,然后使用大量数据来查看我们做得如何,这将使我们能够最优地选择我们的正则化参数。

然而,在实践中,数据通常是稀缺的。让我们考虑一种情况,我们实际上没有奢侈地拥有那 8 个点再加上额外的 8 个点,所以我们没有蓝点和额外的红点。但假设我们只有那些蓝点,即我们已经用来拟合数据的那些点。那么,为了获得关于选择哪个正则化参数的信息,我们可以做些什么不同的事情呢?

这个问题的答案是,我们可以通过重复我们在这里运行的保留练习来使用一个技巧,即我们保留一些我们尚未查看的数据用于预测练习,并在我们已经看到的点内重复相同的样本内操作。

具体来说,我们可以做以下事情:在我们之前用来拟合回归线的 8 个点中,我们每次保留其中两个。所以第一次我们做的时候,你在左上象限看到的这两个红点,这两个我们不包含在拟合回归线中。相反,我们用它们来评估样本外拟合。当我们第二次做的时候,我们保留另外两个点;第三次,另外两个点;第四次,另外两个点。换句话说,我们将我们的点集(在这种情况下)分成四组,每次我们保留其中一组,只使用所有其他组,然后我们评估我们做得如何。通过查看我们在这个保留练习中的平均表现。

这被称为交叉验证。当我们考虑如何选择正则化参数时,我们可以通过进行保留样本来做到这一点(即我们通过简单地不使用某些点进行拟合来在我们的样本中创建一个样本外集),但为了避免损失大量样本量,我们可以将其扩展到交叉验证,这意味着我们在样本内创建重复的保留。

这就是它的样子:我们创建折(这里折是四折)。每次我们只使用不在当前组中的数据来拟合我们的函数(所以在每种情况下这都是红数据),我们保留当前活动折中的数据用于验证(这里我们将保留第一折)。然后我们计算我们的误差(即当我们从红点预测到绿点时产生的损失),然后我们通过平均所有折上的误差来评估我们的整体拟合,从而产生一个误差,平均而言,它给出了我们的函数在样本外表现如何的答案。

因此,机器学习的“秘方”至少包含一个额外的成分。除了使用非常灵活的函数形式和使用正则化限制表达能力之外,一个关键要素也是使用数据来学习实际应该正则化多少,这称为调参,通常我们通过交叉验证来完成,这是我刚刚简要介绍的方法。

机器学习预测的典型流程 🏗️

因此,这里是一个机器学习预测练习的典型结构,它也适用于你将在未来网络研讨会中听到的许多应用。

我们通常将样本分成两部分:一部分用于拟合我们的函数,第二部分保留用于最终验证。在拟合样本上,我们的目标是获得一个预测函数 ,我们首先运行交叉验证以找到我们想要用于函数复杂性的参数。换句话说,我们使用数据驱动的调参(通过交叉验证)来确定我们的正则化参数。然后我们拟合该函数,然后使用该函数,并估计其最终属性,例如,它在保留样本上的损失。

那么,为什么我们在这里保留一些额外数据很重要?尽管我们尽了最大努力并在拟合样本中使用了交叉验证,但由于我们现在基于数据本身选择了所有调参参数,我们在交叉验证中获得的损失可能仍然是乐观的,因为它是根据我们损失测量在交叉验证中的最佳可能调参选择来评估的。因此,当我们做这样的工作时,保留一些我们尚未接触的最终数据来验证我们实际做得如何总是很重要的。

这就是防火墙原则发挥作用的地方:只要我们确保除了用于最终验证最终函数之外,我们没有使用额外的保留样本,我们根本没有使用它来选择函数。只要满足这一点,那么非常简单的计量经济学保证确保我们的最终损失估计(例如)是无偏的,并且可以用有效的标准误差很好地估计。而我们在拟合样本上所做的任何事情都不必遵循任何特定的协议,但可以包括尝试一些不同的方法,因为这不会影响我们的最终估计。

因此,在我看来,这给了计量经济学在那个防火墙的两侧两个不同的角色。首先,我们当然希望能够保证我们的预测函数最终表现如何,我们通过获取一个保留样本并使用(例如)有效的标准误差为我们的函数在保留样本上的性能创建置信区间来实现这一点。同时,在拟合样本中,计量经济学可以极大地帮助更好地理解在某种情况下哪种函数可能表现良好。然而,最终,哪个函数更好纯粹是一个经验问题。这是一个关于哪个函数在样本外表现良好的问题,并且我们可以证明具有良好的样本外特性,假设我们的唯一目标确实是找到一个能很好预测样本外的预测函数。因此,这在一定程度上解放了我们在拟合样本上可以做的事情:我们可以使用不同的函数形式,看看其中哪些看起来最好,我们甚至可以组合其中的多个,这是我稍后会回过头来讨论的一点。

更广泛的机器学习方法 🌐

到目前为止,我认为我们遇到的两种机器学习方法(特别是正则化线性回归和回归树)具有共同的结构。它们结合了非常灵活的函数形式、一个正则化器(即限制表达能力的方式),以及一种使用数据来决定允许多少灵活性的方式。

当然,这里有一些重要的研究者选择。首先,我们必须实际知道我们想要为哪个函数类进行优化。这可能取决于我们的具体应用。其次,我们必须确保我们以某种方式分割和管理数据,使得最终估计实际上代表了我们关心的损失的估计,例如,我们确保以代表我们最终想要使用预测函数的方式来预测感兴趣的结果。另一个重要的选择是我们如何在数据中表示特征。特别是对于线性回归,结果可能看起来截然不同,这取决于我们如何表示 X 变量中的信息。最后,重要的是,我们必须首先决定使用哪个函数类和哪个正则化器。

正如我所说,到目前为止,我专注于系数限制给定的线性回归,以及树(其中作为正则化器,例如,我讨论了树拥有的层数或每个叶节点中至少应有多少实例)。

我现在想论证,这种结构更为普遍,并且包含许多其他机器学习预测方法。

具体来说,我们可以通过函数类和正则化器的组合来表征许多可用的方法,并且在许多情况下,还有使用哪种优化算法的额外层次。

让我给你一个极端的例子。对于我们在第一个模块中讨论的神经网络,有不同的方法来正则化它们。首先,请注意,神经网络基本上类似于逻辑函数的逻辑函数的逻辑... 所以它是一个依赖于输入函数之函数的函数... 因此,这些神经网络可以变得任意复杂,我们添加的层越多。这已经暗示了第一种正则化方式,即限制这些层的数量:层数越少,神经网络的表达能力就越弱。同样,层之间的连接越多,神经网络的表达能力就越强,因此也可能更容易过拟合。这可能是一种相当明显的正则化方式,但也有一些不那么明显的方式。这里有一个特别聪明的方法。

一种聪明的正则化方式称为早停。它说,与其越来越多地优化神经网络,我们为什么不在某个水平停止优化算法,例如,在一定的步数之后。这将意味着我找到的最优解实际上不是样本内的最优解,而是在试图最优拟合样本内拟合之前就停止了。这听起来像是放弃正确优化,但它实际上具有正则化的特性。它具有通过不过度正则化(不过度优化)来避免过度过拟合的特性,并且具有不需要那么多优化步骤因此运行更快的额外特性。

模型组合:集成方法 🤝

除了这些不同的机器学习预测器之外,我们还可以将来自不同函数类的机器学习预测器相互组合。在这种情况下,例如,我们可以使用这些不同预测之间的加权平均,其中我们以与选择某些正则化参数相同的方式选择权重本身(例如,通过交叉验证),以找到在预测方面特别有效的组合。

现在,平均而言,这些集成方法表现相当好可能并不奇怪,因为它们基本上投资于不同预测算法的组合。更令人惊讶的可能是,这样的集成方法基本上在预测竞赛中始终优于每个单独的预测器,包括最好的那些。这表明不同函数类的预测算法之间存在某种互补性。

我们可以组合模型的第二种方式是组合相同类别的模型。一些最成功的、开箱即用的机器学习算法(在我们经常处理的那种社会科学数据上表现特别好)实际上是我们将多棵树组合成更复杂预测器的方式。

我们可以做到这一点的第一种方式称为装袋自助聚合。在回归树的情况下,将许多树聚合在一起将被称为随机森林。因此,与其运行一棵简单的回归树(我们只取一棵树),我们反复从数据中抽取自助样本。然后我们从每个自助样本中构建树。当我们形成预测时,我们只需平均这些不同树的预测。

因此,以前我们获得来自线性回归或单棵树的预测,现在我想向你展示当我们从随机森林形成预测时,在贫困预测(或在这种情况下根据居民数和房间数预测消费)的情况下是什么样子。正如你所看到的,通过组合许多树, resulting 的图片实际上相当平滑。这里有一些奇怪的区域,看起来房间数多且居民数多时,预测的对数消费突然再次上升并且是非单调的,我最好的猜测是这只是因为该区域没有足够的数据。但当我看这里的大图时,它既能够捕捉居民数和房间数的交互效应,也能够捕捉左侧房间数的梯度,其方式比单棵树平滑

004:应用机器学习——预测与估计

在本节课中,我们将要学习机器学习在应用中的核心区别:预测与估计。我们将探讨机器学习为何擅长预测,以及为何其输出通常不适合直接用于传统的参数估计和因果推断。

概述

在上一节中,我们介绍了机器学习如何通过灵活的函数形式、正则化和数据驱动的调优来实现出色的预测性能。本节中,我们将深入探讨这些特性对模型输出的影响,并明确区分预测问题和估计问题的目标差异。

机器学习输出的解读

现在,假设我们已经找到了一个性能优异的预测函数 f_hat。这个函数可能是一个正则化线性回归(如Lasso或Ridge),也可能是一个随机森林或提升树模型。我们能否从这个函数 f_hat 中学习到关于真实世界的知识?

具体来说,我们常常希望利用拟合出的 yx 的关系函数,来对条件期望 E[y|x] 进行推断,即理解 yx 之间最优的真实回归关系。当模型输出形式常见时(例如正则化线性回归本身就是线性形式),这种诱惑尤其强烈。问题是,我们能在多大程度上使用这个正则化线性回归的系数来说一些关于世界的事情?例如,哪些协变量真正重要,甚至说明 xy 之间的因果关系?

在典型的计量经济学中,我们关心这些系数的以下性质:

  • 我们想知道系数是否有偏,即它平均而言是否接近真实值。
  • 我们想知道系数是否一致,即在大样本下是否很好地逼近真实系数。
  • 我们可能还想进行统计推断,例如建立渐近正态性、计算标准误或进行假设检验,以便从数据中了解真实参数 beta
  • 最后,我们可能希望理解估计的稳健性,例如我们的结论是否依赖于数据的某些特定特征,或者在某些假设不完全成立时是否依然能很好地推广。

以Lasso为例:预测与估计的冲突

为了研究我们是否能像使用线性回归那样,用机器学习的输出来了解世界,我们从Lasso开始,因为它产生的输出看起来非常相似。

Lasso拟合一个线性回归,并附加一个约束:系数不能太大。这使我们即使在回归中包含大量 x 变量时也能拟合Lasso,并以一种平衡函数表达能力(复杂度)与过拟合风险的方式进行。参数 lambda 越高,复杂度的成本就越高,系数就会越小,可能为零的系数也越多。具体来说,Lasso不仅会收缩系数,还会进行变量选择,即许多系数可能为零。如果有多个系数能产生相似的预测结果,Lasso可能会“资本化”,只选择一个“赢家”并将所有权重赋予它。

在一个预测违约概率的例子中,我们使用包含80个变量的数据集。与OLS相比,Lasso通过惩罚过大的系数(在Lasso中,也隐式地惩罚了大量非零系数),只使用这些变量的一个子集。人们希望由此产生的稀疏解能告诉我们哪些变量是重要的。

然而,当我们对同一数据集的不同随机子集多次运行Lasso(即使保持惩罚参数 lambda 不变)并检查每次运行中被选择的变量时,结果令人深思。虽然有些变量被持续选择,有些被持续排除,但许多变量在某些次运行中被选择,在另一些次中则不被选择。这表明,在高维数据中,由于协变量之间可能存在高度相关性,Lasso选择的变量集合可能非常不稳定。

以下是可能发生的几种偏差:

  • 压缩偏差:如果 x2x3 高度相关且都影响 y,Lasso可能只包含 x2,因为 x2 已经可以很好地表达 x3 的大部分影响。这减少了复杂度成本,却没有使预测差很多。这导致被包含的变量集合是真实模型的一个子集。
  • 扩张偏差:一个不在真实模型中的变量 x1 也可能被包含进来。如果 x1 恰好与真正影响 yx2x3 的组合高度相关,那么单独包含 x1 可能比单独包含 x2x3 预测得更好。由于包含 x2x3 两者成本很高,Lasso可能倾向于只包含那个与两者都相关、能较好解释结果的变量 x1
  • 系数大小的偏差(遗漏变量偏差):即使 x3 未被选择,这并不意味着变量 x2 的系数能被正确估计。通过排除 x3,Lasso也会导致 x2 的系数产生遗漏变量偏差。Lasso通过排除变量,主动地产生或鼓励了遗漏变量偏差。
  • 收缩偏差:即使 x2x3 都被选中,向零收缩也会带来一些偏差,但这通常比遗漏变量偏差的误导性要小。

在高维情况下,这种相关性经常发生,因此我们必须意识到此类偏差可能发生,并在解释时非常谨慎。

Ridge回归与树模型的类似问题

Ridge回归本质上倾向于“平均主义”,通过惩罚系数的平方和来平滑系数。在一个简单的两变量例子中(假设结果仅依赖于 x2),我们可以明确写出 x1x2 的系数如何随 x1x2 之间的相关性以及正则化参数变化。这里也会出现扩张偏差(Ridge给本不重要的 x1 赋予权重)和收缩偏差(x2 的系数被低估)。

这种行为并不局限于线性回归类估计器。例如,查看拟合回归树时选择的顶部变量,也会发现类似的不稳定模式:有些变量被频繁选择,但许多变量只是有时被选择。仅仅观察一棵树不太可能告诉我们底层稳定的真实关系,因为它会随着数据抽样的不同而频繁变化。

核心结论:区分预测与估计

从以上所有分析中,我的核心结论是:我们应该仔细区分,不仅是我们使用的方法,还有这些方法试图回答的问题。

具体来说,我想区分以下两个目标:

  1. 预测的目标:我们关心的是样本外损失最小化。
  2. 估计的目标:我们关心的是对系数的推断,并找出哪些 x 具体影响了 y

在高维情况下,即使系数不稳定、有偏、不一致,我们仍然可以处于一个预测良好的世界。因为在大数据中,许多看起来相当不同的函数可以具有相似的预测属性,很难区分它们,因此也很难进行良好的估计。

我的重要结论是:正是那些使机器学习预测如此成功的特性(复杂性、正则化、调优),也使得估计变得困难。它们使得理解系数、解释系数变得更加困难(因为偏差),也使得进行统计推断变得更加困难(因为我们使用了数据驱动的调优)。

因此,机器学习在解决 “y-hat”问题(即寻找良好预测的问题)方面非常出色,但其本身并非为解决 “beta-hat”问题(即对参数进行推断的问题)而构建。

术语澄清

  • 预测:我指的是在分布保持不变的情况下,能否在来自同一分布的新数据上获得 y 的良好拟合。这不是一个需要结构或因果知识的反事实问题(例如“如果政策改变,明天会发生什么”),而是纯粹的拟合问题。
  • 估计:我指的不仅仅是近似最优预测函数(机器学习在这方面很擅长),而是指像估计一致性这样的性质,即系数在并非由预测损失隐含的某种范数下接近真实系数。机器学习通常不擅长提供这种保证。

对实际工作的启示

机器学习提供了高质量的预测(y-hat)。虽然预测质量可以通过保留集(如验证集)获得一定的统计保证(例如,能以某种统计不确定性说明其预测至少有多好),但通常没有关于估计质量的保证,也没有估计一致性。至少,建立估计一致性(系数收敛到真实系数)比建立预测一致性要困难得多。

因此,当我们查看机器学习输出时,我们不应将其解释为结构性的或因果性的(即 x 如何与 y 相关),而应将其视为它本来的样子:一个出色的预测器。

另外,对 f_hat 进行统计推断也非常困难,因为许多机器学习方法非常复杂,且使用了数据驱动的调优,因此很难使用像自助法这样的工具,而且自助法通常可能失败。

机器学习的适用场景

那么,我们可以在哪里使用机器学习呢?我认为应该将其用于预测问题,并询问哪些是有趣的预测问题。以下是一些案例:

以下是几个主要的应用方向:

  1. 数据预处理:例如,处理文本数据、图像数据,将非常复杂的数据简化为最重要的组成部分。这通常可以转化为预测问题(例如,从卫星图像数据预测作物产量或经济结果,然后使用处理后的图像数据作为代理变量)。
  2. 本质上是预测任务的问题:即预测本身就是感兴趣的问题。这类问题也被称为“预测性政策问题”。一个很好的例子是贫困目标定位:我们需要了解哪些家庭可能消费水平低,以便决定帮助哪些家庭。虽然理解什么导致低消费也很有趣,但对于“应该向哪里提供帮助”这个目标定位问题,拥有一个良好的预测可能最为重要。
  3. 作为更复杂问题的一部分:在许多我们关心某些参数的问题中,可能存在一些隐含的预测问题,例如使用高维变量作为控制变量、用于倾向得分、或作为高维工具变量。在我的同事Susan Athey接下来的讲座中,将专门讨论如何将两者结合,即如何使用机器学习的工具、技术和思想来增强因果推断。这通常需要针对特定任务仔细调整机器学习方法,而不是简单地直接使用现成的模型。

总结

本节课中我们一起学习了机器学习在应用中的核心分野。我们首先回顾了机器学习通过灵活性、正则化和数据驱动调优获得良好预测的原理。然后,我们深入探讨了这些特性如何使模型输出(如Lasso的系数)不稳定、有偏,从而不适合直接用于传统的参数估计和因果推断。核心在于明确区分了预测(关注样本外损失最小化,得到好的 y-hat)和估计(关注参数推断,得到好的 beta-hat)这两个不同目标。最后,我们指出了机器学习在纯粹预测任务、数据预处理以及作为复杂因果推断框架组成部分等方面的正确应用场景。记住,机器学习是出色的预测引擎,但并非现成的因果推断或参数估计工具。

005:平均处理效应导论

概述

在本节课中,我们将开始学习如何将机器学习方法应用于因果推断的核心任务——估计平均处理效应。我们将从理解平均处理效应的基本概念开始,并探讨在随机试验中如何估计它。

从预测到因果推断

上一周我们回顾了机器学习方法,它们主要用于预测任务,即基于历史数据理解在给定情境下通常会发生什么。然而,在许多经济或社会科学应用中,我们关心的是因果问题。我们不仅想知道在某种情况下通常会发生什么,更想知道如果我们采取某种干预措施(例如减少道路上的汽车数量),情况会发生怎样的改变。这是一个不同性质的问题。

在本课程中,我们将看到,如果处理不当,将原本为预测设计的机器学习方法直接应用于因果任务可能会带来问题。但与此同时,如果方法得当,机器学习方法可以被有效地调整以用于因果任务,并发挥巨大作用。

本周目标与课程结构

本周,我们的目标是理解如何严谨地将机器学习方法部署于估计平均处理效应这一经典任务。我们将介绍一种基于“双重稳健估计”的方法论,该方法可以将通用的“黑箱”式机器学习估计作为输入,并输出具有有效置信区间的估计结果。

我们将通过四个部分来达成这个目标:

  1. 第一部分(本部分):介绍平均处理效应的概念,并讨论在随机试验背景下如何思考它。
  2. 第二部分:探讨一些使用机器学习进行处理的简单思路,并与经典的基于回归的方法进行比较。
  3. 第三部分:介绍倾向得分方法及其相关的估计工具。
  4. 第四部分:将前两部分的方法结合,介绍“双重稳健”方法。这是实践中推荐使用的方法。

平均处理效应的定义

我们采用一个经典的统计设定。假设我们有 N 个独立采样的单元。对于每个单元 i,我们观察到一个特征向量 X_i(背景信息)、一个响应变量 Y_i(我们希望通过处理来改善的结果)和一个二元处理变量 W_i(0 表示未处理/对照组,1 表示处理/处理组)。

为了讨论因果关系,我们引入“潜在结果”的概念:Y_i(0)Y_i(1)

  • Y_i(0) 表示如果单元 i 接受控制(W=0)时,我们将会观察到的结果。
  • Y_i(1) 表示如果单元 i 接受处理(W=1)时,我们将会观察到的结果。

那么,我们实际观察到的结果 Y_i 就是对应于其实际接受的处理 W_i 的那个潜在结果:Y_i = Y_i(W_i)

潜在结果的有用之处在于,它们能让我们直接定义因果效应。对于单元 i,处理的因果效应就是其两个潜在结果之间的差异:τ_i = Y_i(1) - Y_i(0)

平均处理效应(ATE)就是这些个体处理效应在整个抽样分布上的平均值:
τ = E[Y_i(1) - Y_i(0)] = E[Y_i(1)] - E[Y_i(0)]

平均处理效应通常被视为衡量一个处理在特定人群中有效性的首要且有用的概括性指标。

核心挑战:缺失数据问题

估计平均处理效应并非完全 trivial,核心困难在于“缺失数据问题”。对于每个单元,个体处理效应 τ_i = Y_i(1) - Y_i(0) 是两个结果(处理下的结果和未处理下的结果)的差值。然而,我们永远只能观察到其中一个:要么观察到 Y_i(1)(如果被处理),要么观察到 Y_i(0)(如果在对照组)。我们永远无法同时观察到两者。正是这个根本性的缺失问题使得估计平均处理效应变得有趣且具有挑战性。

最简单的情况:随机试验

作为热身,让我们先讨论能够估计平均处理效应的最简单情况——随机试验。

在随机试验中,处理分配是随机的。这意味着谁接受处理、谁接受控制是完全随机决定的,处理分配与单元的潜在结果之间没有关联。可以想象为,对每个人抛一枚硬币,正面则分配处理,反面则分配控制。

随机试验之所以有效,是因为在随机化条件下,我们可以证明平均处理效应 τ 等于处理组观测结果的平均值与对照组观测结果的平均值之差:
τ = E[Y_i(1)] - E[Y_i(0)] = E[Y_i | W_i=1] - E[Y_i | W_i=0]

这个等式的关键在于第一步:由于处理是随机的,所以整个样本中 Y_i(1) 的平均值,等于在 W_i=1 条件下 Y_i(1) 的平均值。第二步则是根据定义,当 W_i=1 时,我们观察到的 Y_i 就是 Y_i(1)

这意味着,尽管存在根本性的缺失数据问题,但在随机试验中,我们可以通过简单地计算处理组和对照组的平均结果之差,来无偏地估计平均处理效应。

示例说明

假设我们想了解交通限行对空气质量的影响。在理想情况下,一位“全知”的统计学家每天都能看到两个潜在结果:有限行时的污染水平 Y_i(1) 和无限行时的污染水平 Y_i(0)。个体效应是 τ_i = Y_i(1) - Y_i(0),平均处理效应 τ 就是所有 τ_i 的平均值。

然而在现实中,即使是最好的随机试验数据,我们每天也只能根据抛硬币的结果,观察到 Y_i(1)Y_i(0) 中的一个,永远看不到 τ_i。但根据上述理论,我们仍然可以通过计算“有限行日”的平均污染水平减去“无限行日”的平均污染水平,来估计平均处理效应 τ

非随机试验的挑战

我们并非总是处于随机试验中。在观察性研究中,处理分配通常不是随机的,而是与某些“混杂因素”相关。

考虑一个简单的例子:我们想了解某种预防肥胖的治疗对“质量调整生命年”的影响。我们没有随机试验数据,只有电子病历记录,其中治疗由医生根据情况决定。医生很可能不会随机分配治疗,而是优先将治疗分配给体重较高的患者。

假设治疗实际上完全无效,即对每个患者都有 Y_i(1) = Y_i(0)。但由于医生倾向于治疗体重更高的人,而体重与结果(生命年)可能存在负相关,导致处理组的平均体重高于对照组。如果我们简单地计算处理组与对照组的平均结果之差,可能会发现处理组的结果更差,从而错误地得出治疗有害的结论。这实际上反映的是“选择偏差”,而非真实的因果效应。

总结

在本节课中,我们一起学习了:

  1. 因果推断的核心:从预测“通常会发生什么”转向理解“如果采取干预会怎样”。
  2. 平均处理效应(ATE):定义为个体潜在结果差异 Y_i(1) - Y_i(0) 的总体平均值,是衡量处理效果的关键概括指标。
  3. 估计ATE的核心挑战:缺失数据问题——我们永远无法同时观测到同一个体的 Y_i(1)Y_i(0)
  4. 随机试验的解决方案:在处理随机分配的条件下,ATE 可以简单地通过处理组与对照组的观测结果均值之差来无偏估计:τ = E[Y|W=1] - E[Y|W=0]
  5. 观察性研究的挑战:当处理分配非随机,并与影响结果的混杂因素相关时,简单的均值比较会产生偏差,导致错误的因果结论。

在下一节中,我们将开始探讨当处于非随机试验(观察性研究)时,如何从概念和统计上解决估计平均处理效应的问题。

006:平均处理效应与混杂

在本节课中,我们将学习如何在非随机试验中估计平均处理效应。我们将重点讨论混杂问题,并介绍一种通过控制可观测协变量来识别处理效应的方法。我们还将探讨如何使用线性回归和机器学习方法来估计这些效应,并比较它们的优缺点。

上一节我们讨论了平均处理效应和随机对照试验。我们解释了为什么在随机试验中估计平均处理效应非常理想。但我们也提到,并非所有需要估计平均处理效应的场景都是随机试验。

那么,我们的下一个问题是:在非随机试验中,我们能做什么?

现在我们要关注的是这样一种情况:我们观察到一些处理前的协变量 X,并且我们担心处理分配并非完全随机,它可能与这些协变量 X 相关联。在这种情况下,我们需要控制这些协变量。如何最好地做到这一点,正是我们要探讨的方向。特别是,我们将看到机器学习如何融入这个过程。

在深入之前,显然有一个问题:在什么条件下,控制这些 X 就足够了?在什么条件下,引入这些 X 能帮助我们识别平均处理效应,即使我们不在一个随机试验中?我们需要明确这一点。

因此,我将贯穿始终使用一个假设,这个假设被称为无混杂性。该假设认为,处理分配在整体上可能不是随机的,但一旦你控制了协变量 X,处理分配就“如同随机”。在给定 X 的条件下,处理分配是随机的。

正如我将在接下来的几张幻灯片中讨论的,一旦你有了这个假设,控制协变量 X 就足以识别平均处理效应。然后,我们的主要问题就变成了:既然平均处理效应是可识别的,我们如何估计它?

为了更正式地描述这个假设,即“在给定已测量的协变量 X 的条件下,处理分配如同随机”,我们需要明确其含义。我们将沿用之前的设定:我们有 XYW,其含义与之前相同,潜在结果的定义相同,平均处理效应的定义也相同。

但我们不再像之前那样假设进行的是随机试验。随机试验的假设是处理分配 W 独立于潜在结果。现在我们不假设这一点,而是只假设:一旦你控制了 X,对于 X 的每一个固定值,数据看起来就像是来自一个随机试验。这个假设也被称为“选择基于可观测变量”或“无未测混杂”。这意味着,如果存在任何与处理分配 W 相关的变量,并且这种关联使你偏离了随机试验的假设,那么你需要能够测量这些变量并控制它们,以便进入这个理想的设定。

这里你可能有一个疑问:我们担心的是混杂问题,而这个假设被称为“无混杂性”,这是怎么回事?关键在于,如果处理分配概率 W 可能随 X 变化,那么总体上你是存在混杂的,你不具备随机试验类型的假设。但一旦你将 X 纳入考虑,一旦你控制了 X,那么在给定 X 的条件下,处理分配看起来就如同随机。所以,在控制 X 之前你是混杂的,但控制 X 之后你就达到了无混杂状态。这就是这个假设的含义。

这个假设非常重要。它并非在所有应用中都成立,例如在工具变量问题中,你感兴趣的是这个假设不成立的情况。但在许多感兴趣的场景中,它是成立的。本周接下来的课程都将围绕在这个假设成立时,如何推断平均处理效应。

好的,我们有了一个假设,很好。我们也有了一个问题。现在,我们如何进行?如何估计潜在的平均处理效应?

从这里出发有很多方法。我现在要讨论一种方法,在第三部分讨论另一种方法,而双重稳健方法可以结合这两种思路以获得更好的效果。

让我们从一种思路开始。其核心观点是:在这个一般的无混杂性设定下,平均处理效应并不等于 YW=1 条件下的平均值减去 YW=0 条件下的平均值,这是我们上一部分最后一张图看到的情况。

但你可以尝试进行类似的推导,现在重新表达平均处理效应是什么。如果你上过概率论课程,这会很好理解。否则,我希望你能接受推导的最终结果是合理的。我们将在这里应用条件期望的迭代法则,一旦我们条件于 X,这里的这三行本质上与之前的证明相同。它们说明,在给定 X 的条件下,接受处理的潜在结果的期望值,等于在给定 X 且接受处理条件下 Y 的期望值。

推导的最终结果是,我们发现平均处理效应可以表示为这些条件响应函数之差的期望。其中,μ_w(x) = E[Y | X=x, W=w]。所以,μ_w(x) 是非参数回归问题的解,我们试图从 XW 预测 Y

这个计算表明,在无混杂性假设下,平均处理效应是:在给定 X 的情况下,如果你知道 μ_1(x)μ_0(x) 函数,那么对个体在治疗和对照下的最佳预测结果之差的期望。这是对 τ 的一种刻画。

我们如何将其转化为一种估计策略呢?至少,这个符号强烈暗示了一种方法:μ_w(x) 是一个非参数回归问题,所以你可以尝试解决它。真实的 τμ_1(x)μ_0(x) 之差的期望。那么我们可以尝试从数据中估计 μ_0(x)μ_1(x)μ_0(x) 是在对照组中,给定 X=xY 的期望。你可以通过学习在对照组中从 X 预测 Y 来学习 μ_0(x)。类似地,学习 μ_1(x)。然后,通过在整个数据集上取这两个回归函数预测值的平均差来估计 τ_hat

到目前为止我所展示的是,如果你使用真实的 μ_0(x)μ_1(x) 来做这件事,那么这将是无偏的平均处理效应估计量。很明显,如果 μ_hat_w(x) 一致收敛于 μ_w(x),那么这个估计量对于平均处理效应是一致的。一致性是好的,但这能让你得到置信区间吗?这很复杂。

为了讨论这个策略有多好,为了总体上讨论通过取 μ_1(x)μ_0(x) 函数预测值之差的平均值来估计平均处理效应有多好,我们需要具体讨论在第一步和第二步中,你是如何得到这些 μ_hat 估计的。这里有很多不同的策略。

其中一种经典策略是使用线性回归,更正式地说,是普通最小二乘法。OLS 方法首先假设一个线性模型。记住,μ_w(x) 衡量的是在给定协变量值 x 和处理状态 W 的情况下,Y 的期望值。线性回归拟合线性函数,所以如果线性模型实际上是正确设定的,你就可以找到正确的函数形式。

我们首先假设 μ_w(x) 是正确设定的线性函数。然后,我们可以拟合 μ_0(x)x * β_0,等等。我们可以通过在对照组中回归 YX 来估计 β_hat_0,在治疗组中回归 YX 来估计 β_hat_1。这只是非常标准的操作。然后,一旦我们得到估计,我们可以像往常一样从线性回归中提取预测值。那么我们对平均处理效应的估计是什么?它只是线性回归预测值之差的平均值。你可以进行代数运算,这等价于取两个回归参数 β_hat_1β_hat_0 的差,然后与 X 的平均值 x_bar 进行内积。

这就是线性回归。它好吗?它坏吗?有什么优缺点?这里很清楚。线性回归本质上依赖于线性模型在这个设定下的正确设定。优点是:当线性模型正确设定时,这非常棒。它简单、熟悉、易于运行,具有良好的理论保证,以参数速率收敛,能给你想要的一切。缺点是:如果线性设定不成立呢?那么线性回归就不会给出正确答案。所以,如果你设定的参数假设是有效的,这非常好,否则就不是。这就是线性回归。

你还能做什么?我想很明显我要讲到哪里了。在这门课中,我们想使用机器学习,我们希望避免假设函数是线性的,除非我们有强有力的科学理由这样做。

所以,一个想法是:让我们遵循相同的策略,只是不再假设 μ_w(x) 函数具有线性形式并用线性回归拟合它们,而是假设它们是通用的,用机器学习来拟合它们,然后看看我们能得到什么。

这里需要强调一点:上周我们讨论了机器学习,有很多机器学习黑箱,如深度网络、提升树、随机森林、Lasso 等,可以帮助你从 X 预测 Y。表面上,我们并不是在做预测。表面上,我们试图得到的是这些条件响应函数 μ_w(x) = E[Y | X, W]。但请注意,在平方损失下,给定 XW 时对 Y 的最优预测是什么?它就是 E[Y | X, W]。所以,实际上,一个“先知”会预测 Y_hat_i = μ_{w_i}(x_i)。一个好的预测方法应该使用非常接近这些函数的东西进行预测。

因此,我们要做的是:选择我们最喜欢的机器学习方法来从 XW 预测 Y。通常,我会运行这个。你可以分别在治疗组和对照组中从 X 预测 Y,或者尝试为两者拟合一个联合模型。几周后我们会更多地讨论这一点。然后,你可以使用这些预测作为我们关心的函数 μ_0(x)μ_1(x) 的估计。接着,我们估计 τ_hatμ_hat_1(x_i)μ_hat_0(x_i) 之差的平均值。

具体来说,μ_hat_1(x) 是这样得到的:你问机器学习方法:“这里有一个协变量为 X_i 且接受了治疗的人,你对结果的预测是什么?”机器学习方法会告诉你这个值。然后,对于同一个人 X_i,现在我告诉你他们没有接受治疗,你能预测结果 Y 会是什么吗?机器学习方法会给出预测值。那么 τ_hat 就是这些预测值之差的平均值。

这里的希望是,机器学习方法应该能够在不建模 μ_0(x)μ_1(x) 函数具体形状的情况下实现准确的预测。所以,乍一看,如果机器学习方法是完美的,这几乎就像一顿免费的午餐?你不假设线性,但你仍然拟合了 μ_1(x)μ_0(x) 函数,然后你就可以进行了。让我们看看实际情况如何。

最简单的方法是尝试一下。我将尝试在整个过程中使用回归调整的形式,所以我将要考虑的所有估计量都将具有这种形式。然后,我将尝试两种不同的策略来学习 μ_hat:我们可以从线性回归中得到它们,或者从某种机器学习方法中得到它们。本周我将使用随机森林作为通用机器学习的一个标准方法,没有其他原因,只因为它们是机器学习方法,非常容易运行,调参很少,非常适合用作可重复示例。

好的,这是两种基本设定。然后我将在两个不同的模拟研究中讨论它们:一个是响应函数(治疗组和对照组中给定 XY 的期望)是线性的,因此线性回归是正确设定的;另一个是响应函数不是线性的。这将如何运作?

在幻灯片上,我简要展示了如何通过线性回归得到 τ_hat,以及如何使用随机森林得到它。我们的平均处理效应估计将是预测值之差的平均值。

我们将看什么设定呢?正如我提到的,我们将看一个线性设定和一个非线性设定。在线性设定中,YX 的响应是线性的,线性函数在治疗组和对照组中可能不同。在非线性设定中,YX 之间的关系是非线性的,这里有一个阶梯函数和二次项。线性回归无法捕捉这一点。

会发生什么?对于线性回归,这可能很熟悉。我在这里改变样本量,在低端我们有 100 个样本来估计平均处理效应,在高端有 1600 个。这里显示的是箱线图,它展示了在多次模拟中得到的平均处理效应估计值的分布。

首先要注意的是,无论样本量如何,箱线图总是以真实值为中心。通过线性回归得到的平均处理效应估计是无偏的。这很好,正如我们所希望的。当你获得更多数据时还会发生什么?你的估计总是无偏的,但箱线图会变窄,你变得更准确。在 100 个样本时,你平均上是正确的,但在大多数重复实验中你错得很远;而在 1600 个样本时,你平均上是正确的,并且大多数时候都非常接近真实值。这是你希望看到的。

在非线性设定中,线性回归是错误设定的,情况如何?有些事情看起来和以前一样:线性回归将给出相同的平均答案,无论样本量如何,随着你收集更多数据,它会越来越准确地给出那个答案。但你的问题是,线性回归的那个平均答案并不等于真实答案。这里真实的平均处理效应是零,在第一个设定中你平均上得到了零,而在这里你没有平均上得到零。这表明,如果线性设定不正确,线性回归在收集越来越多数据时是无望的,你无法得到正确答案。

那么随机森林呢?这实际上非常有趣。现在是一幅完全不同的图景。首先,记住在这里零是正确的。随着你收集更多数据,你在两种设定中都更接近正确答案,无论是在线性设定还是非线性设定中,你都收敛到正确答案。但是,这里存在一个需要处理的问题。我们没有像线性回归那样的情况:当模型正确设定时,你不仅更准确,而且在有限样本下也是无偏的。在这里,你总是收敛到正确答案,但在有限样本中你可能偏差很大。在线性设定中,我们看到,在我观察的所有样本量下,平均处理效应的点估计都系统地向上偏倚。它们完全不以零为中心。在非线性设定中,有趣的是,对于大样本量,处理效应估计更好地以正确答案为中心,但对于小样本,你也偏差很大。

这将是一个问题,正如我们将在后续部分看到的。这个问题的真正原因是,如果你只关心在非常大的样本中得到正确答案,这就不是问题。正如我所说,随机森林会给你一致性,一致性意味着在无限数据的极限下,你会得到正确答案。但通常当你运行这个时,你关心的不仅仅是收敛性,你想要一个好的收敛速率,你想要有效地使用你的数据,并且你想要即使在中等样本量下也能覆盖真实值的置信区间。问题在于,使用这种有偏的估计量,本质上它们不会有好的收敛速率,并且使用标准构造方法得到置信区间基本上是无望的。这是一个问题。

线性回归和随机森林之间的权衡是什么?线性回归赌一切是线性的。如果这个假设有效,你得到无偏性。我还没有展示置信区间的构造,但线性回归的无偏性与其置信区间有效密切相关。所以,如果线性假设有效,用线性回归一切都很完美;如果它失败,一切都失效了。这让我们进入计量经济学课程中可能非常熟悉的场景:你非常努力地思考设定一个参数模型,一旦你选择了正确的参数模型,估计就很容易了。但机器学习让你进入了一个不同的世界。线性回归取决于你是否写下了正确的模型,你要么在做正确的事,要么在做错误的事。但对于随机森林,你永远不会完全错误,但也永远不会完全正确。你永远不会完全错误,因为你总是会在无限数据下得到正确答案。但你通常以一种相当缓慢的方式达到那里。为了得到能有效使用数据的准确的平均处理效应估计或构建置信区间,你必须对此做些什么。

本节课中,我们一起学习了在非随机试验中估计平均处理效应的核心挑战——混杂。我们引入了无混杂性假设,该假设指出在控制可观测协变量 X 后,处理分配如同随机。在此假设下,平均处理效应 τ 可以表示为条件期望函数之差:τ = E[μ_1(X) - μ_0(X)],其中 μ_w(x) = E[Y | X=x, W=w]

我们探讨了两种估计 μ_w(x) 并进而估计 τ 的方法:

  1. 线性回归:假设 μ_w(x) 是线性的。若假设正确,估计量无偏且高效;若假设错误,估计量不一致。
  2. 机器学习(如随机森林):不假设具体函数形式。估计量具有一致性,但在有限样本下可能有偏,收敛速度可能较慢,且难以构建有效的置信区间。

这两种方法代表了在模型设定灵活性与统计推断可靠性之间的经典权衡。在接下来的课程中,我们将探讨如何结合这些方法的优点,例如通过双重稳健估计等方法,来获得更可靠、更高效的估计。

007:倾向得分与平均处理效应

概述

在本节课中,我们将要学习倾向得分以及基于倾向得分的平均处理效应估计方法。我们将探讨倾向得分的定义、基于逆概率加权的估计器,并分析当使用机器学习方法估计倾向得分时可能遇到的问题。


倾向得分的定义与重要性

上一节我们讨论了基于回归调整的机器学习方法。本节中,我们来看看另一种核心方法:倾向得分。

倾向得分有一个简单的定义。在给定协变量 X 的条件下,接受处理的概率即为倾向得分。其公式表示为:
e(x) = P(W=1 | X=x)

在随机试验中,处理是均匀随机分配的。用倾向得分的语言来说,这意味着在随机试验中,倾向得分是常数。例如,在一个公平的50/50随机试验中,倾向得分恒为0.5。

这从性质上表明,如果随机试验是倾向得分恒定的设置,那么观察一个给定观察性研究中倾向得分的分布,可以让你了解该研究在多大程度上偏离了随机化。


逆概率加权估计器

在无混淆假设下,平均处理效应可以通过一种称为逆概率加权的变换来表征。这是我们在第二部分看到的相同条件。

平均处理效应 τ 可以重新表述为以下期望值:
τ = E[ WY / e(X) ] - E[ (1-W)Y / (1-e(X)) ]

这个表示法的有趣之处在于,它不依赖于潜在结果,而只依赖于实际观测到的结果 Y 和处理状态 W。因此,这是一个可以测量的量。

基于这个表示法,可以立即推导出一个实用的平均处理效应估计器,即逆概率加权估计器。其形式如下:
τ̂*_IPW = (1/n) Σ [ (W_i Y_i) / e(X_i) - ((1-W_i) Y_i) / (1-e(X_i)) ]

这个无偏性结果直接告诉我们,在已知真实倾向得分 e(X) 的情况下,逆概率加权估计器是平均处理效应的无偏估计。

这类思想在统计学的许多领域都很常见,你可能在其他领域以“重要性抽样”或“Horvitz-Thompson估计”等名称遇到过类似的想法。


为什么逆概率加权是无偏的?

简要解释如下:处理分配 W 是二元的(0或1)。当 W=1 时,你只能观察到处理组的潜在结果 Y(1)。同理,当 W=0 时,你只能观察到对照组的潜在结果 Y(0)

至于比率项 W/e(X)(1-W)/(1-e(X)),请记住 W 是实际是否接受处理,而 e(X) 是接受处理的概率。这些比率在期望上等于1,因此在期望中会相互抵消,从而得到无偏性。

验证这一点的正式论证依赖于无混淆假设。


使用估计的倾向得分

目前我们得到的结果是,这个“先知”IPW估计器(使用真实倾向得分)对于平均处理效应是无偏的。需要强调的是,构建这个估计器需要知道每个单元的真实倾向得分 e(X)

如果不知道真实的倾向得分怎么办?一个很自然的想法是先估计倾向得分 ê(X)

这本质上是一个预测任务:你试图从 X 预测 W。你可以使用任何喜欢的机器学习方法来完成这个任务,例如提升树、随机森林或深度网络。

一旦估计出倾向得分,你就可以将其代入IPW框架,就像你知道真实倾向得分一样操作。在机器学习和因果推断的发展历程中,这实际上是人们最早想做的事情之一。

当然,问题是:这样做有效吗?我们知道使用真实倾向得分的先知IPW估计器是好的。那么使用估计倾向得分的可行IPW估计器好吗?


评估可行IPW估计器

为了评估可行估计器是否有效,我们可以尝试一种论证思路。我们希望证明,如果能够准确估计倾向得分,那么可行估计器的行为会与先知估计器相似。

这个论证需要两部分:首先,理解先知IPW估计器的理想性质;其次,研究可行估计器与先知估计器之间的差距,并论证这个差距相对于原始估计器的随机波动来说很小。

先知IPW估计器 τ̂*_IPW 是N个独立同分布项的平均值,每一项都是目标参数 τ 的无偏估计。因此,在非常一般的条件下,它会满足中心极限定理,并以 1/√n 的速率收敛。

我们希望使用估计倾向得分的可行估计器 τ̂_IPW 也能表现出类似的行为,同样以 1/√n 的速率收敛。

我们希望可行估计器看起来像先知估计器加上一个误差项。为了使论证成立,我们需要这个误差项远小于 1/√n,从而可以被忽略。


误差项分析

我们能否忽略倾向得分估计在IPW中引入的误差?我们需要尝试给出一个上界。

我们试图界定 τ̂_IPWτ̂*_IPW 之间的差异。应用柯西-施瓦茨不等式,我们可以得到一个上界。

这个上界主要包含两项。第一项涉及估计倾向得分 ê(X) 与真实倾向得分 e(X) 之差的均方根误差。

分析表明,可行IPW估计器与先知IPW估计器之间的差异,在常数项内,大约与倾向得分的均方根误差同阶。

这足够好吗?答案是否定的。为了使误差不影响,我们需要可行估计器与先知估计器之间的差异远小于 1/√n。然而,这要求倾向得分的均方根误差远小于 1/√n

在机器学习应用中,这通常是不现实的。在参数化问题中,也许能达到 1/√n 的收敛速率。但我们应用机器学习的问题通常更复杂,是非参数化的。在这些情况下,均方根误差通常远大于参数速率 1/√n

因此,这个论证无法成立。更仔细的研究会表明,当你使用通用的机器学习方法估计倾向得分时,可行IPW估计器通常与先知IPW估计器并不接近。


核心问题与启示

核心问题在于:虽然机器学习方法能在非常一般的条件下,在大样本中给我们一致的估计(即正确的答案),但这并不意味着在有限样本中,我们可以忽略其估计误差。

在IPW中,使用 ê(X) 代替 e(X) 所产生的误差通常是不可忽略的。如果你不考虑这个误差,你可能会对你的估计器的准确性做出非常错误的判断。

一个天真的、忽略这种估计误差的方法,通常会导致置信区间和其他推断陈述出现严重错误。

为什么会出现这种情况?对于先知IPW,标准的置信区间构造方法会给出长度约为 1/√n 的区间。但是,如果你使用基于机器学习的方法来估计倾向得分,你会引入一个额外的误差项,这个误差项远大于 1/√n。一旦误差项大于你最初构建的置信区间,这些置信区间就失效了。


解决方案的方向

至此,你可能会认为情况很糟糕,我们应该抛弃基于机器学习的方法,回到参数化建模。因为至少当参数模型设定正确时,我们知道该怎么做。

但事实证明,尽管机器学习方法的简单直接应用在这里行不通,但确实存在可行的方法。

解决方案在概念上非常简单。你仍然可以做我们一直在做的事情:取一个简单的估计器,将基于机器学习的预测值代入,然后尝试忽略机器学习方法的误差。

关键在于,你需要谨慎选择将机器学习预测值代入哪种估计器。单独的回归调整不行,单独的IPW也不行。

在本讲的最后部分,我将介绍一种能够胜任这项工作的估计器。


总结

本节课中,我们一起学习了倾向得分及其在平均处理效应估计中的应用。我们定义了倾向得分,介绍了基于逆概率加权的估计器,并深入分析了当使用机器学习方法估计倾向得分时,所引入的估计误差为何不可忽略。这为我们理解后续更稳健的方法(如双重稳健估计)奠定了重要基础。关键在于,直接“插入”机器学习预测值到传统估计框架可能带来较大偏差,需要更精巧的估计器设计来克服这一问题。

008:平均处理效应与双重稳健性

在本节课中,我们将学习一种基于机器学习来估计平均处理效应的优秀方法。我们将探讨其核心原理、具体形式以及为何它能提供可靠的统计保证。

概述:我们追求的目标

我们一直在讨论平均处理效应。在无混淆假设下,我们希望估计平均处理效应。但“优秀”具体指什么?

这里的“优秀”指的是具有参数化类型保证的估计量。我们希望得到一个估计量 $\hat{\tau}$,它能够:

  • 以 $\sqrt{n}$ 的速率收敛到平均处理效应。
  • 满足中心极限定理。
  • 使我们能够以常规方式构建置信区间。

为何这是一种“优秀”的标准?在参数建模的经典设定中,如果你使用一个设定正确的线性模型进行回归,你本质上就能得到这些性质:$\sqrt{n}$ 收敛速率和置信区间。使用机器学习时,你希望在保持灵活性的同时,最终得到与传统参数建模相媲美的优良性质。

我们的工具:机器学习黑箱

我们拥有机器学习工具,但这概念有些模糊。我需要更具体地说明“使用机器学习”意味着什么。这意味着我们拥有一个预测黑箱。它灵活,但并非完美。

具体来说,我们假设有一种方法可以估计 $\hat{\mu}_w(x)$ 和 $\hat{e}(x)$(即条件响应函数和倾向得分),并且它们在均方根误差意义下以 $n^{-1/4}$ 的速率收敛。

这个假设可能看起来有些奇怪。首先,我们为何用均方根误差来表述这个假设?因为机器学习方法的宣称优势在于预测,而衡量预测好坏的一个自然标准就是在平方误差损失下的表现。最优预测器就是 $\mu_w(x)$。因此,机器学习声称擅长预测,就意味着它声称擅长最小化均方根误差。

其次,为何是 $n^{-1/4}$ 这个速率?这是一个更微妙的问题。简而言之,这个收敛速率比参数模型中的 $n^{-1/2}$ 速率要慢。这是一个更弱的假设,它为机器学习模型留出了空间:它们可以做得很好,但不必达到参数模型的完美收敛速度。这个特定的速率便于推导简洁的形式结果,并且明显弱于参数问题的结果。

那么,问题来了:如何利用这个预测黑箱来实现我们的目标,即估计平均处理效应?

解决方案:增强逆概率加权估计量

答案是,我们需要同时估计两个模型(响应函数和倾向得分),并以一种巧妙的方式将它们结合起来,让两个模型的误差相互抵消。

具体做法是使用以下函数形式的估计量,它被称为增强逆概率加权估计量AIPW

$$
\hat{\tau}^{AIPW} = \frac{1}{n} \sum_{i=1}^{n} \left[ \hat{\mu}_1(X_i) - \hat{\mu}_0(X_i) + \frac{W_i (Y_i - \hat{\mu}_1(X_i))}{\hat{e}(X_i)} - \frac{(1-W_i) (Y_i - \hat{\mu}_0(X_i))}{1 - \hat{e}(X_i)} \right]
$$

简单来说,在相当一般的条件下,即使 $\hat{\mu}$ 和 $\hat{e}$ 来自机器学习方法,AIPW 也是一个平均处理效应的良好估计量。

看到这个公式,你的第一反应可能是:这太复杂了。我理解这种感受,但我希望在你理解它的工作原理后,会觉得它并不像看起来那么可怕。

分解与理解 AIPW

我们可以将 AIPW 估计量分解为两部分:橙色部分和蓝色部分。

$$
\hat{\tau}^{AIPW} = \underbrace{\frac{1}{n} \sum_{i=1}^{n} [\hat{\mu}1(X_i) - \hat{\mu}0(X_i)]} + \underbrace{\frac{1}{n} \sum^{n} \left[ \frac{W_i (Y_i - \hat{\mu}_1(X_i))}{\hat{e}(X_i)} - \frac{(1-W_i) (Y_i - \hat{\mu}_0(X_i))}{1 - \hat{\mu}0(X_i)} \right]}
$$

我们可以这样解释它们:

  • 橙色部分 $D$:这很熟悉,就是我们之前讨论过的基于机器学习的回归调整估计量。在灵活性假设下,从机器学习得到的 $\hat{\mu}$ 是一致的,因此 $D$ 在相当一般的条件下是平均处理效应的一致估计量。但机器学习方法收敛速度不够快,因此 $D$ 不会以 $\sqrt{n}$ 的速率收敛,存在收敛偏差,我们无法为其构建置信区间。
  • 蓝色部分 $R$:这是我们对 $D$ 应用的修正项。仔细观察 $R$,并将其与之前看到的 IPW 估计量比较,会发现它们看起来很相似。IPW 的形式是 $\frac{1}{n} \sum_{i=1}^{n} \left[ \frac{W_i Y_i}{\hat{e}(X_i)} - \frac{(1-W_i)Y_i}{1-\hat{e}(X_i)} \right]$。而 $R$ 项是在应用 IPW,但应用的对象不是原始结果 $Y_i$,而是这些残差:对于处理组是 $Y_i - \hat{\mu}_1(X_i)$,对于控制组是 $Y_i - \hat{\mu}_0(X_i)$。

这样做的直觉是:想象你认同回归调整估计量,觉得它不错,但我告诉你机器学习方法有误差,单独的回归调整会留下偏差。那么,一个想法是尝试“修补”它。$Y_i - \hat{\mu}_w(X_i)$ 衡量了第一次回归阶段后残留的信号。如果 $\hat{\mu}_w(X_i)$ 是 $Y_i$ 的完美预测,那么残差就是均值为零的不可约噪声,$R$ 项基本为零。但如果第一次回归确实留下了一些信号,那么这些残差中就包含了衡量纯回归调整估计量 $D$ 偏差的信息。于是,你可能会希望将这些残差放入 IPW 框架中,以提取残留的信息。你先进行回归调整,然后用 IPW 来修正回归调整,吸收任何残留的信息。这听起来像是一个过于乐观的想法,但事实证明它非常有效。

一个模拟示例

让我们通过一个简单的模拟示例来看这个过程。这里有一个非参数函数。

此设定中的平均处理效应是 -0.05。

  1. 第一步(回归调整):使用随机森林估计 $\hat{\mu}_0$ 和 $\hat{\mu}_1$,然后计算预测值的平均差。这是回归调整估计量 $D$。平均我们得到 0.09,而真实值是 -0.05。结果一致但不够好。
  2. 第二步(修正):拟合倾向得分模型 $\hat{e}$。将随机森林的残差应用于 IPW,得到修正项 $R$。在这个例子中,修正项 $R$ 是 -0.1。
  3. 第三步(合并):将修正项 $R$ 加到原始估计量 $D$ 上:$0.09 + (-0.1) = -0.01$。这仍然不完美,但比原始的回归调整更接近真实答案。

为了了解效果如何,下图展示了 100 次重复模拟中治疗效应估计的箱线图。

  • 第一个箱线图是回归调整估计量 $D$。它并不好,平均值高于真实值,并且在所有模拟中估计值都大于真实值。
  • 第二个是修正项 $R$,它是一个非常稳定的向下修正。
  • 第三个是 AIPW 估计量。虽然仍不完美,但平均而言,AIPW 比单独的回归调整更接近正确答案,并且真实处理效应开始落在 AIPW 估计值的分布范围内。

希望这个例子能帮助你理解,这个看似令人生畏的 AIPW 函数形式,其实有一个简单的解释:先进行回归调整,然后取残差并将其代入 IPW 进行修正

即便如此,你可能觉得实现起来很复杂。我想安慰你的是,一旦你知道 AIPW 是使用机器学习估计平均处理效应时应该做的事情,你通常可以找到实现它的软件包。例如,在我和 Susan 维护的 grf 包中,你可以调用 causal_forest 函数,它会基于随机森林为你计算所需的 $\hat{\mu}$ 和 $\hat{e}$,然后你可以调用 average_treatment_effect 函数来获得 AIPW 估计量及其标准误,这一切都为你自动完成。

AIPW 的理论保证:双重稳健性

我已经铺垫了很久,说 AIPW 是优秀的。现在让我们具体谈谈 AIPW 在何种意义上能给出平均处理效应的良好估计。

关键结论是,AIPW 实际上满足了我们之前试图为 IPW 证明但未能证明的那种定理。

我首先写下 AIPW 的“神谕”版本(使用真实的 $\mu$ 和 $e$):

$$
\tilde{\tau}^{AIPW} = \frac{1}{n} \sum_{i=1}^{n} \left[ \mu_1(X_i) - \mu_0(X_i) + \frac{W_i (Y_i - \mu_1(X_i))}{e(X_i)} - \frac{(1-W_i) (Y_i - \mu_0(X_i))}{1 - e(X_i)} \right]
$$

我们的策略是证明,在关于机器学习方法的合理假设下,使用估计值 $\hat{\mu}$ 和 $\hat{e}$ 的可行 AIPW 估计量,其一阶行为与这个使用真实值的神谕 AIPW 估计量是等价的。

定理(简化版)如下:
假设我们从机器学习得到的估计值以 $n^{-1/4}$ 的 RMSE 速率收敛。那么,可行估计量 $\hat{\tau}^{AIPW}$ 和神谕估计量 $\tilde{\tau}^{AIPW}$ 在 $\sqrt{n}$ 尺度上是等价的。即,将它们的差乘以 $\sqrt{n}$,依概率收敛到零。它们是一阶等价的。

我不会在这里证明这个结果。但我想强调结果的形式,并与 IPW 的情况进行对比。

  • 对于 IPW,我们试图界定可行估计量与神谕估计量之间的差异。我们发现,如果倾向得分以 $n^{-1/4}$ 的速率收敛,那么可行估计量与神谕估计量之间的差异最多被控制在 $n^{-1/4}$ 的量级,没有改善,你被所用方法的准确性所限制。
  • 但对于 AIPW,情况相反。我们只假设回归函数以 $n^{-1/4}$ 的速率收敛,然而,将这些具有 $n^{-1/4}$ 尺度误差的 $\hat{\mu}$ 和 $\hat{e}$ 代入这个估计量,所导致的最终误差尺度却小于 $n^{-1/2}$。这似乎违反了“垃圾进,垃圾出”的原则。但事实是,AIPW 估计量经过精心设计,使得 $\hat{\mu}$ 和 $\hat{e}$ 的一阶误差会相互抵消。因此,你可以代入具有 $n^{-1/4}$ 尺度误差的组件,但最终结果的变化却小于 $n^{-1/2}$。

这意味着我们可以做我们原本想用 IPW 做的事情:研究神谕估计量 $\tilde{\tau}^{AIPW}$,为其建立一个以 $n^{-1/2}$ 速率收敛的中心极限定理,然后利用上述等价性论证,证明可行的 $\hat{\tau}^{AIPW}$ 也满足你为神谕估计量证明的任何保证。

具体来说,$\tilde{\tau}^{AIPW}$ 只是独立同分布项的平均值。独立同分布项的平均值在相当一般的条件下满足中心极限定理。


神谕估计量 $\tilde{\tau}^{AIPW}$ 是渐近正态的,以 $n^{-1/2}$ 的偏差围绕真实平均处理效应波动。其方差取决于图中蓝色方框内的量 $V^*$。由于 $\hat{\tau}^{AIPW}$ 和 $\tilde{\tau}^{AIPW}$ 在 $\sqrt{n}$ 尺度上等价,一旦你得到了神谕估计量的中心极限定理,你也就得到了可行估计量的中心极限定理。

这是今天我给出的第一个结果,它表明:你不需要使用参数模型,可以从对机器学习的合理假设出发,结合来自多个不同机器学习模型的预测,最终得到具有经典高斯参数速率行为的平均处理效应估计量。实际上,这里得到的 $V^*$ 是一个非常好的方差参数,在非参数假设下,这是你能为平均处理效应估计得到的最优中心极限定理。

证明实际上给出了更多信息。渐近地,你可以将 $\hat{\tau}^{AIPW}$ 写成这些 $\hat{\Gamma}_i$ 的平均值,我称之为双重稳健得分

$$
\hat{\tau}^{AIPW} = \frac{1}{n} \sum_{i=1}^{n} \hat{\Gamma}_i
$$

其中
$$
\hat{\Gamma}_i = \hat{\mu}_1(X_i) - \hat{\mu}_0(X_i) + \frac{W_i (Y_i - \hat{\mu}_1(X_i))}{\hat{e}(X_i)} - \frac{(1-W_i) (Y_i - \hat{\mu}_0(X_i))}{1 - \hat{e}(X_i)}
$$

这些双重稳健得分通常不是独立同分布的,因为你插入了 $\hat{\mu}$ 和 $\hat{e}$ 从而引入了跨项的依赖性。但在我们所作的假设下(即 $\hat{e}$ 和 $\hat{\mu}_w$ 以 $n^{-1/4}$ 的速率收敛),这些 $\hat{\Gamma}_i$ 足够接近独立,以至于你可以忽略这种依赖性,并可以像 $\hat{\tau}^{AIPW}$ 只是独立 $\hat{\Gamma}_i$ 的平均值那样为其构建置信区间。

因此,你可以做非常常规的事情:估计样本均值的方差,然后构建渐近正态置信区间。一旦你使用 AIPW 估计量,你就可以为 $\tau$ 构建非常标准的置信区间。

重要细节与注意事项

我想通过强调几个在定理陈述中忽略但仍然重要的细节来结束讨论。

1. 交叉拟合

我声称只要 $\hat{\mu}$ 和 $\hat{e}$ 足够准确,你就可以将它们代入 AIPW 估计量,一切都会很好。这几乎是对的。但要使这完全成立,你需要使用一种称为交叉拟合的算法技巧。

最简单的交叉拟合类型是:将数据集分成两半(例如 A 和 B)。用 B 半的数据训练模型,用来预测 A 半数据的值;用 A 半的数据训练模型,用来预测 B 半数据的值。本质上,你永远不要使用在训练过程中看到过第 $i$ 个样本的模型,来预测第 $i$ 个样本的 $\hat{\mu}_1(X_i)$。

交叉拟合很重要。大多数实现 AIPW 与机器学习的标准软件包都会为你做这件事。如果你想手动实现,需要记住使用交叉拟合。它在算法上并不比交叉验证更复杂。交叉拟合的保证是:机器学习方法使用单个数据点的特殊性不会影响你的统计保证。

2. 重叠性

要使 AIPW 给出平均处理效应的良好估计,你需要三个条件:

  1. 无混淆性。
  2. 机器学习方法相当准确。
  3. 重叠性

重叠性意味着倾向得分不能太接近 0 或 1。具体来说,我假设存在一个正常数 $\eta$,使得每个人都有至少 $\eta$ 的概率被处理,以及至多 $1-\eta$ 的概率被处理。数据集中没有人在给定 $X$ 的条件下几乎被确定性地分配到控制组或处理组。

重叠性在概念上是必要的:如果你试图在一个某些人被确定性分配的数据集中估计处理效应,你会感到担忧,这是对的。另一个更算法化的理由是:在 AIPW 的方差公式中,你需要除以 $e(x)$ 和 $1-e(x)$。如果 $e(x)$ 接近零,就会产生很大的值。因此,即使有所有的理论保证,如果你让倾向得分接近 0 或 1,你的方差也会很糟糕,处理效应估计将不准确。

在实践中该如何处理?我建议你考虑重叠性问题。通常,你不需要过于担心,因为与无法从数据验证的无混淆性不同,重叠性是可以从数据中检查的。运行 AIPW 时,你拥有倾向得分的估计值 $\hat{e}(x)$。每次都可以绘制 $\hat{e}(x)$ 的直方图。如果直方图在 0 和 1 之间分布良好,远离极端值,那么情况就好。如果它在 0 或 1 处出现尖峰,你可能存在重叠性问题。

下图展示了 Susan 及其合著者一篇论文中的例子。他们研究不同的拍卖机制,问题是使用公开密封拍卖与公开升序拍卖的效果有何不同。

  • 爱达荷州:情况良好。大多数倾向得分远离 0 和 1。
  • 加利福尼亚州:所有控制组的倾向得分几乎都为 0,所有处理组的倾向得分几乎都为 1。这表明基于协变量,大多数单位被确定性分配。如果你的倾向得分图看起来像这样,你就需要担忧了。

如果存在重叠性问题,你可以做几件事:将数据集过滤到重叠性更好的区域;尝试改变所研究的问题(例如,如果很多倾向得分接近 0 但接近 1 的不多,可以估计处理组的平均处理效应,这需要使用略微不同的函数形式);等等。一旦你知道存在问题,通常可以解决它。

总结与对比

回顾一下我们在这节课中所做的内容:
我们想要估计平均处理效应,这是因果推断中最标准的目标之一。我们想在观察性研究中估计它,这意味着我们必须以某种方式控制预处理变量 $X$。我们想使用机器学习来控制这些 $X$,以避免做出参数假设。

乍一看,有许多流行的想法:你可以做回归调整,可以做逆概率加权。你可能会想:“我知道该怎么做,我取回归调整公式,但插入机器学习,一切都会好的,对吧?”不对。不幸的是,机器学习方法相当准确,但不如设定正确的参数模型那样准确。因此,这行不通,你得不到置信区间。

然后你可以看 IPW,再次说:“嘿,我知道该怎么做,我看到一个倾向得分,我要用机器学习方法估计我的倾向得分,把它插进去,这就会奏效,对吧?”同样不行。它会是一致的,但我们没有得到可与良好 $\sqrt{n}$ 速率参数型保证相媲美的、构建置信区间所需的保证。

那么,情况是否无望?。你可能想做的那些最简单、最朴素的事情行不通,但你可以通过正确的策略将机器学习很好地用于因果推断。这里一个好的策略就是 AIPW。它是一个精心设计的估计量,从回归调整开始,并使用 IPW 来修正回归调整,这样做可以一阶抵消回归调整和 IPW 的误差。

你可能觉得我是凭空变出这个估计量的,这有点奇怪。但我想向你保证,这是一个“大帽子”,你可以从中变出许多其他东西,并且有理论指导如何做到。AIPW 只是具有这种性质的估计量的第一个例子。如果你听说过“正交矩”或“双重稳健性”这些术语,它们是非常通用的术语,既适用于 AIPW,也适用于许多其他估计量。

那么,线性回归和机器学习的区别是什么?
一方面,线性回归在给定一个设定正确的线性模型时,具有非常好的行为(参数行为),它以 $n^{-1/2}$ 的速率收敛,一切都很完美。但在一般情况下,如果线性模型不正确,那么线性回归就是不一致的,你会得到错误的答案,这很糟糕。
另一方面,机器学习更灵活。在线性设定下,它没问题;在一般设定下,它也没问题。你使用机器学习的原因是为了在相当一般的条件下,获得对你想要预测的东西的良好估计。这很好。

使用机器学习开启了一扇灵活性的大门,但这样做的代价是,你现在需要记住,实际上,机器学习方法在部署时产生的误差,通常比你在参数模型中使用参数方法时所习惯的误差要大一些。你需要使用对中等有限样本误差具有鲁棒性的后处理策略。

在平均处理效应估计的背景下,我们看到 AIPW 是具有这种性质的一种解决方案。在本课程中,我们将看到更多这样的例子。

参考文献

最后,我为你提供一些参考文献。前三篇更接近我今天所讲的内容,它们更广泛地概述了这一研究议程。

  1. Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W., & Robins, J. (2018). Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, 21(1), C1-C68. (阐述了议程,以及你可以在哪些问题中插入机器学习并获得因果参数的良好参数型保证和置信区间。)
  2. Farrell, M. H., Liang, T., & Misra, S. (2021). Deep neural networks for estimation and inference. Econometrica, 89(1), 181-213. (在深度神经网络的背景下详细阐述了今天介绍的内容,并证明了应用这些结果所需的保证。)
  3. Chernozhukov, V., Escanciano, J. C., Ichimura, H., Newey, W. K., & Robins, J. M. (2022). Locally robust semiparametric estimation. Econometrica, 90(4), 1501-1535. (进一步推广了议程。)

我今天更多地讨论了非参数设定。在高维设定中,也存在非常类似的讨论,你想使用 LASSO 等方法(而不是在非参数设定中使用的树、森林或提升法)来估计平均处理效应。如果你对高维设定感兴趣,下面两篇论文是入门的好地方:
4. Belloni, A., Chernozhukov, V., & Hansen, C. (2014). Inference on treatment effects after selection among high-dimensional controls. The Review of Economic Studies, 81(2), 608-650.
5. Belloni, A., Chernozhukov, V., Fernández-Val, I., & Hansen, C. (2017). Program evaluation and causal inference with high-dimensional data. Econometrica, 85(1), 233-298.

本节课中,我们一起学习了如何使用双重稳健的 AIPW 方法,在利用机器学习灵活性的同时,获得对平均处理效应的可靠统计推断。这是将现代机器学习与经典因果推断相结合的关键一步。

009:条件平均处理效应概述

在本节课中,我们将要学习如何利用近十年来发展的新方法,结合机器学习来估计处理效应的异质性,即处理效应如何随个体可观测特征的变化而变化。

机器学习在利用数据进行政策分析方面具有巨大潜力。其主要优势之一是允许我们构建更精细的统计模型,并提供系统化、可重复的算法来实现这一点。机器学习能够改进对政策、项目或干预措施效果的因果推断,因为我们能够对反事实(即个体在未接受处理的情况下会发生什么)做出更精细的预测。我们也能更有效地利用可观测变量来控制混杂因素,即那些可能同时影响处理分配和结果、若被忽略则会导致因果效应估计产生偏差的变量。机器学习有潜力在这方面做得更好,因为它拥有经过提炼和改进的算法,能够灵活地利用数据,从而减少对预设函数形式假设的依赖。这反过来有助于我们采用更具可重复性的方法来应对因果推断中的一些挑战。缺乏可重复性以及对函数形式的敏感性,一直是阻碍因果估计在政策问题中可信度的因素之一。

其次,我们可以更好地理解什么对谁有效以及为什么有效。利用机器学习理解处理效应异质性的来源可以提供洞察,也允许我们更好地将处理措施定向到效果最好的人群。例如,这涉及估计个性化或定向的处理分配策略,这里的“个性化”指的是针对个体可观测特征进行定向。

然而,我们需要考虑对机器学习工具进行修改,以使其发挥最大效用。特别是,我们有许多成熟的机器学习方法在实践中对预测任务表现良好,但它们不一定具备完善的统计性质。回想一下,对于预测问题,你并不真正需要很多统计性质,因为你可以在测试集中评估模型预测结果的好坏。如果你的唯一目标是做好结果预测,我们可以在测试集中看到真实情况并评估我们的表现。然而,在因果推断中,情况则不同。人们不会带着处理效应标签走来走去,我们不知道真实的处理效应是什么。我们不知道如果你在治疗组但没有服药会发生什么,也不知道如果你在对照组但服了药会发生什么。因此,我们实际上没有每个个体的真实情况,所以我们必须做更多工作来弄清楚如何评估用于机器学习的因果推断方法的性能。

对于许多应用,我们还需要有效的置信区间,范围从科技公司的A/B测试(你仍然需要确保发现的结果不仅仅是抽样变异)到药物或疫苗的临床试验(我们需要确保你没有仅仅为了找到药物对某些亚组有效而进行数据挖掘,然后试图通过FDA批准)。因此,我们需要确保我们的方法能给出可靠的结果。

在本节课以及后续课程中,我将讨论如何实现两全其美:如何利用机器学习进行数据驱动的发现(如处理效应异质性),同时保持可重复性并允许有效的统计推断。

结合机器学习与因果推断的主题

上一节我们介绍了机器学习在因果推断中的潜力,本节中我们来看看结合两者时出现的一些主题。

其中一个重要主题是,我们可以使用机器学习算法进行数据驱动的模型选择,采用非常灵活的函数形式。尽管社会科学界几十年来一直尝试使用核方法等来实现这一点,但很多时候这些方法在现实世界中的表现并不理想,尤其是在存在大量协变量的情况下。而现代机器学习算法在处理大量协变量、灵活利用数据以及适应数据以找到合适的函数形式方面做得非常好,交叉验证等技术对此非常有帮助。

另一个重要主题是正则化。我们希望平衡对丰富灵活函数形式的渴望与在测试集中表现良好的需求,即避免过拟合。这可以包括惩罚化、正则化回归、模型平均和抽样等技术。随着课程的深入,我们将在机器学习的不同应用背景下讨论这些技术。

我们记得,机器学习的主题之一是在一个分布稳定、预留的测试集中,通过拟合优度来评估成功。因此,当我们将这些机器学习主题引入因果推断时,我们将尝试分解问题,以便找到可以应用此类机器学习优化的部分,同时不牺牲我们的主要目标,即获得因果效应的准确估计,在某些情况下是无偏或一致的因果效应估计,或者能够为这些效应生成置信区间。

这些目标与计量经济学文献中的半参数估计目标相似,但机器学习方法具有更好的实际性能(我们尚未完全理解其原因)。过去十年来,结合机器学习与因果推断的学界一直在填补一些理论空白,并阐明如何应用机器学习方法以及可以进行哪些修改,以便它们在以前可能使用参数估计的环境中表现最佳。

思考机器学习对计量经济学贡献的一个简单方式是回顾半参数计量经济学文献,并用灵活的机器学习方法替代先前研究的核方法或其他类型的方法。我们会发现,只要进行适当的修改并确保我们针对正确的标准进行优化,这实际上相当成功。

到目前为止,我们已经看到了相当多的成功案例,并且在这个领域出现了多个蓬勃发展的文献。我们看到了对估计平均处理效应的贡献,本系列的其他课程已经涵盖了这一点。我们也看到了对工具变量法的贡献,例如尝试使用机器学习从众多可能的工具变量中进行选择。在其他课程中,我们将讨论面板数据模型,例如矩阵分解作为差分法等的替代方法。

但在本节课中,我们将讨论异质性处理效应,这将为后续应用(如估计最优策略,甚至进行自适应实验以估计最优处理分配策略)奠定基础。

异质性处理效应的应用

现在我们已经了解了结合机器学习与因果推断的背景,接下来探讨估计异质性处理效应的具体应用场景。

在多种应用中,估计不仅仅是平均处理效应,而是理解处理效应如何随个体特征变化,是非常有用的。最初激励我研究这个问题的一个例子是大型科技公司的A/B测试。在大型科技公司,工程师花费时间开发新算法或新想法,然后他们想要测试这些想法。通常,某项算法改进在某些情况下可能比其他情况效果更好,或者某个网页设计在某些场景下可能比其他场景效果更好。但就像FDA和之前的科学家一样,科技公司中A/B测试平台的管理者明白,如果允许工程师事后分析数据,他们总能找到某些群体或情境下他们的新发明是有效的。这种在数据中挖掘直到找到处理有效的某些人群的事后分析,众所周知容易导致错误发现,即P值篡改。因此,即使在大型科技公司,对于人们如何使用A/B测试结果也存在相当严格的限制。另一方面,了解算法在何处效果好、何处效果差当然非常有用,这可以为开发新算法提供见解,帮助你决定也许应该只在效果好的场景中应用这项新创新。在条件相同的情况下,你当然希望这样做。这促使我尝试开发可以内置到A/B测试平台中的方法,以自动搜索数据并揭示异质性处理效应,但要以可靠且不易出现错误发现问题的方式进行。

类似的动机也出现在药物试验等场景中。我们可能想了解药物对谁有效、对谁无效,以及副作用在哪些人群中是问题。同样,我们希望以数据驱动的方式进行,而不想仅仅局限于预先设定的假设。其他类型的应用包括观察性研究,例如我们发布了新产品,想了解其影响,或者想了解投放广告的影响。

在所有这些情况下,我们的目标是系统地识别亚群并估计处理效应,同时进行有效的推断,以确保我们的发现不仅仅是由于抽样变异。同样,当我们考虑定向策略时,必须记住抽样变异可能是一个相当大的问题。如果我试图了解一种药物对像你这样的人效果如何,那么你是复杂的、不同的、独特的,我们永远没有足够的数据来真正完全理解治疗对特定个体的效果,特别是如果我们观察到该个体的许多特征。一旦我们深入到这种个体层面的、非常定向的处理效应估计,抽样不确定性将变得很重要。

我们也希望理解机制。如果我们知道某个群体(例如年轻女性)对某种药物有更多副作用,这可以帮助我们形成关于为什么她们会有这些副作用的假设,从而可能帮助我们重新配制药物,开发新的改进疗法。

异质性处理效应与最优策略

理解了处理效应对谁更好或更差之后,一个重要应用是确定谁应该接受处理。一个处理可能对每个人都比对照更好,因此仅仅因为存在处理效应异质性,并不一定意味着个性化或定向的处理分配策略比统一的处理分配策略更好,这取决于具体情况。找到处理效应异质性比找到不同群体的最优治疗异质性要容易得多,但有时治疗成本高昂,因此即使治疗对所有人都有益,弄清楚谁应该最优先接受治疗仍然有用。

在本节课中,我不会详细介绍最优处理分配策略的方法(这将在后续课程中讨论),但我想强调,异质性处理效应问题是理解最优处理分配策略的一个输入。这是异质性处理效应的一个应用,但即使你不打算用它来定向处理分配策略,你也可能对理解处理效应异质性感兴趣,例如为了激励未来的创新。

异质性处理效应的方法概览

现在,让我们深入探讨异质性处理效应的具体方法。首先需要说明的是,相关文献相当广泛且增长迅速,这里仅列出了过去十年中分析处理效应异质性的一部分论文。我想强调的是,这里不只有一个问题,也不存在适用于单一问题的最佳方法。相反,围绕处理效应异质性存在许多问题,每个问题都有其相应的方法集。今天我将讨论一种类型的方法,即识别具有不同平均处理效应的亚组。这在某些情况下有用,在其他情况下则不然。

我们可能还想做一些事情,比如测试所有协变量上的异质性,并弄清楚如何处理多重检验问题。我们可能对处理效应异质性感兴趣,以理解模型设定稳健性问题。如果处理效应随特征变化很大,模型设定的差异可能会产生更大的影响。我们可以尝试理解灵活的条件平均处理效应估计,这也是我今天要讨论的另一个问题。另一种类型的问题是识别具有最高估计处理效应的个体,我今天也会展示一些这方面的例子。因此,与其将其视为一场竞争,认为某个群体认为某个问题重要而另一个群体认为另一个问题重要,我鼓励你思考在你的背景下,哪个或哪些问题是相关的以及为什么,然后找到处理这些问题的最佳方法。

机器学习方法在因果推断中的调整

如前所述,机器学习方法在实践中表现良好,但它们通常不具备完善的统计性质,因为这通常不是其目标,你可以使用测试集评估性能。但由于因果参数的真实情况无法直接观测,在异质性处理效应估计乃至一般因果效应估计中,统计推断扮演着更重要的角色。

在这方面出现的一些主题包括:首先,我们可能将问题分解为预测部分和因果部分,然后将属于预测问题的部分外包给机器学习方法。这样做有一些优势,因为如果你进行这种分解,你可以插入任何你想要的机器学习方法。由于机器学习方法不断改进,计算方式也在变化,创新不断出现,我们可以拥有一个单一的因果推断方法,并搭配最现代、最新的机器学习插件方法。当然,不同的机器学习方法在不同的环境中效果更好,因此我们可以根据我拥有的特定数据类型进行定制,并使用最新最好的方法。

另一种方法是构建受机器学习启发但专门为因果推断环境量身定制并进行根本性改变的新方法。就我个人而言,这两种方法我都尝试过,我认为它们各有其位。不断更新为因果推断量身定制的机器学习方法以利用最新最好的计算技术等工作量很大,因此能够使用现成的方法可能非常有利。但同时,如果你有特定的目标,你最好尝试真正解决你正在解决的问题,这也可能有其优势。

另一个主题是样本分割或交叉拟合。我们避免机器学习过拟合的一种方法是进行交叉验证以平衡偏差和方差。但这还不足以获得有效的统计性质。因此,机器学习与计量经济学文献真正关注并发现无论在理论上还是实践中都效果良好的事情之一就是样本分割和交叉拟合,这基本上归结为:不使用相同的数据来选择模型或确定模型设定,并得出感兴趣的参数估计。例如,这可能意味着,如果我使用倾向得分加权来估计平均处理效应,我不会使用相同的数据来估计倾向得分模型和加权特定观测值。因此,用于加权观测值的倾向得分是使用不包括该观测值的数据集估计的。当我们试图实际估计处理效应时,这类技术有助于参数估计的有效性。

我们还发现,一般而言,基于半参数理论的见解非常重要。已有大量理论探讨了在不知道函数形式的世界中如何估计感兴趣的参数(如因果效应),因此我们可以利用该理论,在引入机器学习时提出性能良好且高效的(就最小方差而言)估计量。其中一个见解是使用正交矩,我们将在不同的应用中逐步展开,但它们基本上会内置对干扰参数收敛速度较慢的容忍度。机器学习方法非常灵活,因此它们收敛到真实值的速度会比像平均值这样的东西更慢。这些技术将帮助我们利用收敛较慢的机器学习方法,同时仍然获得像平均处理效应或条件平均处理效应这样可能以更快速度收敛的估计。

形式化分析框架

为了开始形式化分析,考虑潜在结果框架。提醒一下,我们将用 (X_i, Y_i, W_i) 表示一个独立同分布受试者集合中的每个成员,其中 X_i 是特征或协变量(个体的特征),Y_i 是响应或结果,W_i 是处理分配。根据潜在结果框架,我们将假设存在量 Y_i(0)Y_i(1)(有时用下标表示,有时不用)。我们将这些解释为:如果第 i 个受试者接受处理或未接受处理,我们将测量到的响应。因此,对于每个人,他们都有一个如果被处理会发生的结果,以及一个如果是对照单元会发生的结果。

我们这里的目标是估计条件平均处理效应,即给定协变量特定实现值时的处理效应期望值。需要提醒的是,即使在随机实验中,我们也只能看到个体在两种处理场景之一中的结果。如果我们不做任何额外的假设,没有额外假设就不可能估计处理效应或基于 X 的条件处理效应,因为我们看不到任何个体同时处于处理状态和对照状态。因此,我们必须有某种方式利用来自一些被处理个体和不同对照个体的数据来估计这些处理效应。文献中常用的一个假设是无混淆性,也称为可忽略性或基于可观测变量的选择。这基本上意味着,在给定可观测特征的条件下,处理分配如同随机分配。当这个假设成立时,可以使用多种方法来估计处理效应。历史文献侧重于匹配或倾向得分估计等方法,这些方法通常是一致的,至少只要存在重叠性,即对于每个 x 值,每种处理状态都有一定的发生概率。

基于回归树的方法

我将考虑的第一个分析异质性处理效应的方法将建立在一种称为回归树或分类与回归树的方法之上。在深入探讨将回归或分类树应用于因果效应之前,让我先快速回顾一下简单的预测树或分类树是如何工作的,然后我们将推广这些方法并将其应用于估计因果效应的问题。

这是一个使用泰坦尼克号沉没时谁生谁死的数据应用分类树的例子。在这类树中,我们首先看乘客的舱位等级。如果他们的舱位等级大于2.5,这意味着他们是低等舱,即泰坦尼克号上的廉价票乘客。我们在这个左分支看到,501名低等舱乘客中有370人死亡。因为舱位等级是预测生死的重要因素,所以树首先在这个变量上分裂。然后我们看右分支,可以说,如果你在一等舱或二等舱,理解谁生谁死的下一个重要预测因素是年龄。所以,如果你的年龄不大于16岁,即你是孩子,那么上层阶级的36个孩子中有34个存活。现在,如果你是上层阶级的成年人,那么你是在一等舱还是二等舱又很重要,看起来在一等舱的人中,存活者更多,而在二等舱的成年人中,死亡者更多。这是一种根据舱位等级和年龄将数据划分为亚组的简单方法,仅仅通过将数据划分为这些亚组,我们就可以相当准确地预测谁生谁死。

我还没有告诉你这棵树是如何创建的,只是告诉你如何解释它和理解结果。但回归树和分类树自推出以来就非常受欢迎(这是一种已经存在了几十年的机器学习模型),原因之一是它们很容易向人们解释。一旦你看到这棵树,你当然必须理解你是如何得到这棵树的,但一旦你看到这棵树,预测将仅仅基于叶子节点中的比例。因此,很容易理解为什么像上层阶级的孩子这样的人被分类为可能存活。这是因为在我们拥有的训练数据中,符合这些特征的人中有34/36存活。所以,在理解给定这棵树如何得到估计值方面,没有太大的黑箱。

另一方面,得到这棵树稍微复杂一些,但理解如何得到这棵树实际上也不那么复杂。在树的顶部,算法所做的是查看数据中的所有协变量以及每个协变量上所有可能的分裂方式,并找到分裂的方式,其中本质上对于分类问题,你是在最大化分裂的分类能力,你试图找到同质的组。关于组同质意味着什么有几种不同的衡量标准,我现在不深入讨论。但你本质上是在试图找到能最大化分裂判别能力的分裂方式。如果这是一个回归问题,我们只是试图预测某个值,我们基本上会尝试最大化两个组在平方和方面的差异。

理解树的另一种方式是认识到你构建的任何特定回归树或分类树也可以表示为协变量空间的一个划分。在左边这里,我描绘了一棵基于两个协变量 X1X2 的树,而在右边,我将同一棵树描绘为协变量空间的一个划分。所以,树基本上是在弄清楚如何将这个 X1-X2 方框划分为矩形,试图找到在矩形内结果同质的矩形。

以前我们在计量经济学中传统上做这件事的一种方式(我过去常做)可能是取这个 X1X2 的方框,并将其划分为比如100个正方形,通过十分位数图。实际上,Raj Chetty 有一个很好的 Stata 包来做这件事,但这在我自己的实证工作中经常做。我们在这里做的是,不是将其划分为100个正方形(这可能占用很多正方形,并且每个正方形中可能没有太多数据,可能不必要地精细),而是发现我们实际上可以用更少数量的矩形相当准确地表示这个数据生成过程的性质,并且我们使用数据来弄清楚如何做到这一点。所以我们发现,我们首先在 x2 维度上分裂,然后看左边说对于 x2 的低值,我们想在 x1 的高值处分裂,但实际上对于 x2 的高值,我们在 x1 的较低值处分裂,我们根据 x2 是低还是高以不同的方式切割它。这给了我们灵活性,但允许我们更有效地描述数据。

因果树方法

现在我们已经回顾了回归树和分类树的样子,我们可以考虑如何应用这些思想来估计异质性处理效应。特别是,我们的目标是将人群划分为亚组,以最小化处理效应的均方误差。

我们将如何使用因果树?它旨在解决什么样的问题?它旨在允许我们在没有预先分析计划的情况下报告处理效应的异质性,但事后能提供有效的置信区间。因果树的特别之处在于,它将尝试提出一种数据驱动的方法来估计处理效应异质性,但仍然会得出少量估计参数(相对于数据量而言较小)。所以我们可以将其视为一种移动球门柱的方式。我们将使用数据来定义问题并进行估计,因为我们将使用数据来确定亚组是什么,然后其次,估计这些数据定义的亚组的处理效应。

我们将通过样本分割来解决过拟合问题。也就是说,我们将在一半样本中选择亚组或确定亚组,并在另一半样本中估计处理效应。这看起来可能效率低下,因为我们只使用一半数据来实际产生处理效应估计。但进行样本分割将给我们带来很多优势,因为事实证明,如果我们不进行样本分割,我们常常会得到不一致的处理效应估计。有方法可以直接弥补这一点,但事实证明,要击败样本分割的性能实际上相当困难,因为一旦你开始尝试纠正你使用相同数据来确定亚组和估计效应的事实,你就必须相当保守。因此,在实践中,使用样本分割将具有这些巨大优势。它将非常透明,因为你将使用一半数据来决定亚组,然后干净地使用尚未接触的第二部分数据来估计效应,因此很容易向人们解释为什么他们应该相信你的估计。这种透明度很有帮助,也能给你带来很大的稳健性。我们不需要很多花哨的理论来理解这种方法为什么有效。

一旦我通过采用这种样本分割方法解决了一个问题,剩下的挑战就是弄清楚我应该如何准确定义亚组?挑战的本质是什么?为什么这不是对现有回归或分类森林的直接应用?如果我们试图优化亚组以处理效应异质性,我们感兴趣的不是结果的均方误差,而是处理效应的均方误差。然而,正如我们所讨论的,因果推断的基本问题是我们无法观测到个体处理效应,所以我们不知道如何应用这些现成的现有方法,因为目标不可行。因此,我们需要做的是找到一种方法来解决这个问题,我将提出几种不同的替代方案,但我们发现更可取的一种是实际估计那个目标函数。

这种方法的另一个挑战(这可能是一个相当大的挑战)是,当你进行样本分割时,你的估计会有些不稳定。我可以分割数据并找到一个划分(一棵树),但如果我再次对数据进行抽样,我可能会得到一棵不同的树。这并不是说其中任何一个是错误的,它们都是对处理效应异质性的良好描述,但它们并不相同,这使得结果更难复制,并可能妨碍结果的可靠性。这个问题没有简单的解决方案。

适应回归树以估计条件平均处理效应

面对如何使回归树和分类树适应估计条件平均处理效应的问题,在 Athey 和 Imbens 的论文中,我们提出了几种不同的方法,并在该论文中讨论了这些方法的优缺点。

你可能尝试使用回归树和分类树分析处理效应异质性的第一件事就是构建一个单一模型,将结果 y 建模为 xW 的函数,即仅仅将你的处理指标 W 视为另一个特征或协变量,并将其扔进回归树中。我们称之为单树方法。这有什么问题?你的树甚至可能不在处理效应上分裂,所以如果你有树的一部分在 x 上分裂,通过 x 定义亚组,但没有通过 W 定义不同的亚组,那将意味着你在该区域对那些 x 的隐含处理效应估计将为零。这对于得出处理效应异质性没有太大帮助,因为无论 W 是什么,我们都会得到相同的答案。

我们称之为双树方法的第二种方法,后来被伯克利的一个小组 Künzel 等人的一篇论文称为 T-learner,他们将相同的分类法应用于一般的机器学习方法。所以他们将单树方法称为 S-learner,将双树方法称为 T-learner。在为两个不同的处理组和对照组分别构建两个单独的模型的情况下,这可能效果更好,因为它将确保你在构建预测模型时实际关注你的处理变量。但它可能有一个相当微妙的缺点。要看到这个缺点,想象一下我们正在考虑一个特定的 x 值,一个60岁的男性。如果我们只是为治疗组和对照组分别构建两个单独的模型,并说使用像树这样的东西,可能治疗树在性别上分裂但不在年龄上分裂,而对照树在年龄上分裂但不在性别上分裂。如果我们想了解这个模型告诉我们关于一个60岁男性的处理效应是什么?那么,治疗组中该男性的预测将是治疗个体中男性的平均结果。但来自对照树的该个体的预测将基于他的年龄。因此,为了估计他的处理效应,我们最终会比较男性的平均治疗结果与老年人的平均对照结果。当然,这没有任何意义。为什么我们要比较治疗男性与对照老年人?这不是在比较同类事物,因此最终可能导致处理效应的有偏估计、虚假的处理效应估计。你可能发现存在处理效应异质性,而实际上如果比较治疗男性与对照男性并没有差异,但比较治疗男性与老年对照单元却看起来存在处理效应异质性。

这可能看起来是树特有的问题,但在树的背景下思考这个问题的一个原因是,你可以立即看到问题所在,并更清楚地了解发生了什么。更复杂的机器学习方法也会有同样的问题,但可能不那么透明,不容易看出发生了什么。因此,这不是一个估计处理效应异质性的好方法。只有当你对治疗组和对照组的结果有非常准确的估计时,它才会有效。如果你没有足够的数据来完全估计结果函数的样子,你会做得很差。

我们在这篇论文中提出的第三种方法是转换结果法。这需要一点解释,我不会在本节课中深入讨论细节,但我们的做法是找到一种转换结果的方法。然后,如果你转换了结果,你就能够用这个转换后的结果构建一个单一的预测模型。这后来被推广到实际使用 AIPW 得分(增广逆倾向加权得分)作为回归或预测模型中的结果。在我们的论文中,我们展示了这种方法在多大程度上有效,并表明它效果尚可,但在效率方面也可能有一些缺点。

我们在这篇论文中做的是估计均方误差标准,这是在我们论文中表现最好的方法,尽管在某些情况下转换结果类型的方法也可能效果更好。这也有助于我们看到我在引言中提到的主题之一:有时你可以通过修改问题然后应用现成的预测方法来处理因果推断问题,有时你会想要实际修改方法。现在我将向你展示我们如何修改方法。

转换结果法概述

尽管我们不会在这些课程中深入探讨转换结果法的全部细节,但我可以简要概述一下,以举例说明如何将现成的机器学习方法应用于估计条件平均处理效应的问题。

其思想是,有一种转换结果的方法,使得转换后结果的期望值实际上是处理效应。为了理解这一点,我可以定义这个转换结果 Y_i^*。如果 p 是分配概率(接受处理的概率),我可以做一个简单的转换:如果是一个被处理的观测值,我只需将其结果除以 p;如果你是一个对照观测值,我首先取你结果的负值,然后除以 1-p。这将是我对个体单位处理效应的估计。如果你仔细想想,这有点疯狂,因为你的结果,也许你的结果被限制在0和1之间,或者是在0到100之间,例如,我在考试中的分数。我的问题可能是治疗单元是否在考试中获得更高的分数。所以我可以看着你,然后说,嘿,如果我做了50/50的治疗对照分割,如果我找到一个被治疗的特定人,假设在考试中得了75分。那么,他们的转换结果将是75除以0.5,即150。所以我对他们处理效应的估计将是150。这很疯狂,因为没有人可能有150的处理效应,因为这个人的分数在0到100之间。现在,我取对照组中的另一个人,假设他们的分数是72。那么我对那个人处理效应的估计将是 -72 除以0.5,即 -144。这也是一个非常嘈杂、极端、不现实的对某人处理效应的估计。但想法是,平均而言,如果我汇总这个转换结果并平均所有人,大约一半的人将被治疗,所以我将乘以0.5这些非常大的处理效应估计。另一半将是对照,所以我将乘以0.5,并取他们结果的负值来得到对他们的这个估计,然后我取差值。平均而言,这将是样本平均治疗结果与样本平均对照结果之间的差异。记住,对照个体我们已经转换并乘以了 -1。所以,如果我平均所有这些转换结果,我将得到处理效应的估计。

这是一个简单的见解,表明这是处理效应的一个非常嘈杂的估计,但对于个体而言,即使该个体仅被观测为治疗或对照,我仍然可以查看他们的结果,并得出他们处理效应的无偏估计。这对那个个体来说不是很有用,但如果我平均与该人相似的人,我将得到他们平均处理效应的无偏估计。一旦我明白了这一点,我可以说,好吧。如果我取任何群体并平均这些转换结果,我得到处理效应,那么我就可以使用这个转换结果作为任何预测方法的左侧因变量。由此产生的预测将是条件平均处理效应的估计。

这起初看起来可能只适用于随机实验,但实际上,在具有无混淆性的环境中,即观察性研究中,我可以用估计的倾向得分替换那个 p。事实上,我可以更进一步,也可以使用 AIPW 方法,这基本上会针对结果进一步调整,因此我可以估计一个结果模型和一个倾向模型,得出 AIPW 得分,并将其用作左侧变量。

这是使用现成模型、预测模型来估计条件平均处理效应的一种方法。但还有其他方法,这就是我将在本节课剩余部分重点讨论的内容。

因果树方法的详细说明

为了进一步解释这种因果树方法,我需要引入一些符号。首先,我们将有不同的集合,不仅仅是训练集和测试集,我们还将有一个称为估计样本的集合。我们称之为训练集的实际上是用于构建树的集合,估计集将是我们用于构建参数估计的集合。然后我们还将考虑假设的测试样本。它不会直接用于估计,但我们想讨论我们的最终目标是在测试集中做好处理效应估计的均方误差。

为了描述这是如何工作的,我们将使用大写 Π 来表示一个划分,并让 τ̂(x) 首先由用于形成处理效应估计的估计样本和划分 Π 来参数化。因此,我们让 τ̂(x, S, Π) 为样本 Sx_i 被分配到的叶子节点中的样本平均处理效应。同样,你取一个单位及其协变量,如果我理解他们的协变量,我可以根据这个划分 Π 确定他们在哪个叶子节点中。这就像我们之前有矩形划分的例子,对于每个 x,它落入一个矩形,所以 L 是由其协变量决定的该单位所在的叶子节点。一旦我有了这个单位所在的矩形,我对处理效应的估计就只是该叶子节点中该单位的样本平均处理效应。所以所有这些符号只是说,它是叶子节点中治疗结果样本平均值与对照结果样本平均值之间的差异。这里我们求和的是估计集中与这个 x 位于同一叶子节点的单位。

目标函数与优化

正如我之前提到的,我们想要做的是尝试找到一个划分,尽可能好地使我们的估计处理效应与实际处理效应相匹配。因此,我可以定义这个不可行的均方误差目标函数:如果我能实际观测到 τ_i(第 i 个单位的真实处理效应,这是我无法观测的),那么目标函数是什么。我实际上要将其定义为两个集合的函数,所以我的总体目标是最小化测试集中的均方误差。但我的 τ̂ 估计将由我用于构建样本平均估计的估计集以及我的划分来参数化。记住,我的划分又来自训练集。所以 τ̂Π 来自训练集,但 τ̂ 是叶子节点的样本平均处理效应,根据估计集估计。然后我的最终目标是找到一个好的 τ̂ 函数,在一个独立的隐藏测试集中表现良好。

所以我可以将这个均方误差目标写为测试集中 τ_i 减去 τ̂ 的平方和。然后我可以做一点代数运算将其展开,并看到这个均方误差实际上可以写成三项:τ_i²-2τ_i τ̂τ̂²。现在,我可以思考这个均方误差的期望值是什么,其中我对训练集和测试集取期望。我想做的是,在我选择划分 Π 的时候,以一种在期望中能很好地最小化测试集均方误差的方式来选择我的划分 Π。所以在我选择划分 Π 的时候,我不知道我的 SS_test。但我会尝试选择我的 Π,使其在期望中在这方面做得好。

当我取期望时,我可以做更多代数运算(应该说,要得到这个表达式,幕后还需要几行代数运算),但当我取期望时,我可以做一些代数运算,并以我在这里最后一个方程中完成的方式表达它。第一项是 τ̂ 的方差。基本上,一个更富有表现力、变化更多的 τ̂,在其他条件相同的情况下,如果最小化测试集的均方误差,将是好的。我们知道方差将是好的原因之一是,我们的 τ̂ 根据构造在划分的叶子节点内将是无偏的。我们知道它将是无偏的原因在于,估计集是独立的,估计集没有用于构建 Π,所以因为我们的 τ̂ 定义为样本平均值的差异,它将是一个无偏估计。因为它是无偏的,在无偏的条件下,拥有一个随 x 准确调整、变化更多的 τ̂ 将在最小化测试集均方误差方面做得更好。

然后我们可以看最后一项,一直到最后,我们有这一项 E[τ_i²]。这个期望实际上不依赖于我的估计 τ̂。因此,在选择 Π 时,我们可以忽略它。所以无论 Π 是什么,τ_i² 的期望都是相同的。所以,即使估计 τ_i² 的期望可能很困难,但如果我比较两个划分,这并不重要。记住,我将使用这个均方误差的期望值作为选择划分 Π 的目标函数,这是我们的目标。我们需要一个好的目标函数来比较不同的 Π。如果我比较两个 Π,我将取一个 Π 的均方误差与另一个 Π 的均方误差的差值,而这个 E[τ_i²] 将抵消掉。所以我可以忽略它,即使它很难估计,我也不必关心它。

中间项是 τ²x 的期望。τ 是一个未知参数,我们不知道真实的 τ 是什么。但我们可以使用数据来估计它。所以,这一切将归结为提出这两个表达式的好估计量,然后将其用作选择 Π 的标准。

我想强调,这个表达式大量使用了这样一个事实:在我们提出的特定算法中,我们的估计 τ̂ 将是无偏的。这对于这个特定公式成为均方误差的良好估计至关重要。如果我不知道我的 τ̂ 是无偏的,这个代数运算就不成立,我也无法得到这个特定的表示。

因果树算法

一旦我们解决了提出要优化的目标的问题(同样,我们只是用一点代数推导出了一个目标),我们发现了即使我们无法观测到任何特定观测的 τ_i,我们也可以得出不可行均方误差标准的估计。一旦我有了均方误差标准,我就可以使用因果树算法,该算法与原始回归树算法非常相似,只是我优化的是不同的标准。特别是,我将使用一种贪心算法递归地将协变量空间 X 划分为一个划分 Π,在每个节点,分裂将被选择为最小化我们对所有可能二元分裂的期望均方误差估计的那个。我还必须进行一些小的修改,以确保每次我进行分裂时,每个叶子节点中实际上都有治疗单元和对照单元,并且有最小数量的这些单元。我不想最终得到一个只有治疗单元的叶子节点,因为那样我就无法估计样本平均处理效应。我将使用交叉验证来选择划分的深度,该深度最小化使用留出折叠作为测试集代理的处理效应均方误差估计。最后,我将通过将我的划分修剪到从交叉验证中选择的深度来选择这个最优划分 Π*,或者我将修剪那些对拟合优度改善最小的叶子节点。最后,我将使用估计样本 S 估计每个叶子节点中的处理效应。

这个算法与回归树算法完全相同,只是我现在不是最小化结果的均方误差,而是最小化处理效应的期望均方误差,并且我还会加入一些额外的约束,以确保当我进行分裂时,我有足够的治疗单元和足够的对照单元。所以它基本上只是一棵回归树,但针对处理效应进行了优化。但我还将使用这种样本分割,这在机器学习文献中并不常用。样本分割将确保我使用新样本来估计处理效应,一旦我有了划分,而不是使用相同的数据来选择我的分裂和估计处理效应。这将给我带来我喜欢的良好统计性质。

总结

在本节课中,我们一起学习了如何利用机器学习方法,特别是回归树及其变体,来估计条件平均处理效应和处理效应异质性。我们讨论了结合机器学习与因果推断的动机、面临的挑战(如缺乏真实处理效应的观测、需要有效推断),以及通过样本分割、目标函数调整等策略来克服这些挑战。我们介绍了单树法、双树法、转换结果法以及因果树法等多种方法,并重点阐述了因果树法如何通过优化处理效应的均方误差、进行样本分割和交叉验证,在保持可解释性和透明度的同时,提供可靠且可推断的异质性处理效应估计。这为后续学习如何利用这些估计来制定最优处理分配策略奠定了基础。

010:条件平均处理效应之树模型 🎯

在本节课中,我们将学习如何利用因果树模型来估计条件平均处理效应。我们将从构建优化目标开始,逐步介绍因果树算法的具体步骤,并通过两个实际案例来展示其应用和重要性。


构建优化目标与算法概述

上一节我们讨论了估计处理效应的挑战。本节中,我们来看看如何为因果树模型构建一个可优化的目标。

我们无法直接观测到个体处理效应 τ_i,但可以通过一些代数推导,构建一个对不可行的均方误差准则的估计。一旦有了这个均方误差准则,我们就可以使用因果树算法。该算法与原始回归树算法非常相似,只是我们优化的准则不同。

具体来说,我将使用一个贪心算法,递归地将协变量空间 X 划分为一个分区 π。在每个节点,我们将选择能够最小化我们对所有可能二元划分的期望均方误差估计的划分。

我还需要进行一些微小的修改,以确保每次划分时,每个叶子节点中实际上都有处理组和对照组单元,并且数量达到最小。我不希望得到一个只有处理组单元的叶子节点,因为那样我就无法估计样本平均处理效应。

我将使用交叉验证来选择分区的深度,该深度能最小化处理效应均方误差的估计,其中留出的折叠数据作为测试集的代理。

最后,我将通过将我的分区修剪到交叉验证选择的深度来选择这个最优分区 π*。我将修剪那些对拟合优度改善最小的叶子。

最终,我将使用估计样本 SS 来估计每个叶子中的处理效应。

这个算法与回归树算法完全相同,只是我现在要最小化的是处理效应的期望均方误差,而不是结果变量的均方误差。我还会加入一些额外的约束,以确保在进行划分时,我有足够的处理组和对照组单元。所以,它基本上就是一个为处理效应优化的回归树。

但我还将使用样本分割,这在机器学习文献中并不常用。样本分割将确保,我不是使用相同的数据来选择划分和估计处理效应,而是在获得分区后,使用一个新样本来估计处理效应。这将赋予我期望的良好统计特性。


应用案例一:社会调查实验

现在让我们看看如何在一个例子中应用因果树的想法。

第一个例子是使用在“综合社会调查”中进行的一项调查实验。综合社会调查是一项每年进行的大型调查,会询问许多关于人们观点的问题。偶尔,他们会进行实验,其中一些调查参与者得到一个问题的某种措辞,而其他参与者得到相同问题但不同的措辞。

这项在1986年至2010年间进行的实验中,一些人被问及“你对福利有什么看法?”,而另一些人被问及他们对“对穷人的援助”有什么看法。如果你不是来自美国,“福利”在美国就是对穷人的援助。但“福利”这个词已经被政治化了,尤其是在这个时期。根据你的观点,“福利”被视为一个负面词汇,保守派往往更批评福利政策,并且他们更频繁地使用“福利”这个词。

感兴趣的结果是,你是否表示支持政府在这个领域的支出。问题是,称其为“福利”还是“对穷人的援助”会改变你的回答吗?

为了分析这一点,我们查看了88个协变量,其中一些彼此高度相关。正如我们在机器学习预测方法中讨论过的,重要的是要认识到,如果某些协变量彼此相关,树可能会根据一个协变量进行划分,但它同样可以根据另一个协变量进行划分。原则上,如果两个协变量高度相关,选择哪一个进行划分完全无关紧要。因此,在解释树时我们必须记住,不能过度解释树选择哪个协变量进行划分,因为在某些情况下,你会得到完全相同的个体分组,只是用不同的方式切割他们。

以下是我们在该特定数据集中估计因果树的输出结果。

观察这棵树,我们看到它根据收入进行划分,也根据教育程度进行划分,还根据政治观点进行划分。这棵特定的树在将数据划分为子组方面做得最好,其中每个组内具有相似的处理效应异质性,而组间处理效应存在差异。

我们在树底部看到的估计是,对于每个叶子,询问该问题的处理效应是多少。我们看到,在所有组中,都存在较大的处理效应——人们对“对穷人的援助”的支持度高于对“福利”一词的支持度,所以我们到处都看到正的处理效应。但其中一些群体,尤其是更保守的群体,似乎有更强的处理效应。

在右侧,我们试图检验假设:首先,叶子1的处理效应是否与其他每个叶子的处理效应相同。我们可以看到,我们能够强烈拒绝这个假设,这证明我们确实发现了处理效应异质性。我们也可以进行其他类型的检验,例如测试不同叶子之间的差异,以评估这种处理效应异质性是否真实。

现在我们要强调的一点是,我们使用一半的数据构建了这棵树,并使用另一半数据得出了我们的处理效应估计。我们称之为“诚实”估计,这将确保我们在此报告的效果,将是这些特定子群处理效应的无偏估计。你可以验证,如果你不使用诚实估计,即使用相同的数据来确定树并构建估计,然后你在测试集中查看是否得到相似的答案,你是不会得到的。因此,进行这种类型的诚实估计非常重要。


应用案例二:搜索引擎实验

现在考虑因果树的另一个应用,这是我之前在微软必应搜索引擎工作时进行的一项实验。

进行这项实验是为了了解在搜索引擎中切换算法链接位置的影响。我们实际上并行运行了一组实验。让我们关注“13号切换”实验。在左侧的条形图中,我们看到的是搜索结果页面顶部链接的平均点击率,这是在一系列搜索查询中的平均值。这些基本上是所有搜索查询,除了我们剔除了一些——我们剔除了导航性查询,例如,如果你输入“美国银行”并试图进入美国银行应用程序,这类查询被剔除了。

在剩余的查询(非导航性查询)中,我们看到在这个特定样本中,顶部链接的点击率为25%。在处理组中,就在向用户显示搜索结果之前,我们切换了第一和第三链接的排名。剩余的点击率约为12%。虚线红框显示了当原本应处于第一位置的链接被移到第三位置时损失的点击量。

你可能会问,为什么我们需要进行实验?为什么不直接查看原始点击率?这是因为搜索引擎通常将更相关的结果放在顶部。第一位置的东西通常比第三位置的东西更符合用户的查询。因此,我们不能仅仅比较第一和第三位置来理解位置的作用。确实,深灰色阴影框显示了当链接没有被重新排名时,第三位置的链接通常获得的点击量——通常第三位置的东西获得7%的点击。但是当搜索结果被重新排名时,现在处于第三位置的东西获得了12%的点击。所以我们可以看到,第一位置的东西实际上平均比第三位置的东西更好,因为当我们随机将第一位置的东西放在第三位置时,它获得了12%的点击,这比通常出现在第三位置的结果获得的点击要多。

但随机实验让我们看到,如果你把一个好的东西放在第三位置,即使它很好,用户仍然不会在那里点击它,当它移动到第三位置时,该项目损失了大约一半的点击量。这是一项我在数百万用户中进行的实验,目的是了解搜索操纵的作用。

然后,我们可以将因果树估计方法应用于该实验的数据。同样,我们将数据分成训练样本和估计样本,并用它来划分数据,使得分区的每个元素(树的每个叶子)在叶子内具有相似的处理效应,但在叶子之间处理效应不同。

平均而言,我们看到在这个“第一到第三”实验中,降级导致的处理效应是损失0.125次点击。但在这棵树中,我们看到相当多的处理效应异质性。例如,被分类为适合显示图像的图像查询,以及被分类为高度匹配名人信息的查询,其处理效应相对较小。部分原因是这类查询的点击量本身就不多,这些是人们查看图片的查询,因此重新排名结果的处理效应不大。

另一方面,在页面下方出现的一些叶子中,我们看到像被分类为高度匹配维基百科的查询具有较大的处理效应,这表明更多信息性的查询,排名更重要,因此操纵也可能更重要。

现在你可以看到树的其余部分,这显示了各种不同的细分市场,具有相当多的处理效应异质性。这个应用有数十万个观测值。

交叉验证后的树,其结构是在训练样本上确定的,现在有大约20个叶子。所以我们最终要做的是,估计大约20个叶子的处理效应。也就是说,我们只是计算少量参数,但使用了数十万个观测值。因此,你可能会认为在这种情况下样本分割并不重要,这就像用数十万个观测值对23个虚拟变量进行回归。所以看起来,样本分割应该不太重要,因为样本量相对于模型的复杂性来说很大。

但我们将看到,实际上进行样本分割确实很重要。在左侧我们看到诚实估计,这些是在估计样本上获得的估计;而自适应估计是当我们使用相同的数据来构建树并估计叶子中的处理效应时获得的估计。

我们首先可以看到,训练样本中的估计处理效应(即这些自适应估计)更具可变性,它们更分散于平均处理效应周围。记住平均处理效应是-0.125。


诚实估计与自适应估计的对比

实际上,如果我用图表来可视化,做这个比较会更容易一些。

我们在Y轴上绘制的是叶子中处理效应相对于平均值的偏差。也就是说,我减去了平均处理效应(-0.125),现在我看的是与平均处理效应的偏差。我根据它们与平均处理效应的偏差对叶子进行了排序。

我们看到自适应估计用蓝色表示,诚实估计用橙色表示。橙色估计是在独立的估计样本上得到的。你看到的是,蓝色条更高,它们更负也更正。这表明,当我们使用相同的数据来选择叶子和估计效应时,我们得到了更极端的估计;而当我们把相同的树结构应用到新的数据集,并在新数据集的每个叶子中估计处理效应时,得到的估计则不那么极端。

因此,诚实估计的分散程度较小,这证明了过拟合的存在。事实是,即使我们有数十万个观测值,我们也有很多协变量,所以训练集中的那些叶子是围绕极端观测值构建的,因此它们往往会发现比实际情况更大的处理效应异质性。


因果树总结与展望

关于因果树的总结。这些因果树的优势在于,尽管我们移动了目标(即我们使用数据来寻找一组低维参数,我们试图在每个少量叶子中估计处理效应),但这种方法的优势是我们得到了有保证的覆盖率。也就是说,我们能够确保我们对处理效应的估计,是针对所定义的叶子的无偏估计。

这不会给你最好的拟合优度。更灵活的方法(我稍后会谈到)可能在表达处理效应异质性方面做得更好,但为了检验假设,我们可能依赖于更多的假设。因果树为我们提供了一种非常简单的检验假设的方法。

还有一些其他评论。树易于解释,但也容易被误解。所以我想强调,我们不应该过度解释树的划分方式,因为将一棵树划分为相同组的方式可能有很多种。如果两个变量高度相关,我们可以根据其中一个或另一个进行划分,这将识别出相同的个体。所以,仅仅因为一棵树没有根据某个变量进行划分,并不意味着该变量与处理效应异质性无关。

同样,可能存在许多有效的因果树。如果我们以不同的方式分割数据,我们会得到不同的树,这并不意味着一个是错的,另一个是对的。一般来说,可能存在许多表达处理效应异质性的数据分区。因果树算法在某种意义上会找到拟合最好的那个,但可能有许多因果树在处理效应估计方面具有相似的拟合优度。

因此,我们建议的事情之一是,由于如果协变量相关,叶子可能以多种方式不同,实际上可以通过叶子中所有协变量的均值来描述叶子。所以,即使你只根据三个叶子进行划分,我们也可以取一个叶子并说,好吧,我们可以这样定义叶子:这些是高收入和高教育程度的人。我们可以那样定义叶子,我们也可以查看这些叶子的其他特征并进行比较。当我们讨论如何处理因果森林的输出时,我会再回到这一点。

作为对比研究,在讲座的下一部分,我们将从因果树转向因果森林。因果森林实际上将尝试灵活地、平滑地估计 τ(x),使得每个 x 都有一个不同的估计值 τ(x)。这与因果树形成对比,在因果树中,许多 x 将对应相同的处理效应估计值,因为树中同一叶子里的每个人都将具有相同的处理效应估计值。

所以,使用分区存在明显的问题。如果你的 x 正好在两个叶子的边界上,那么你将得到一个并不真正适合你的估计,它将更针对叶子中的普通人。但如果你在叶子的边缘,你的估计对你来说就不会那么好。如果你的 X 只改变了一点点,使你进入了一个不同的叶子,你会得到一个不连续的不同处理效应估计,这有一些缺点。

如果我们尝试灵活地估计一个平滑函数 τ(x),该函数真正针对每个 x,我们将得到一个更灵活、总体上均方误差更小的估计。但我们可能仍然有其他问题,因为尽管原则上我们将展示如何获得统计保证,但实际性能可能并不好,并且我们可能难以获得有效的假设检验。

我还要强调,这些确实是不同的问题。因果树试图说,让我们找到一个分区,然后在分区中估计处理效应。它试图划分数据,然后在这些划分中估计处理效应。而为个体找到最佳估计是另一种不同的问题。所以,并不是一个比另一个更好或更差。你可以设想两种方法都适用的场景。如果我必须张贴一张海报,展示人们如何被分配到财政援助计划,那么我需要一些可以描述的东西。另一方面,如果医生必须记住给你某种药物的情况,如果规则简单并且有一个决策树供医生使用,那可能很好。另一方面,如果医生手边有电脑,他们可以将你的所有症状输入电脑,电脑会反馈你应该服用什么药物,那么我们可以使用非常灵活的方法,我没有理由需要使用简单的决策树。

因此,你使用哪种方法,某种程度上取决于你提出的问题类型以及你打算如何使用得出的估计。并不是一个正确,另一个错误。

本节课中我们一起学习了因果树模型。我希望在非常简单的算法背景下进行的讨论,突出了将机器学习与因果推断相结合所面临的一些挑战和机遇。在后续课程中,我们将继续研究替代方法,以及围绕结合机器学习和因果推断来估计处理效应异质性的其他问题。

011:条件平均处理效应与因果森林

在本节课中,我们将学习如何从估计简单的处理效应异质性表示(如因果树),过渡到估计条件平均处理效应的灵活函数形式。我们将探讨几种方法,并重点介绍因果森林的原理、应用及其改进。

从简单估计到灵活函数形式

上一节我们介绍了因果树,它通过递归分区来定义用于匹配的“邻域”。本节中,我们来看看如何估计更灵活的条件平均处理效应函数形式。

我们之所以需要这种灵活的非参数估计,有多种动机。其一,我们可能希望理解偏效应,即固定某些协变量X,观察处理效应如何随其他协变量的变化而变化。其二,这些估计可以作为其他估计问题的输入,例如用于识别高处理效应个体以进行干预分配,或用于估计最优策略。

基线方法:匹配与核回归

以下是两种基础的、非适应性的条件平均处理效应估计方法。

  • K最近邻匹配:对于目标点x,找到K个最近的已处理观测值,计算其样本均值;再找到K个最近的对照观测值,计算其样本均值;最后将两者相减,得到τ̂(x)。这种方法直观,在协变量维度低时表现稳健,但存在严重的维度灾难问题。
  • 核回归:可以看作是KNN的推广。它对目标点x附近的已处理观测值进行加权平均(距离越近权重越高),再减去对附近对照观测值的加权平均,从而得到估计。

这两种方法的主要挑战在于,当协变量维度增加时,寻找“邻近”观测点的效率会急剧下降。

因果森林:自适应最近邻匹配

现在让我们谈谈随机森林,我们将以一种不同于标准的方式解读它——将其视为自适应最近邻匹配

随机森林由Breiman于2001年提出,是一种流行的自适应最近邻估计启发式方法。它通常作为“黑箱”使用,即使不调参也往往表现良好,是能快速实现的高性能机器学习方法之一。

从因果树到因果森林

我们已经介绍了因果树,它通过递归分区(使用因果推断分裂规则)来定义匹配邻域,并倡导使用样本分割来确保每个叶节点内处理效应估计的置信区间无假设依赖。

如何从单棵树扩展到森林? 随机森林的核心思想是构建并平均许多不同的树。我们的估计τ̂(x)可以是许多树估计的处理效应的平均值。

为了使每棵树彼此不同,通常采用两种技术:

  1. Bagging或子采样:对训练集进行重采样。这有助于平滑由单棵树边界引起的不连续性。
  2. 特征子集选择:每棵树只关注全部协变量的一个子集。这能确保森林的多样性。

在理论分析中,我们更关注子采样,因为它能带来更好的统计性质。更重要的是,我们可以构建诚实树——即不使用相同数据来选择分区和进行预测的树。通过平均许多这样的诚实树,我们就能得到无偏估计。

因果森林的理论保证与优势

Wager和Athey在2018年的主要结果表明,在满足一定技术条件下,通过平均大量基于子采样的诚实树构建的森林,其估计量是渐近正态的,并且以真实值为中心。这使我们能够构建有效的置信区间。

因果森林的关键优势在于其自适应性。与KNN需要在所有维度上寻找邻近点不同,因果森林的分裂规则能够自动识别对处理效应异质性重要的协变量,从而构建出更有效的邻域。

实例演示:模拟数据

假设我们有20,000个观测值,6个均匀分布的特征,其中只有2个真正影响处理效应。

  • 因果森林能够捕捉到真实的非线性形状,尽管由于是树的平均,边界处略显“方块化”。
  • KNN估计则显得非常模糊,因为它被迫在6个维度(包括4个噪声维度)中寻找最近邻,导致在重要维度上的邻近性不足。

当将协变量维度增加到20时,KNN的表现进一步恶化,而因果森林凭借其自适应性,依然能较好地识别处理效应异质性。校准图也显示,因果森林的估计更接近真实值。

实际应用案例

因果森林已被应用于多个领域:

  1. Hitsch和Mira:使用因果森林定向投放商品目录。
  2. Davis和Heller:分析暑期工作的异质性影响。
  3. Athey等人:研究经济援助申请的助推效果。

案例一:一般社会调查

我们分析一个关于问题措辞效应的随机实验:询问“福利支出是否过多”与“对穷人的援助是否过多”。

分析步骤:

  1. 检验随机化:通过估计倾向得分并比较处理组和对照组的分布,确认实验确实是随机分配的。
  2. 估计异质性:使用因果森林估计条件平均处理效应,直方图显示估计的CATE存在明显差异。
  3. 评估校准与真实性
    • 使用转换结果回归:将转换后的结果(代表个体处理效应)对估计的CATE进行回归。斜率显著不为0,说明存在真实的异质性;但斜率不等于1,说明模型未完美校准。
    • 使用分位数分组分析:基于估计的CATE将样本分为四组(使用交叉拟合避免数据窥探),然后分别估计每组的平均处理效应。结果显示能够区分部分组别,证实了异质性的存在。
  4. 解释异质性:通过检查高/低处理效应分位数组的协变量均值,发现年龄、收入、政治观点和性别是预测处理效应大小的关键因素。可视化展示了政治观点与收入之间的非线性交互作用。

案例二:助推填写经济援助表单

这是一个通过邮件和短信“助推”学生按时提交经济援助表单的实验。

分析发现:

  1. 平均处理效应显著:干预显著提高了按时提交率。
  2. 异质性信号较弱:校准回归显示斜率显著非零,但远离1。分位数分组分析结果噪音较大,表明这是一个低信号环境——数据中的噪声超过了真实的异质性信号。
  3. 关键协变量:“当前是否在籍”是预测处理效应异质性的最重要协变量。在籍学生对助推的反应更强。
  4. 对靶向政策的启示:我们比较了不同靶向策略(基于估计的CATE、在籍状态、基线预测等)相对于随机分配的提升效果。结果发现,在此低信号环境中,使用复杂的机器学习模型进行靶向的收益有限,有时甚至不如基于简单规则(如在籍状态)或随机分配。

超越基础森林:局部线性森林

因果森林并非万能。对于许多经济学数据中存在的平滑、单调或U形关系,森林试图用阶梯函数去拟合,效率较低。

局部线性森林是对因果森林的改进。它的思路是:在目标点u附近,运行一个加权线性回归,权重由森林决定的邻近度给出。通过估计斜率系数,该方法能够调整数据生成过程在边界附近的趋势,从而在边界处获得更好的拟合效果。

在一般社会调查的例子中,因果森林在协变量分布的边界处估计值趋于平坦,而局部线性森林则能更好地捕捉真实的关系形态。

总结

本节课中我们一起学习了条件平均处理效应的灵活估计方法。我们从基础的KNN和核回归出发,重点深入探讨了因果森林,将其理解为一种自适应最近邻匹配方法,并了解了其理论保证和自适应性优势。通过一般社会调查和经济援助助推两个案例,我们实践了估计、校准和解释异质性的完整流程,并认识到在低信号环境中解释结果需要格外谨慎。最后,我们介绍了局部线性森林作为对标准因果森林的一种改进,以更好地处理平滑关系。这些工具为理解和利用处理效应异质性提供了强大的框架。

012:处理异质性的稳健估计

在本节课中,我们将学习如何在观察性研究(而非随机试验)中估计处理效应的异质性。我们将探讨其中的核心挑战,并介绍如何构建能够稳健应对混杂偏倚的因果树和因果森林方法。

上一节我们介绍了在随机试验中估计处理异质性的方法。本节中,我们将把目光转向观察性研究。在观察性研究中,处理分配并非随机,某些个体可能基于其特征更倾向于接受处理。这意味着我们不仅需要处理异质性效应函数本身的复杂性,还需要应对由混杂因素带来的偏倚。幸运的是,通过结合本课程迄今所学的思想,我们可以有效地解决这些问题。

应用背景与问题定义

处理异质性问题是许多应用领域的核心关注点。

以下是几个典型例子:

  • 个性化医疗:假设有一种新疗法,你认为人们能从中获益,但某些人可能获益更多。你希望根据病史或其他信息,优先将治疗给予获益最大的人群。这就引出了理解干预异质性效应的问题。
  • 副作用规避:反之,假设某种治疗有严重副作用。你会希望避免将干预措施给予副作用高风险人群。理解谁最容易受到新疗法的副作用影响,同样是一个处理异质性问题,只是此时的结局变量是你希望避免的副作用。
  • 定向广告:在工业界,定向广告是另一个常见领域。从业者通常拥有大量数据集,能够利用机器学习从中提取非常细微的信号。

本课程的主题是机器学习方法,因此今天我们将聚焦于基于机器学习的处理异质性方法。但需要强调的是,这并不意味着你必须使用机器学习方法。你也可以使用经典方法,例如在线性回归中放入处理变量与协变量的交互项,这在某些应用中也能有效地捕捉处理异质性。使用机器学习方法并不会改变问题的本质,它只是让你能够处理更大、更复杂的数据集,并自动化部分分析。举一个极端的例子,假设你想进行个性化医疗,而算法的输入之一是大脑的CT扫描图像。你希望基于CT扫描判断谁将从某种治疗中获益。这是一个处理异质性问题,但若想用线性回归来处理,恐怕会非常困难,你可能需要基于图像识别的机器学习工具。

从随机试验到观察性研究

上周,Susan重点介绍了在随机试验中处理异质性的问题,并讨论了一些方法,包括因果树和因果森林。本周,我想继续这一讨论,但背景将不再是随机试验,而是观察性研究。在观察性研究中,我们还需要担心某些个体“选择进入”处理组,这意味着并非所有个体先验地拥有相同的接受处理的概率。这最终成为一个相当微妙的问题,它本质上结合了我们迄今在本课程中看到的大多数挑战。

我们讨论过估计平均处理效应(ATE)的挑战。平均处理效应本身是一个非常简单的参数,只是一个数字,但困难在于,如果你处于观察性研究环境中,你需要控制协变量、估计倾向得分等等,要做好这些工作需要付出相当的努力。另一方面,上周的重点是随机试验中的处理异质性估计。在随机试验中,没有混杂带来的困难,但困难在于异质性处理效应函数可能相当复杂,因此你需要更努力地工作,例如通过树或其他方式来表示它。

今天,我们将同时面对所有这些困难。我们的目标仍然是异质性处理效应函数,因此它将是复杂的。但同时,我们还必须担心混杂,需要使用倾向得分估计来使我们的估计变得稳健。所以,我们的问题也将包含这个维度。不过,幸运的是,如果你能以正确的方式结合迄今课程中的思想,一切都可以顺利进行。

本周内容概览

观察性研究中的处理异质性是我们本周的主题。

我将重点关注以下三个方面:

  1. 回顾关键难点:回顾估计处理异质性时出现的关键难点,包括总会出现的正则化偏倚(这在随机试验中也出现过),以及我们今天主要关注的混杂偏倚问题。
  2. 稳健估计常数处理效应:接下来,我将讨论如何在观察性研究中稳健地估计常数处理效应。这看起来可能有点像绕路,但非常重要。你可能会问,如果我们想理解处理效应如何变化并关注异质性,为什么还要关心估计常数处理效应?但回想一下因果树是如何工作的:因果树首先对你的空间进行划分,以找到处理效应基本恒定的区域。然后,在每个叶节点内,你希望处理效应大致恒定,从而可以估计该叶节点的处理效应参数。在观察性研究环境中,这意味着除非你知道如何在希望处理效应恒定的叶节点内估计常数处理效应,否则你无法运行因果树。所以我们将讨论这个问题。
  3. 构建稳健的树和森林:在讲座的最后部分,我们将讨论如何基于这些思想,为处理异质性构建稳健的树和森林。

这就是我们本周的计划。下周我们将继续,讨论如何超越这些针对树和森林的、抗混杂的思想,构建真正能与任何通用机器学习方法相结合的方法。

统计设定与估计目标

在统计设定方面,和往常一样。我们假设处理一组独立同分布的单元。每个单元有一个特征向量 X、一个观测结果 Y 和一个处理指示变量 W。我们有对应的潜在结果,表示在接受处理或不接受处理时会观察到的结果。因此,实际观察到的结果是你实际接受的处理分配所对应的潜在结果。

那么,我们想估计什么?在第二讲中,我们处于这个设定下,想要估计平均处理效应,即潜在结果的平均差异。但今天,我们想关注处理异质性。因此,我们仍然关注因果效应,即差值 Y_i(1) - Y_i(0)。但我们不只是想要这个量的平均值,我们想要更细致地了解发生了什么。

从个体处理效应到条件平均处理效应

在讨论我们实际想估计的目标之前,先快速说明一点。如果你说想估计个性化处理效应,那么很自然地会认为你想估计的量是 δ_i = Y_i(1) - Y_i(0)。记住,Y_i(1) 是第 i 个人在接受处理时会经历的结果,Y_i(0) 是其在控制条件下会经历的结果。因此,这里定义的 δ_i 从潜在结果的角度看,就是处理对第 i 个人的效应,这被称为个体处理效应。当然,如果你能知道个体处理效应,你会想去估计它。但问题是,这些个体处理效应本质上是不可知的。对于任何特定的人,我要么给你处理,要么不给你处理。我永远不可能同时既给你处理又不给你处理。这意味着,对于任何特定的人,你要么观察到 Y_i(1),要么观察到 Y_i(0),你永远观察不到 Y_i(1) - Y_i(0)。所以你永远无法观察到单个人的 δ_i,这本质上是不可知的。因此,为了估计处理效应,我们总是需要在一些接受处理的人和其他可比较的未接受处理的人之间进行比较。例如,在随机试验中以平均处理效应为目标,就是一种非常直接且简单的比较方式。

条件平均处理效应

那么,我们不想估计 δ_i,我们想估计什么呢?我们想估计所谓的条件平均处理效应。这本质上是平均处理效应,即考察平均的处理后潜在结果减去控制后潜在结果的差异。只不过,我们不是估计总体的平均值,而是估计在给定协变量条件下的平均值。因此,我们不是询问这个特定个体的处理效应是什么,而是说,如果存在一些协变量,比如基于性别、年龄、病史等,你可以问:对于具有这类协变量的人,他们的平均处理影响是什么?当我说我们想测量处理异质性时,我的意思是我希望理解条件平均处理效应如何随你能够测量的 X 变化。

条件平均处理效应的定义如下:

τ(x) = E[Y_i(1) - Y_i(0) | X_i = x]

为了在脑海中有一个清晰的目标,今天当我说我们想估计条件平均处理效应函数时,具体指的是:如果我们想以均方误差准确捕捉它,即我们有一个人的分布,每个人有其协变量 x,对于你的 x,你有真实的 τ(x)(你的真实条件平均处理效应),然后我们将估计 τ̂(x)(你的条件平均处理效应估计值),我们希望对于典型个体,这两者是接近的。

观察性研究中的识别与挑战

如前所述,我们想在观察性研究中估计条件平均处理效应。这与我们在第二周看到的环境相同。我们不再假设处理是随机的,但我们将假设存在你可以测量的 X,使得在给定 X 的条件下,处理如同随机分配。这是我们见过的、用于识别平均处理效应的假设。它同样也能让你以非常相似的方式识别条件平均处理效应。再次强调,在此假设下工作的统计难点始终是:如何在不引入偏倚的情况下,有效地消除由 X 引起的混杂效应?

估计处理异质性的难度

在深入本讲的细节之前,我想最后说几句,谈谈估计处理异质性是否困难?需要注意什么?也许还有,在哪些情况下你认为估计处理效应异质性可能更容易或更困难,以便你知道需要注意什么。

现实情况是,准确估计异质性处理效应函数比仅仅准确估计平均处理效应要困难得多。你通常需要更多的数据。在许多问题场景中(如果你处理课程中提供的数据,你会看到这一点),你可能会去寻找异质性处理效应,但仅凭现有数据,你可能什么也找不到。这是正常的。估计处理异质性是一项艰巨的任务,它比估计平均处理效应要困难一个数量级,你将需要更多的数据。但这并不意味着寻找处理异质性不值得,因为当你确实发现一种医疗方法不仅平均上有帮助,而且对某些人的帮助大于其他人时,你就可以明智地进行优先级排序,决定谁应该或不应该接受治疗,这可能具有巨大的价值。所以,当你能够发现异质性时,这通常非常好,但你并不总是能够做到。

一个具体案例的挑战

通常,只需思考一个应用实例,就能明白为什么这会相当困难。想象我们正在研究出血性休克(严重大出血)的患者,并观察给予纤维蛋白原治疗的效果。人们认为这有助于止血,我们关注纤维蛋白原对出血性休克患者死亡率的影响。假设我们也想寻找其中的异质性,即是否有些人比其他人更能从纤维蛋白原中获益以预防死亡?这是一个重要的问题。但当你思考这个问题时,有些问题会立即凸显出来。

首先,我们关心的结果是死亡率,这是一个非常极端的结果。我们正在研究的病症——出血性休克,也非常严重。因此,相对于给予纤维蛋白原,这个问题中有很多事情在发生。也许纤维蛋白原有一点帮助,但它能帮助的程度有一个明确的上限。现实地看,这些数据是由急救人员收集的。你可以想象,有些人你赶到时,发现他们伤势如此严重,以至于你无能为力,他们很可能无论如何都会死亡。另一方面,你可能会遇到其他正在出血但基本上情况良好的人,他们无论如何都可能存活下来。可能有一群处于中间状态的人,早期给予纤维蛋白原可能会真正产生影响。但问题是,有些人的生存机会可能接近0%或低于10%。如果给予纤维蛋白原能使某些人的生存机会增加5%,这是非常有价值的,但处理效应的绝对幅度相对于问题的基线来说可能非常非常小。

其次,同样在这个问题中,你拥有来自急救人员的数据。他们可能更倾向于将纤维蛋白原给予那些基于观察特征他们认为更需要的人,因此可能存在基于未测量特征 X_i 的选择。你需要处理这个问题。再次,当与处理效应(尤其是处理异质性)可能很弱这一事实相结合时,你可能会真正担心混杂效应相对于你感兴趣的处理效应大小来说可能很大,因此你真的需要小心地控制混杂。

总结

本节课中,我们一起学习了在观察性研究中估计处理效应异质性的核心框架与挑战。我们明确了条件平均处理效应是可行的估计目标,并指出了相较于随机试验,观察性研究需要同时应对效应函数复杂性和混杂偏倚的双重困难。通过一个具体案例,我们理解了处理效应信号可能微弱,使得稳健的估计方法至关重要。在接下来的章节中,我们将深入探讨如何构建能够对抗混杂偏倚的稳健估计方法。

013:异质性处理效应估计中的偏差来源 🔍

在本节课中,我们将深入探讨异质性处理效应估计器的偏差来源。我们将首先了解两种主要的偏差:正则化偏差和混杂偏差。然后,我们将讨论如何设计方法来避免这些问题。通过一系列基线方法的示例,我们将分析它们何时有效、何时失效,从而理解这些偏差的本质。

正则化偏差:一个直观的问题

上一节我们介绍了异质性处理效应的概念,本节中我们来看看一个常见的问题:正则化偏差。在工程实践中,我们经常需要评估一个模型是否有效。最佳实践通常是:首先证明问题存在且难以解决,然后展示模型能解决该问题,从而获得模型有用的信心。在观察性研究中评估处理异质性方法时,我们也采用类似思路。我们先展示可能出错的地方,然后讨论如何设计避免这些问题的方法。

基线方法:T学习器与S学习器

在无混杂假设下,处理在给定协变量X的条件下如同随机分配。此时,条件平均处理效应可以表示为两个回归函数的差:

公式: τ(x) = μ₁(x) - μ₀(x)

其中,μ₁(x) = E[Y | X=x, W=1]μ₀(x) = E[Y | X=x, W=0]。因此,估计τ(x)就转化为两个非参数回归问题。

以下是两种直接的估计方法:

T学习器:分别对处理组和对照组拟合两个回归模型。

  1. 在对照组数据上估计 μ̂₀(x)
  2. 在处理组数据上估计 μ̂₁(x)
  3. 将两者之差作为处理效应估计:τ̂(x) = μ̂₁(x) - μ̂₀(x)

S学习器:将处理变量W作为特征,与协变量X一起拟合一个单一的回归模型。

  1. 拟合一个模型 μ̂(x, w) 来预测Y。
  2. 通过查询该模型得到处理效应估计:τ̂(x) = μ̂(x, 1) - μ̂(x, 0)

为了具体实现,我们可以使用随机森林等任何预测方法。以下是用随机森林实现的示例代码:

# T学习器示例代码
from sklearn.ensemble import RandomForestRegressor
# 分别对对照组和处理组拟合模型
forest0 = RandomForestRegressor().fit(X[W==0], Y[W==0])
forest1 = RandomForestRegressor().fit(X[W==1], Y[W==1])
tau_hat_T = forest1.predict(X_test) - forest0.predict(X_test)

![](https://github.com/OpenDocCN/dsai-notes-pt2-zh/raw/master/docs/stf-ml-cslinf/img/9a76ef700e5d76940353a5416f486b28_28.png)

# S学习器示例代码
# 将处理变量W作为特征加入
XW = np.column_stack([X, W])
forestS = RandomForestRegressor().fit(XW, Y)
# 分别预测W=1和W=0时的结果
tau_hat_S = forestS.predict(np.column_stack([X_test, np.ones_like(X_test)])) - \
            forestS.predict(np.column_stack([X_test, np.zeros_like(X_test)]))

随机森林的工作原理回顾

为了理解后续问题,我们简要回顾随机森林的工作原理。单个决策树通过递归划分特征空间为矩形区域进行预测,在每个区域内用样本输出的平均值作为预测值。随机森林通过构建多棵不同的树并聚合它们的预测(例如取平均)来获得更稳定、更准确的预测。这种“装袋”策略通过增加树的多样性来提高性能。

方法表现与正则化偏差的出现

现在,我们在一个简单的随机试验模拟中测试T学习器和S学习器的表现。在这个模拟中,处理分配是随机的(无混杂),真实处理效应τ(x)是协变量x₃的逻辑函数形状,而基线响应函数则更为复杂。

令人惊讶的是,两种方法的表现都很差。T学习器的估计非常分散,而S学习器不仅分散,还存在系统性低估处理效应大小的偏差。这引发了疑问:既然τ(x) = μ₁(x) - μ₀(x)在理论上是正确的,并且我们用表现尚可的随机森林分别估计了μ₁(x)和μ₀(x),为什么最终结果却如此糟糕?

问题根源在于正则化偏差。我们可以通过一个更简单的例子来理解它。假设在一个一维协变量、随机分配但对照组样本远多于处理组的试验中,真实处理效应恒为1。T学习器首先用数据丰富的对照组拟合μ₀(x),模型可以灵活地捕捉到数据中的变化。然后,它用数据较少的处理组拟合μ₁(x),由于数据少,模型倾向于更简单(正则化更强),可能拟合出一个近乎常数的函数。当计算差值 τ̂(x) = μ̂₁(x) - μ̂₀(x) 时,在μ₀(x)变化剧烈而μ̂₁(x)平滑的区域,就会产生虚假的异质性处理效应信号,仿佛中间部分的处理效应变小了。这显然是不对的,因为真实处理效应是恒定的。

关键在于,虽然τ(x)在函数形式上等于μ₁(x)与μ₀(x)之差,但直接应用为通用预测任务设计的机器学习方法,而不仔细考虑估计过程,可能会导致对这两个分量进行不一致的正则化,从而在它们的差值中引入偏差。

应对正则化偏差:X学习器

那么,如何应对正则化偏差呢?除了上节课提到的因果树等专门算法,我们介绍另一种方法——X学习器。它同样遵循“通过解决一系列预测问题来估计处理效应”的配方,但设计更为精细。

X学习器的步骤如下:

  1. 与T学习器一样,首先分别估计 μ̂₀(x)(在对照组上)和 μ̂₁(x)(在处理组上)。
  2. 第一步估计:对于每个处理组个体,计算其观测结果与“反事实”控制结果的差值:D₁ᵢ = Yᵢ - μ̂₀(Xᵢ)。这可以看作个体处理效应的一个噪声代理。然后,将 D₁X 在处理组样本上进行非参数回归,得到第一个处理效应估计 τ̂₁(x)
  3. 第二步估计:角色互换。对于每个对照组个体,计算其“反事实”处理结果与观测结果的差值:D₀ᵢ = μ̂₁(Xᵢ) - Yᵢ。然后将 D₀X 在对照组样本上进行非参数回归,得到第二个处理效应估计 τ̂₀(x)
  4. 最终估计:将两个估计通过倾向得分权重进行加权平均,得到最终的处理效应估计:τ̂(x) = g(x)τ̂₀(x) + (1-g(x))τ̂₁(x),其中 g(x) 是倾向得分估计的函数(例如,g(x)=ê(x))。

其核心思想是,我们利用数据较多的组(如对照组)来获得更准确的基线模型 μ̂₀(x),然后用它来为数据较少的组(处理组)生成更可靠的效应代理值 D₁,进而估计τ(x)。这缓解了因两组数据量不同导致的正则化强度差异问题。在之前的简单例子中,X学习器能够成功恢复出恒定的处理效应,表现远优于T学习器和S学习器。

混杂偏差:观察性研究中的挑战

上一节我们讨论了即使在随机试验中也存在的正则化偏差,本节我们来看看观察性研究中特有的混杂偏差。当处理分配概率随协变量X变化时,就会产生混杂。如果这种关系与结果相关,且未被恰当调整,就会导致估计偏差。

我们修改之前的模拟:现在处理分配概率是x₃的逻辑函数,且x₃越大,基线结果Y也倾向于越大,从而引入了混杂。真实处理效应仍然是恒定的。

测试发现,T学习器和X学习器此时的表现都很糟糕。它们都“幻觉”出了根本不存在的异质性处理效应。这是因为当倾向得分不是常数时,我们必须在估计处理效应时对其进行调整。就像在估计平均处理效应时使用AIPW等方法一样,在估计条件平均处理效应时,我们也需要巧妙地结合倾向得分来消除混杂的影响。

总结与展望

本节课中,我们一起学习了异质性处理效应估计中的两大偏差来源。

  1. 正则化偏差:源于分别估计μ₁(x)和μ₀(x)时的不一致正则化,即使在随机试验中也会出现。可以通过专门设计的算法(如因果树、X学习器)来缓解。
  2. 混杂偏差:在观察性研究中,当处理分配与协变量相关时出现。解决它需要将倾向得分重新纳入考量,并谨慎地将处理效应成分与混杂成分分离开来。

处理混杂偏差更具挑战性,我们需要在表达处理效应的同时,有效地消除混杂成分。这将是后续课程内容的重点。

014:混杂鲁棒的异质性处理效应估计

在本节课中,我们将要学习如何以对混杂因素鲁棒的方式估计异质性处理效应。我们将从一个更基础的问题开始:如何估计恒定的处理效应。这是构建更复杂方法(如基于树的异质性处理效应估计器)的关键基石。

回顾:恒定处理效应的鲁棒估计

在开发用于估计异质性处理效应的混杂鲁棒方法的道路上,我们需要做的第一件事是回顾如何以混杂鲁棒的方式估计恒定处理效应。

为了理解其重要性,我们可以从一个具体的算法来思考。假设你想开发一种基于树的方法来估计处理效应,并且希望它对混杂因素鲁棒。那么请记住树是如何工作的:树首先会将你的特征空间(X空间)切割成叶子节点,然后在每个叶子节点中,你可以估计一个恒定的处理效应。这直接意味着,如果你想要一个对混杂因素鲁棒的异质性处理效应估计器,你必须先拥有一个能够鲁棒地估计恒定处理效应的方法,然后你将在每个叶子节点中部署这个方法。

因此,这将是本部分讲座的重点。

恒定处理效应模型

为了打下基础并能够思考正式结果,我将在这里做一个相当极端的假设:我将假设处理效应是恒定的。也就是说,对于每个个体,都存在一个接受处理和不接受处理的潜在结果,并且这两个潜在结果之间的差值对每个人都是相同的。对于每个人,接受处理的收益减去不接受处理的收益,这个差值就是 τ,它对每个个体都是恒定的。我们的目标就是估计这个 τ

这是一个非常严格的设定,但我们将基于这个问题开发的方法,即使存在异质性时也适用。需要指出的是,到目前为止的讲座中,我们已经遇到了条件平均处理效应函数 τ(x)。当然,如果处理效应是恒定的,那么条件平均处理效应函数 τ(x) 对每个 x 值都只是常数 τ。出于估计的目的,我们将使用这个条件平均处理效应的概念来激发我们的方法,而不是上面那个更强的假设。我们稍后会详细说明这一点。

我们花了很多时间讨论平均处理效应估计。估计恒定处理效应是一个不同的问题,也是一个更容易的问题。本质上,当你估计平均处理效应时,你允许函数 τ(x) 任意变化,你只是想估计它的平均值。而在这里,我们额外获得了一个信息:处理效应实际上是恒定的。你可以直接瞄准这个常数进行估计,这是一个不同的估计问题。我将在几分钟后详细说明。

部分线性模型

当我们有这个恒定处理效应模型时,我们也可以像往常一样假设无混杂性。无混杂性加上恒定处理效应模型意味着,给定 XWY 的条件期望可以分解如下:

E[Y | X, W] = μ₀(X) + τ * W

其中:

  • μ₀(X) 是基线效应,即给定 X 时的期望控制潜在结果,它可能随 X 变化。
  • τ 是恒定的处理效应,是我们想要估计的目标。

这种部分线性模型的表述方式很好,因为它能让你清楚地看到发生了什么。你也可以用它来很好地提醒为什么估计 τ 并不容易。

你可能会想,是否可以通过简单地计算处理组结果的平均值减去控制组结果的平均值来估计 τ?因为所有处理组的个体的结果都增加了 τ。但如果你这样做,你确实会得到 τ,但你还会得到这里的第二个偏差项。这个偏差项本质上是:被选择进入处理组的人群的期望基线效应,与被选择进入控制组的人群的期望基线效应之间的差异。如果你不在随机试验中,这个偏差项通常不为零。因此,要鲁棒地应对这种情况,就是为什么估计 τ 是一个非平凡问题的原因。

罗宾逊变换

我们该怎么做呢?由恒定处理效应模型引发的这个问题通常被称为部分线性模型。为什么是“部分”线性?因为项 W * τ 看起来像线性回归中的项:在回归中,你有一个处理指示变量 W,它得到一个系数 τ。这部分是线性的。但你还有基线效应 μ₀(X),它如何依赖于 X 是非线性的。如果我们用类似 的东西替换 μ₀(X),即假设基线效应在 X 上是线性的,那么我们就会得到一个完全的线性模型。部分线性模型的作用是,它让问题的这个部分(基线效应)保持非参数形式,但仍然保留了处理效应部分的线性结构。所以这是我们想要解决的问题,它通常也被称为半参数问题,因为处理效应部分(τ)是参数(单个参数),而基线效应部分(μ₀(X))是非参数的,被称为干扰项。我们之所以称其为干扰项,是因为我们需要估计它,但我们不一定对它本身感兴趣。所以我们有一个非参数的干扰项和一个参数化的目标。

那么,我们如何估计 τ 呢?任何带有这种非参数成分的半参数问题本质上都需要一些技巧来处理估计。但这里,事实证明有一个非常巧妙的解决方案,它始于所谓的罗宾逊变换

其思想是,首先定义这些辅助量:

  1. e(X) = E[W | X]:我们的老朋友,倾向得分。正如前面提到的,倾向得分在帮助你实现混杂鲁棒性方面起着关键作用,所以在这里倾向得分回归了。
  2. m(X) = E[Y | X]:这个量不那么常用,但很容易解释。这是在忽略处理状态的情况下,仅根据 XY 的最佳猜测。在部分线性模型中,m(X) = μ₀(X) + τ * e(X)

利用这个符号,你可以简单地从原始表达式两边减去 m(X)。然后你会看到:

Y - m(X) = τ * (W - e(X)) + ε

其中 ε 本质上是 Y 与其给定 XW 的条件期望之间的差。关键是,我们知道 E[ε | X, W] = 0

通过这种方式重写问题,我们本质上什么也没做,但我们从中得到了一些非常有用的见解。假设你实际上知道 m(X)e(X),那么你如何估计 τ?这非常简单:只需运行一个单变量线性回归。你的响应变量是差值 Y - m(X),你的单个回归变量是变量 W - e(X),那么 τ 就是通过将 Y - m(X)W - e(X) 进行回归得到的回归系数。

如果你知道 me,那么这种方法将为你提供一个一致且渐近正态的估计 τ 的方法,并具有标准的推断保证。当然,困难在于,除非你在随机试验中,否则你可能不知道倾向得分 e,也肯定不知道这个基线效应 m(或者说,忽略处理状态对 Y 的最佳猜测函数 m)。你无法直接应用这个策略。

实用算法:残差对残差回归

但这仍然暗示了一个实用的算法。如果我们知道在已知 me 的情况下该怎么做,只是我们不知道它们,那么你可以希望我们有一些机器学习黑箱来解决这里的预测问题(从 X 预测 WY)。这些都是基本的预测问题,所以我们可以通过扔一个预测黑箱来估计 ê。然后,如果我们用估计的 ê 项代入上面的公式,我们就可以通过残差对残差回归来估计 τ。如果我们在这里插入了真实的 me 项,根据罗宾逊变换,这将立即给你一个 τ 的良好估计。这里我们必须估计 me,但你可能会希望这仍然能至少相当好地工作。

它有多好?仅从这个写法来看并不清楚,但立即清楚的是,如果 ê 是一致的,那么 τ̂ 对于恒定处理效应也应该是一致的。另外需要注意的是,我在这里写的表达式,只是这个单变量线性回归问题的闭式解。


这个紫色的东西意思就是:运行 Y - m̂W - ê 的单变量回归。

理论保证

显然这是一致的,但它好吗?如果不好我就不会告诉你了。我们得到了一个关于 τ̂ 渐近性质的非常好的结果。这应该让我们想起第二周看到的使用 AIPW 估计平均处理效应的结果。

其保证如下。最终结果是我们想要的:即恒定处理效应的中心极限定理,其误差以 1/√n 的速率衰减。这意味着当我们用 √n 放大误差时,我们会得到一个极限正态随机变量,这正是我们想要的。条件是什么?条件再次是这些 ê 估计量。它们不需要完美,但需要相当准确,不过它们不需要达到 1/√n 尺度的精度。

就像我在第二周强调的,每当你在因果推断中使用机器学习方法时,可以假设它们相当准确,但绝不应该假设它们是完美的。这里的这个保证正是我们喜欢的那种:在步骤 1 和 2 中,当我们向问题扔机器学习黑箱来估计 ê 时,我们需要它们在相当准确的意义上取得成功,但不一定是完美的。我再次强调这个结果的违反直觉性:你可能会认为存在“垃圾进,垃圾出”的原则,如果你必须估计 ê 项,并且这些 ê 有某种误差尺度,那么 τ̂ 不可能比这些你代入表达式的估计量更准确。但这个定理告诉你,“垃圾进,垃圾出”的原则在这里不成立。你被允许拥有典型误差在 n^{-1/4} 量级的估计量(这是一个相当大的误差尺度),然而,就像 AIPW 估计量一样,误差会以恰到好处的方式抵消。所以实际上,即使这些估计量可能有 n^{-1/4} 尺度的误差,τ̂1/√n 尺度上将是准确的,因此它将比干扰项估计量精确一个数量级。

在细节方面,条件本质上与 AIPW 所需的条件相同。这里我说需要一些适度的正则条件。

这些正则条件是什么?事实证明,只要你使用交叉拟合,你基本上可以忽略任何进入那里的正则条件。所以设置本质上是:我需要运行这个估计量。

获取 ê,使用交叉拟合(就像第二周那样),然后只要 ê 相当准确,你就会得到你想要的 τ̂ 的中心极限定理。我现在不打算讨论它,但你可以从这个残差对残差回归中得到置信区间,就像你通常从这类回归中得到置信区间一样。这个定理本质上告诉你,只要你使用交叉拟合,在构建置信区间时,你可以忽略 ê 的任何抽样误差(只要定理条件成立)。这为你提供了一种构建置信区间的非常简单的方法。

与线性回归的联系

接下来,这是一个题外话,但只是为了连接一些点。如果你觉得这种估计恒定处理效应的方式有点奇怪或不寻常,我想试着说服你它并不奇怪。我只想把它与一个希望是熟悉的估计量联系起来,那就是线性回归估计量,即标准的线性回归估计处理效应的方法。你通常的做法是运行线性回归:Y ~ X + W(用 R 的符号表示,即用 XW 的线性函数预测 Y),然后取 W 的系数作为你的处理效应估计。

如果你上过基于线性代数的线性回归课程,你可能知道线性回归有以下等价特征:要估计在控制 X 的情况下 WY 的系数,你可以如下构建该系数:首先,拟合 WX 的线性模型;然后,拟合 YX 的线性模型;那么,在完整的用 XW 预测 Y 的回归中,W 的系数将涉及一个残差对残差的回归,即你将 Y 相对于从 XY 的最佳预测的残差,对 W 相对于从 XW 的最佳预测的残差进行回归。

因此,这实际上表明,在算法上,线性回归只是这种基于罗宾逊变换的估计量的一个特例,其中我们没有使用机器学习方法来估计 ê,而只是使用线性回归来从 X 预测 Y 和从 X 预测 W。关于这个联系有很多可以说的,你可以从多个角度研究它。但至少,我希望这个联系表明,基于罗宾逊变换的这个估计量是一种非常自然的方式,可以超越线性回归,至少在你想要保留恒定处理效应假设的设定下。这样你仍然有一个像恒定处理效应参数的东西,你可以希望使用类似线性回归推广的方法来瞄准它。

总结与比较

所以,这就是如何在无混杂性假设下,以对混杂因素鲁棒的方式估计恒定处理效应。根据我的经验,这是一个非常好的估计量,我推荐使用。从更大的图景来看,我们现在已经看到了两种不同的混杂鲁棒估计量:第二周看到的 AIPW 估计量,以及基于罗宾逊变换的用于恒定处理效应的残差对残差回归估计量。这两种估计量都具有非常相似的性质:我们都在无混杂性或无未测量混杂假设下工作,然后我们最终进入这种半参数类型的设定,其中我们有一个低维的兴趣对象(要么是平均处理效应,要么是恒定处理效应参数),我们也有非参数的干扰成分(基线效应和倾向得分)。这些估计量的共同属性是,它们都从基于机器学习的干扰成分估计开始,并且只要这些估计相当准确,那么你对你真正关心的东西就会得到一个 1/√n 速率的中心极限定理。这就是我要说的全部,除了推荐使用这两种估计量。对于那些想深入了解的人,我应该强调,这两者都是一个更通用方法的特例。如果你想了解更多,Chernozhukov 等人的论文对这类估计量为何以及如何具有这些性质有更多论述。

恒定处理效应与平均处理效应估计的对比

关于估计恒定处理效应,我想说的最后一件事,这更像是一个题外话。但我想澄清一下:你们中的一些人可能会感到困惑。我们谈论估计平均处理效应,也谈论估计恒定处理效应,这是怎么回事?它们看起来是非常相似的估计问题,为什么会有区别?

为了理解其中的区别,考虑一个问题:你有一个相当大的 X 空间,然后你在 X 空间中有一些区域很容易估计处理效应(比如处理组和对照组有很好的平衡,两种类型的个体都很多),而 X 空间的另一个区域则很难估计处理效应(可能几乎每个人都被分配到对照组,所以我们几乎没有重叠)。在这种设定下,估计恒定处理效应与估计平均处理效应最终会成为非常不同的问题。

如果你想估计平均处理效应,你本质上需要做什么?你需要在这里(容易估计的区域)估计处理效应,也需要在这里(难以估计的区域)估计处理效应,然后取这两个处理效应的平均值。如果在难以估计的区域你的处理效应估计非常不准确,你对此无能为力,你的处理效应估计在所有地方都会不准确。

另一方面,如果我先验地告诉你处理效应在所有地方都是恒定的,那么你基本上可以忽略特征空间中问题太难的部分,只在你实际上有良好信号的、容易估计的区域估计你的恒定处理效应,然后直接外推它。这使得问题变得好处理得多。

为了在一个例子中看到这一点,这里有一个简单的模拟。关键部分是:首先,处理效应是恒定的,处处都是 0.3。所以,如果你知道处理效应是恒定的,你可以直接运行恒定处理效应的方法。但如果你不知道处理效应在所有地方都是恒定的,并且你想估计平均处理效应,那么你会做别的事情。为什么当你不知道处理效应是恒定的、并且必须处处估计处理效应然后聚合它们时,这个问题更难?你可以通过根据倾向得分将问题分成三个区域来看到这一点。

这里倾向得分依赖于 X₃。有些个体,倾向得分非常小,这些人大多数接受控制;特征空间有些区域大多数人接受处理,倾向得分接近 1;中间区域倾向得分远离 0 和 1,这是一个有良好重叠的区域,是我们喜欢估计的类型。所以,如果你想用平均处理效应的方法来估计,你本质上必须分别在这三个区域估计处理效应。在难以估计的区域(几乎都是对照组,几乎没有处理组个体),你几乎没有关于处理效应实际是什么的信息。中间区域你有良好的重叠,所以估计处理效应很容易。同样,在另一个难以估计的区域(大多数人接受处理,很少有对照组),估计处理效应也很困难。平均处理效应方法必须做的是,然后聚合这些区域的处理效应估计,其中大部分来自这两个难以估计处理效应的区域。因此,这些处理效应估计可能非常不准确,而来自这个容易区域的更准确的估计,但你在困难区域积累的任何不准确性都会累加起来。

另一方面,如果你估计恒定处理效应,你基本上不关心这两个困难区域,你实际上把这些数据扔掉,你只关注数据中你有良好重叠并且可以准确估计处理效应的部分,你在那里学习处理效应是什么,你就不担心问题的其余部分。当然,这只是对方法做什么的一个定性描述,但在实践中,这种直觉也贯穿于实际发生的情况。

数值结果

那么数字看起来怎么样?像往常一样,我给你们一点代码,你可以复制粘贴。这段代码实现了通过残差对残差回归估计恒定处理效应,并带有异方差稳健的标准误。如果你这样做,你会得到:记住,真实的恒定处理效应是 0.3。如果你的 95% 置信区间是 0.3 ± 0.05,这就非常好。

如果你不知道你的处理效应是先验恒定的,所以你不得不使用一个平均处理效应估计方法,该方法聚合来自所有地方(包括困难区域)的数据,然后尝试综合,那么你从这个方法中得到的处理效应估计将非常不准确。这里我们得到 0.56 ± 0.35。点估计不那么准确,置信区间也更宽。这突显了平均处理效应估计问题比恒定处理效应估计问题更难的程度。

权衡与应用思考

对于那些从应用角度思考问题的人来说,你可能对这里的权衡很敏感。在这个问题中,处理效应实际上是恒定的,但作为分析师,你有两种策略:你可以假设处理效应是恒定的(从理论中主张知识,但不用数据验证),如果你愿意主张恒定处理效应,那么你可以非常准确地估计恒定处理效应;或者你可以采取一种更不可知论的方法,你不从假设处理效应恒定开始,你允许异质性,然后你想估计这个 τ(x) 函数的平均值。后一种方式更稳健,你可能喜欢这样做,因为它不需要先验地断言处理效应是恒定的。但在这里你看到,这样做在精度上付出了巨大的代价。

这是一个棘手的权衡。如果你对这个权衡感兴趣,那么一个非常重要的问题是:如果你认为处理效应是恒定的,所以你运行我们的残差对残差估计量来估计恒定处理效应,但实际上存在处理效应异质性(即不存在一个应该被称为处理效应参数的东西),会发生什么?如果你只是运行这个在恒定处理效应设定下被证明合理、但在 τ(x) 不是常数的设定下的估计量,你会得到什么?你最终得到的东西实际上非常好:如果你假设了一个恒定处理效应,但实际上存在异质性,那么恒定处理效应估计量将收敛到我在这里称为 τ_E 的东西。这是平均处理效应的一个加权版本,其中特征空间的不同部分根据 e(X) * (1 - e(X)) 进行加权。也就是说,倾向得分更接近 0 和 1 之间中间值的特征空间区域被赋予更多权重,而倾向得分非常接近 0 或 1 的区域被赋予更少的权重。实际上,你可以验证,在所有加权的平均处理效应中,这个 τ_E 是你在具有这种倾向得分的同方差模型下可以以最佳精度估计的加权平均处理效应。

无论如何,如果你对这东西感兴趣,这是一个可以深入探索的兔子洞。但关键是,在文献中,你可以用两种方式来证明罗宾逊方法的合理性:它可以是一种非常字面地接受“处理效应是恒定的”假设,然后试图以有效的方式估计那个 τ 的方法;或者你可以放宽假设,你可以说你本质上认为处理效应几乎是恒定的,给定这些假设,你将运行这个方法,你认识到处理效应存在一些异质性,而你得到的东西实际上是处理效应的一个加权平均。但如果处理效应足够接近恒定,那么这个加权处理效应可能足够接近你关心的东西,你就可以放宽心使用那个估计量。


本节课总结

在本节课中,我们一起学习了如何为估计异质性处理效应构建混杂鲁棒的方法。我们从回顾如何鲁棒地估计恒定处理效应开始,这是构建更复杂模型(如决策树)的基础。我们深入探讨了部分线性模型和强大的罗宾逊变换,它允许我们通过残差对残差回归来估计处理效应,即使我们使用机器学习方法估计了干扰函数(倾向得分和基线响应)。我们看到了这种方法具有优秀的理论性质,只要干扰函数估计足够准确,我们就能得到处理效应参数的一致且渐近正态的估计。最后,我们比较了恒定处理效应估计与平均处理效应估计的差异,理解了前者在存在先验恒定假设时可以带来更高的估计精度,并讨论了当假设不成立时估计量的实际含义。

015:混杂效应稳健的森林方法

在本节课中,我们将学习如何利用罗宾逊变换来开发一种森林算法,用于在观察性研究中估计异质性处理效应。

上一节我们介绍了罗宾逊变换,本节中我们来看看如何将其与随机森林的思想结合,构建一个能够同时应对混杂偏倚和正则化偏倚的稳健估计器。

从简单估计器开始:问题与挑战

首先,我们从一个非常简单的异质性处理效应估计器开始,看看它会遇到什么问题,以及我们已学的概念如何解决这些问题。

假设我们只想估计在特定点 x 处的处理效应 τ(x)。一个简单的方法是:以 x 为中心画一个半径为 δ 的圆,这个圆包含了我们认为与估计 x 处处理效应相关的一组代表性个体。然后,在这个圆内应用均值差估计器。

具体公式如下:
τ̂(x) = (1/N_t) * Σ_{i in circle, W_i=1} Y_i - (1/N_c) * Σ_{i in circle, W_i=0} Y_i

这个估计器虽然一致,但存在两个主要问题:

  1. 混杂偏倚问题:这是一个均值差估计。在随机试验中它表现良好,但在观察性研究中,当倾向得分 e(x) 变化时,如果倾向得分的变化与基线结果 m(x) 的变化相关,就会导致偏倚。要使此方法有效,需要这个邻域足够小,以至于其中的数据看起来像是来自随机试验。
  2. 维度灾难与代表性难题:为了使邻域 S(x) 包含与估计 x 处处理效应相关的个体,半径 δ 需要足够小,以排除不相关的个体。但同时,δ 又需要足够大,以确保邻域内有足够多的样本使估计稳定。在中等或高维空间中,这成为一个不可能解决的问题。

简而言之,第一个问题可以通过罗宾逊变换解决,第二个问题则可以通过森林的几何结构和构建方式来解决。

解决混杂偏倚:应用罗宾逊变换

让我们暂时忽略第二个代表性问题,专注于均值差估计器如何处理混杂偏倚。

假设有人告诉你,邻域 S(x) 实际上很好,其中的每个个体都具有相同的处理效应 τ,并且有足够多的数据。你唯一担心的是混杂偏倚,即该邻域内某些个体比其他人更可能接受处理。

现在我们知道该怎么做:对于一个具有恒定处理效应但倾向得分可变的数据集,在无混淆条件下,我们可以使用罗宾逊方法来估计这个恒定处理效应。

因此,我们将首先筛选出仅位于邻域 S(x) 内的数据,然后使用罗宾逊方法(残差对残差回归)来估计该邻域内的恒定处理效应。

核心步骤如下:

  1. 在邻域 S(x) 内,使用机器学习模型估计 m̂(x)ê(x)
  2. 计算结果残差 Ỹ_i = Y_i - m̂(X_i) 和处理残差 W̃_i = W_i - ê(X_i)
  3. 在邻域内,通过 W̃_iỸ_i 进行回归(通常无截距)来估计 τ。公式为:
    τ̂ = (Σ_{i in S(x)} W̃_i * Ỹ_i) / (Σ_{i in S(x)} W̃_i^2)

这解决了混杂偏倚问题。接下来的问题是:我们如何设计这个用于估计恒定处理效应的邻域?能否比简单地画一个圆做得更好?

解决维度灾难:使用树与森林

这里的核心思想是使用树。简单的最近邻估计器(画圆)在二维空间中可能合理,但在中等或高维空间中,为了包含任何邻域,圆的半径必须非常大,而大半径内的个体与你就不再相似了。

树将以数据自适应的方式,使用轴对齐分割将特征空间切分成块。为了预测点 x,你将考虑 x 所在矩形(叶节点)内的数据作为其邻域。

在二维空间中,这可能看起来很像 K 近邻。但树的优势在于:如果你有一些非常重要的特征和其他不太重要的特征,那么树形成的邻域(矩形)可以在重要的方向上非常窄(从而对那里的变化非常敏感),而忽略不重要的维度。这使得它们能在不耗尽数据的情况下,获得更具代表性的邻域来估计 τ(x)

随机森林则取许多这样的树所做的预测,并对其进行平均。

构建因果森林:调整分裂与预测

我们的挑战在于,标准的随机森林算法用于从 X 预测 Y 有两个关键部分:分裂和通过平均树进行预测。我们需要对其进行调整。

第一个问题:如何调整分裂规则,以设计出能够优化表达处理效应异质性的树?
第二个问题:如何调整预测步骤,使得一旦我们有了许多树的森林几何结构,就能得到合理的 τ(x) 估计?

调整分裂规则

首先,回顾回归树如何进行分裂。假设我们想估计 μ(x) = E[Y | X=x]。回归树通过扫描所有轴,想象将整个特征空间分成左右两半,并分别对左右数据拟合模型。在叶节点中,模型就是该节点内结果的平均值

回归树选择能优化平方误差损失准则的分割。可以证明,这等价于最大化以下数量:
(Ŷ_left - Ŷ_right)^2 * (N_left * N_right)
即,它希望找到一个能均匀分割特征空间,且左右两侧平均值差异很大的分割点。

对于处理效应估计树,我们可以几乎逐字沿用回归树的结构:进行轴对齐分割、递归分割。唯一需要改变的是分割准则

我们将采用完全相同的目标形式,但相关的估计量不再是 Y 的期望估计,而是处理效应估计。具体做法是:

  1. 对于候选分割,分别在其左右子节点上,使用罗宾逊方法(残差对残差回归)估计处理效应 τ̂_leftτ̂_right
  2. 计算分割准则:
    (τ̂_left - τ̂_right)^2 * (N_left * N_right)
    选择最大化此准则的分割。

调整预测方式:从平均预测到加权估计

预测部分稍微复杂一些。通常,我们认为回归森林是许多树预测的平均值。每棵树对 x 的预测是它所在叶节点内结果 Y_i 的平均值。

我们可以换一种视角:将森林的预测视为所有样本 Y_i 的加权平均,权重为 α_i(x)α_i(x) 衡量了第 i 个训练样本在预测 x 时获得的平均权重,可以将其视为一个数据自适应的核权重,捕获了每个训练样本与 x 的相关性。

从图片上看,每棵树为预测 x 提供一个常数权重函数(叶节点内样本权重相同,叶节点外为0)。森林通过平均所有这些树的权重函数,得到一个更平滑的权重函数 α_i(x),它刻画了每个训练样本对于预测测试点 x 的相关性。这就是“森林邻域”。

采用这种视角后,如何使回归森林适应处理效应估计设置就非常清晰了。

我们如何估计处理效应?答案依然是:残差对残差回归。如果森林给出一组权重 α_i(x),它捕获了每个训练样本 i 对于估计 x 处处理效应的相关性,那么估计 x 处处理效应的自然方法就是运行加权残差对残差回归

具体步骤如下:

  1. 使用任何机器学习方法,基于全样本数据获得 m̂(x)ê(x) 的估计。
  2. 计算残差:Ỹ_i = Y_i - m̂(X_i)W̃_i = W_i - ê(X_i)
  3. 使用森林权重 α_i(x),通过加权回归估计 τ(x)
    τ̂(x) = (Σ_i α_i(x) * W̃_i * Ỹ_i) / (Σ_i α_i(x) * W̃_i^2)

这就解决了我们最初担心的两个问题:

  • 我们通过生长森林并从中提取权重 α_i(x),获得了“谁是与估计处理效应相关的邻居”的概念,而不是简单地画一个圆。
  • 我们没有使用容易受混杂影响的均值差估计器,而是使用了具有这些权重的残差对残差回归估计器。

因果森林实践与性能

grf 包的 causal_forest 函数中,大致实现了上述过程。需要强调的是,在训练因果森林时,需要预先提供 m̂(x)ê(x) 的估计(例如通过回归森林得到),并将其作为参数(Y.hatW.hat)传递给因果森林。因果森林在此基础上进行后续的异质性处理效应估计。

以下是一个性能演示:

在一个处理效应恒定但倾向得分随 X 变化的模拟中,之前讨论的某些方法会错误地“幻觉”出处理异质性。而运行因果森林后,估计结果非常接近平坦线,几乎没有幻觉出异质性。虽然并非完美(因为依赖的 估计并非完美),但表现远优于其他方法。

在随机试验的模拟中,因果森林和“X-学习器”森林都表现得很好,能有效避免正则化偏倚。而那些没有考虑正则化偏倚的森林方法则准确性差很多。

总结与下节预告

本节课中我们一起学习了如何在观察性研究中估计处理效应异质性。我们讨论了两个需要担心的问题:正则化偏倚和混杂偏倚。

我们讨论了避免正则化偏倚的算法解决方案(如 X-学习器),以及避免混杂偏倚的方法(罗宾逊方法)。最后,我们介绍了一种基于罗宾逊估计器的因果森林算法,用于估计异质性处理效应,它能够同时应对这两种偏倚。

下周,我们将继续这一讨论,看看如何将因果森林算法中使用的混杂稳健原理,应用到更一般的基于损失的机器学习框架中。我们还将讨论如何评估处理效应估计方法的性能,并探讨更多的应用场景。

016:因果推断的损失函数 🎯

概述

在本节课中,我们将学习如何为因果推断问题设计损失函数。我们将从回顾机器学习中基于损失函数的通用视角开始,然后探讨如何将这一视角应用于处理效应估计和政策学习等因果任务。核心在于,一旦我们为特定因果任务定义了合适的损失函数,就可以利用标准的机器学习算法来优化它,从而获得我们想要的因果估计。


从预测到更广泛的任务:机器学习的损失函数视角

上一讲我们深入探讨了因果推断本身。本节中,我们来看看机器学习的视角。许多人将机器学习等同于预测问题,例如从图像中区分猫和狗。然而,这只是机器学习广阔领域中的一个子集。

一个更通用的机器学习定义包含三个要素:

  1. 任务:你试图完成的目标。
  2. 损失函数:衡量任务完成好坏的标准。
  3. 数据:用于学习如何根据损失函数良好执行任务的算法。

公式表示:给定一个模型或策略 f,其性能由损失函数 L(f, data) 量化。机器学习的目标是找到最小化预期损失的 f

例如,在预测任务中,任务是预测 Y,损失函数通常是平方误差 (Y - \hat{Y})^2。而在一个完全不同的任务中,比如控制直升机飞行,任务是保持飞行,损失函数可以是坠毁时为1,安全时为0。两者都符合上述框架。

一旦定义了损失函数,后续的步骤(如训练、正则化、交叉验证)就都围绕它展开。这为我们提供了一个强大的模板:将领域知识编码到损失函数中,然后应用机器学习工具。


热身案例:报童模型 📰

为了理解如何为非预测任务设计损失函数,让我们看一个经典的库存管理问题——报童模型。

假设你经营一个报亭,每天需要决定进货多少份报纸 Q。每份报纸成本为 c,售价为 p。当天的需求是 D。你的利润为:
利润 = p * min(D, Q) - c * Q
如果进货太少 (Q < D),你会损失潜在销售额;如果进货太多 (Q > D),卖不掉的报纸将浪费成本。

现在,假设你可以观察到一些协变量 X(例如天气、是否有重大体育赛事),它们可能影响需求。你的目标是学习一个策略 π(X),它根据 X 决定进货量 Q,以最大化期望利润。

如何将其转化为机器学习问题?

  • 任务:根据特征 X 决定进货量 Q
  • 损失函数:负利润 L = -[p * min(D, Q) - c * Q]。最小化损失等价于最大化利润。
  • 数据:历史数据,包含每天的 X、实际进货量 Q(或可模拟决策)、以及实现的需求 D

遵循这个思路,以下是关键步骤:

  1. 定义策略和价值:策略 π(x) 输出进货量。其价值 V(π) 是期望利润。
  2. 构建损失函数:损失是负利润 L(π) = -V(π)
  3. 应用机器学习算法:你可以使用任何能最小化经验损失(即历史数据上的平均负利润)的算法来学习 π(x)。例如,可以训练回归树,但其分裂标准不再是均方误差,而是直接基于负利润的改进。

通过这种方式,我们将一个商业决策问题完全纳入了机器学习的框架。关键在于设计出能准确反映业务目标的损失函数。


第一部分:处理效应估计的损失函数 ⚖️

现在,我们将上述思路应用到核心的因果推断问题——估计条件平均处理效应。

回顾一下,CATE 定义为:τ(x) = E[Y(1) - Y(0) | X = x]。我们之前讨论的因果森林是一种专门估计 CATE 的算法。本节目标是提取因果森林有效的核心思想,并将其提炼成一个通用的损失函数,使得任何机器学习模型都可以通过最小化该损失来估计 CATE。

与预测或报童模型不同,CATE 的损失函数并不显而易见,因为我们永远无法同时观测到同一个体的 Y(1)Y(0)。我们需要进行设计。

一个有效的起点是考虑基于伪结果的平方误差损失。伪结果是一种构造的变量,其条件期望恰好等于 CATE τ(x)。例如,一个常用的伪结果基于逆概率加权:
\tilde{Y} = \frac{W - e(X)}{e(X)(1 - e(X))} * Y
其中 W 是处理指示变量,e(X) 是倾向得分。可以证明,E[\tilde{Y} | X] = τ(X)

因此,我们可以定义以下损失函数
如果我们有一个 CATE 估计量 \hat{τ}(x),我们可以计算伪结果 \tilde{Y},然后使用平方误差损失:
L(\hat{τ}) = E[(\tilde{Y} - \hat{τ}(X))^2]
通过机器学习算法最小化训练数据上的经验版本的这个损失,我们就可以得到 CATE 估计 \hat{τ}(x)

这种方法的美妙之处在于,它将异质处理效应估计这个因果问题,转化为了一个标准的监督学习问题(用 X 预测 \tilde{Y}),从而可以调用丰富的机器学习工具箱。


第二部分:CATE估计的解释与验证 🔍

到目前为止,我们主要关注如何获得CATE估计。本节中,我们来看看如何评估和解释这些估计结果。

仅仅得到一个模型 \hat{τ}(x) 是不够的,我们还需要知道它是否可靠、以及从中能学到什么。以下是几种重要的方法:

  1. 分组验证(分组LIFT曲线)

    • 将测试集样本根据其估计的CATE \hat{τ}(x) 从高到低排序。
    • 分成若干组(例如十分位数组)。
    • 计算每组内实际的实验组与对照组平均结果之差。这个差异是该组“实际观察到的平均处理效应”。
    • 绘制图表:x轴是组别(按预估CATE排序),y轴是该组的实际观测效应。一个良好的估计器,其图表应呈现单调递增趋势。
  2. 最优政策价值评估

    • 考虑一个简单的决策规则:仅对估计CATE为正的个体进行治疗。
    • 在测试集上,评估若遵循该规则所能获得的平均结果(需要利用随机试验数据或通过因果推断方法估计反事实)。
    • 将这一价值与随机分配政策、或全部治疗/全部不治疗等基准政策进行比较。这能直接衡量CATE估计用于决策的实用性。

  1. 校准检查
    • 检查估计的CATE是否与通过其他可靠方法(例如在数据充足子集上的简单差异比较)得到的效应估计相一致。理想情况下,它们应该沿着对角线分布。

这些验证步骤不依赖于特定的模型类别,是评估任何CATE估计器性能的重要工具。


第三部分:政策学习 📜

最后,我们讨论一个与CATE估计紧密相关但目标略有不同的任务:政策学习

  • CATE估计:目标是输出一个连续数值 \hat{τ}(x),表示处理效应的大小。其损失函数通常基于效应尺度上的误差(如伪结果的平方误差)。
  • 政策学习:目标是学习一个分配规则 π(x) ∈ {0, 1},直接决定对具有特征 x 的个体是否治疗。这是一个分类决策。

政策 π 的价值函数是其带来的期望结果:
V(π) = E[Y(π(X))]
我们的目标是找到最大化 V(π) 的政策。

如何设计损失函数?
我们可以将政策价值表示为一个期望,并构造一个替代损失。一种常见方法是使用以下基于逆概率加权的损失:
L(π) = -E \left[ \left( \frac{W}{e(X)}Y * \pi(X) + \frac{1-W}{1-e(X)}Y * (1-\pi(X)) \right) \right]
可以证明,最小化这个损失等价于最大化政策价值 V(π)

与CATE估计的关系
最优政策通常形式为:π*(x) = 1(τ(x) > 0),即当且仅当估计的处理效应为正时才治疗。然而,直接学习政策 π(x) 与先估计 τ(x) 再设定阈值有所不同。政策学习直接优化最终决策目标,有时在样本有限时可能更稳健,因为它避免了精确估计效应量大小的中间步骤。

通过为政策学习定义合适的损失函数,我们可以再次利用分类算法(如决策树、逻辑回归)来学习最优的分配规则,从而将因果决策与机器学习无缝结合。


总结

本节课中,我们一起学习了如何为因果推断任务构建损失函数。

  1. 我们首先回顾了机器学习的损失函数视角,它包含任务、损失和数据三个要素,并以报童模型为例展示了如何将业务问题转化为损失函数。
  2. 接着,我们深入探讨了处理效应估计的损失函数设计,引入了伪结果的概念,将CATE估计转化为标准的监督学习问题。
  3. 然后,我们讨论了如何解释和验证CATE估计,包括分组验证、政策价值评估等方法,这对于评估模型实用性至关重要。
  4. 最后,我们探讨了政策学习,这是一个与CATE估计相关但以直接优化决策规则为目标的任务,并展示了如何为其设计损失函数。

核心在于,通过精心设计损失函数,我们可以将复杂的因果推断问题嵌入到强大的机器学习框架中,从而利用各种现成的算法和工具来推动数据驱动的决策。

017:损失函数与处理异质性

在本节课中,我们将学习如何为异质性处理效应构建一个稳健的损失函数。一旦我们有了这个损失函数,就能将其用于通用机器学习框架下的处理效应估计。

统计设定回顾

上一节我们介绍了因果推断的基本框架,本节中我们来看看如何将其与机器学习结合。我们的统计设定与之前保持一致。

我们拥有数据 (X, Y, W),其中 X 是特征,Y 是结果,W 是处理指示变量。结果变量 Y 由潜在结果模型生成。我们的目标是估计条件平均处理效应,即在给定特征 X 的条件下,潜在结果期望值的差异。

公式CATE(x) = τ(x) = E[Y(1) - Y(0) | X=x]

为了进行估计,我们假设无混淆性。这意味着在给定协变量 X 的条件下,处理分配如同随机分配。倾向得分,即在给定 X 的条件下接受处理的概率,将扮演核心角色。

公式e(x) = P(W=1 | X=x)

从罗宾逊变换到损失函数

在无混淆性假设下,我们可以将给定 XWY 的期望值写为基线效应 μ₀(x) 加上处理效应 τ(x)W 的乘积。

公式E[Y | X=x, W=w] = μ₀(x) + w * τ(x)

由于这是一个期望值,我们也可以将其写为 Yᵢ = μ₀(xᵢ) + wᵢ * τ(xᵢ) + εᵢ,其中 εᵢ 由潜在结果隐式定义,并且满足在给定 XW 时均值为零的性质。

与估计恒定处理效应时类似,我们希望重新表达这个公式,使其变为 Yᵢ = M(Xᵢ) + (Wᵢ - e(Xᵢ)) * τ(xᵢ) + 噪声 的形式。这里 e(x) 是倾向得分,M(x) 是边际基线效应,即在不了解处理状态的情况下,仅根据 XY 的最佳预测。

通过这个变换,我们得到了罗宾逊变换:在无混淆性下,Y - M(x) 等于 (W - e(x)) * τ(x) 加上一个均值为零的噪声。

公式Y - M(x) = (W - e(x)) * τ(x) + η, 其中 E[η | X, W] = 0

上周我们强调,如果进一步假设 τ(x) = θ 对所有单元都是常数,那么我们可以用常数 θ 替换 τ(x),并通过将 Y - M̂W - ê 进行回归来估计这个恒定处理效应参数。这种残差对残差的回归具有良好的稳健性。

本周与上周的区别在于,我们现在不再假设处理效应函数是恒定的,而是允许 τ(x)x 变化。我们希望更广泛地估计这个 τ(x) 函数。

一个有用的观察是:对于每个固定的 x 值,如果我们只考虑具有该特定 x 值的样本,并将 y - m(x)w - e(x) 进行回归,那么 τ(x) 正是这个回归的系数。这表明,τ(x) 实际上是以下二次函数 L 的最小化解。

公式L(τ; x) = E[(Y - M(x) - τ * (W - e(x)))^2 | X=x]

换句话说,在总体中,对于每个 x 值,我们想要的处理效应函数 τ(x),正是最小化上述损失函数 L 期望值的那个函数。

构建用于异质性处理效应的机器学习估计量

认识到 τ(x) 可以表征为某个损失函数的最小化解,这对于估计非常有帮助。它允许我们将处理效应估计问题转化为一个标准的机器学习预测问题,只需使用特定的损失函数。

例如,考虑高维线性模型场景。在预测任务中,我们使用 Lasso 来拟合线性模型 Y = Xβ,它通过最小化平方损失并加上 β 的 L1 范数惩罚来实现稀疏性。

代码(标准 Lasso 用于预测):

# 伪代码
from sklearn.linear_model import Lasso
lasso = Lasso(alpha=λ)
lasso.fit(X, Y) # 最小化 ||Y - Xβ||² + λ||β||₁

现在,假设我们仍然处于高维环境,并且喜欢线性模型,但我们希望拟合一个处理效应函数 τ(x) = Xβ,其中 β 是高维向量。我们该如何拟合这个 β

一旦意识到机器学习本质上是关于以特定方式最小化损失函数,解决方案就变得清晰。任何特定的机器学习算法都结合了一个损失函数和一个最小化该损失函数的算法。对于 Lasso,红色部分是损失函数(平方误差),蓝色部分是使其成为 Lasso 的算法选择(L1 惩罚)。

对于处理效应估计,我们想做类似 Lasso 的事情。我们将线性参数化我们的预测:τ(x) = Xβ,并对参数 β 施加 L1 惩罚。另一方面,对于损失函数,我们将不再使用用于预测的平方误差损失,而是使用从前一幻灯片中描述的、源自罗宾逊变换的损失函数。

代码(R-Lasso 用于 CATE 估计):

# 伪代码:概念步骤
# 1. 首先估计 M̂(x) 和 ê(x)
M_hat = model_M.fit(X, Y).predict(X)
e_hat = model_e.fit(X, W).predict(X)

![](https://github.com/OpenDocCN/dsai-notes-pt2-zh/raw/master/docs/stf-ml-cslinf/img/d12e071e34ad4b8a148a7ef7c7076224_17.png)

![](https://github.com/OpenDocCN/dsai-notes-pt2-zh/raw/master/docs/stf-ml-cslinf/img/d12e071e34ad4b8a148a7ef7c7076224_18.png)

![](https://github.com/OpenDocCN/dsai-notes-pt2-zh/raw/master/docs/stf-ml-cslinf/img/d12e071e34ad4b8a148a7ef7c7076224_19.png)

# 2. 构建 R-损失
def r_loss(tau_pred):
    # tau_pred 是 τ(x) 的预测值,例如 X * beta
    residual = (Y - M_hat) - tau_pred * (W - e_hat)
    return np.mean(residual**2)

# 3. 使用带 L1 惩罚的优化器最小化 R-损失
# 例如,使用 Lasso 优化器,但目标函数是 r_loss

本质上,我们的主张是:现在问题基本上解决了。你想要一个用于 CATE 的 Lasso 类估计量吗?只需运行 Lasso,但将你的平方误差损失函数替换为这个适用于 CATE 的损失函数即可。

处理未知的干扰参数:R-Learner

当然,这里存在一个我们多次见过的细节问题:这个损失函数不仅依赖于数据 (X, Y, W) 和我们想要估计的 τ,还依赖于 Me 这些函数。我们并不关心它们,但如果不指定它们,就无法形成损失函数。

如果我们先验地知道 Me,那么如前所述,直接最小化损失函数即可。但这里我们实际上无法形成损失函数,因为它依赖于这些未知的 Me

考虑到本课程的主题,我们应该怎么做已经很清楚了。首先,我们需要通过某种第一步回归来估计 。这就是我们在使用罗宾逊方法估计恒定处理效应、在因果森林中所做的事情,我们现在需要再次这样做。然后问题是:如果 是从数据中学到的,你还能使用这种损失函数来学习 CATE 吗?

幸运的是,答案是肯定的。这种算法被称为 R-Learner,它扩展了用于通用基于机器学习的 CATE 估计的算法策略。R-Learner 包括以下步骤:

  1. 首先通过分别从 X 学习预测 YW 来拟合
  2. 然后,用交叉拟合得到的 的插件值形成 R-损失函数。
  3. 最后,通过最小化这个带有正则化项的损失函数来拟合 τ̂

公式(R-Learner 目标):
τ̂ = argmin_τ { (1/n) Σᵢ [ (Yᵢ - M̂⁽⁻ⁱ⁾(Xᵢ)) - τ(Xᵢ) * (Wᵢ - ê⁽⁻ⁱ⁾(Xᵢ)) ]² + Λₙ(τ) }
其中 Λₙ(τ) 是某种正则化器,M̂⁽⁻ⁱ⁾ê⁽⁻ⁱ⁾ 表示在排除第 i 个样本的数据上拟合的估计量(交叉拟合)。

形式化的结论是:只要你能以合理的准确度估计 ,那么使用这种损失函数学习 CATE 的保证,就与你将真实的 Me 代入损失函数所得到的保证一样好。有可能获得 τ̂ 的保证,使得 τ̂ 在平方误差损失下的收敛速度比 快一个数量级。

这是一个很好的性质,我们在恒定处理效应估计器中看到过这个性质,但我们上周讨论的元学习器(S-Learner, T-Learner, X-Learner)通常不具备这个性质,即它们的 CATE 估计收敛速度无法超过其干扰参数估计的收敛速度。

总之,R-Learner 框架声称,你基本上可以通过以下方式完成 CATE 估计世界中大多数想做的事情:首先估计 ,然后以此形成你的损失函数,最后使用这个损失函数通用地应用机器学习。

实例演示:R-Learner 的应用

为了更具体地说明,我们来看一个半合成数据的例子。这个例子基于一篇关于“动员投票”电话对投票率影响的论文。我们使用真实数据,但假设真实处理效应为零,然后人工注入一个合成的处理效应。

以下是应用 R-Learner 的步骤:

  1. 第一步:估计干扰参数

    • 我们需要学习 ,即分别从 X 预测 YW
    • 我们尝试了 Lasso 和 Boosting 两种方法,并通过交叉验证选择表现更好的那个。在这个例子中,交叉验证显示 Boosting 更准确,因此我们使用 Boosting 得到交叉拟合的
  2. 第二步:使用 R-损失拟合 CATE

    • 我们采用 R-损失目标函数,并尝试使用 Lasso 或 Boosting 来最小化它。
    • 对于 Lasso,我们使用插件后的 运行 Lasso。
    • 对于 Boosting,我们运行标准的 Boosting,但将平方损失替换为 R-损失。
    • 我们再次基于 R-损失(而非平方损失)进行交叉验证。在这个例子中,交叉验证更偏好 Lasso。

最终,我们得到了一个由 Boosting 拟合的 ,以及一个由 Lasso 拟合的、关于 X 线性的最终 τ̂(x)。由于这是一个半合成例子,我们知道真实的 τ(x),因此可以评估性能。结果表明,通过 R-损失交叉验证不仅帮助我们训练好了 Lasso,还帮助我们正确认识到在此例中 Lasso 比 Boosting 表现更好。

其他方法,如 S-Lasso(一种单阶段 Lasso)或 BART(一种流行的贝叶斯树方法),在这个例子中表现都不如 R-Lasso。

这个例子的要点是,R-Learner 方法非常灵活。一旦使用它,整个工作流程看起来就非常像标准的机器学习流程:根据平方误差损失选择最佳的 e 估计器,根据平方误差损失选择最佳的 M 估计器,然后根据处理效应损失选择最佳的 τ 估计器。

扩展应用:模型堆叠

拥有一个专门的损失函数后,你可以用它做很多事情。机器学习中一个流行的想法叫做堆叠

假设你有 K 个不同的 CATE 估计值(例如来自 K 个不同的专家或算法)。你认为所有专家都可能有其合理之处,因此你希望找到一个共识估计,它是所有专家预测的正权重加权平均。

公式(堆叠模型):τ_stack(x) = α₀ + Σₖ αₖ * τ̂ₖ(x), 其中 αₖ ≥ 0Σₖ αₖ = 1

问题是如何选择这些权重 αₖ。同样,一旦你有了 CATE 的损失函数,该做什么就非常明确了:只需通过最小化 R-损失函数来拟合这些参数 α,并加上权重为非负的约束。

代码(堆叠优化):

# 伪代码:概念步骤
# 输入:K个CATE估计量在数据上的预测值 tau_hats (n x K 矩阵)
# 目标:找到最优权重 alpha (K维向量)

def stacked_tau(X, alpha, tau_hats):
    # 计算堆叠后的预测,假设已包含截距项
    return tau_hats @ alpha

# 优化目标:最小化 R-损失
alpha_opt = minimize(
    fun=lambda alpha: r_loss(stacked_tau(X, alpha, tau_hats)),
    constraints={'type': 'ineq', 'fun': lambda alpha: alpha} # 非负约束
)

这变成了一个带有正性约束的二次规划问题。虽然求解可能需要凸优化知识,但关键在于,一旦有了这个损失函数,该做什么是直接的,剩下的困难只是常规的机器学习类型困难。

在一个模拟研究中,我们尝试了因果森林和 BART。哪一个更好?结果发现,使用上述方法堆叠因果森林和 BART 得到的估计量(绿色部分),其均方误差比单独使用因果森林或 BART 都要低。

这说明了几个要点:

  1. 机器学习本质上是一个以工程为重点的领域,什么方法最好通常是不可预测的。通常最好的做法是经验驱动,尝试多种方法并观察效果。
  2. 为了做到经验驱动,你需要一个衡量成功或失败的标准,否则就像盲目飞行。而 R-损失为 CATE 估计的准确性提供了一个这样的度量标准,可以用于多种目的,从模型学习到模型平均。

总结

本节课中,我们一起学习了如何为异质性处理效应构建稳健的损失函数。我们从回顾罗宾逊变换开始,展示了条件平均处理效应 τ(x) 可以表征为一个特定二次损失函数的最小化解。基于此,我们介绍了 R-Learner 框架,该框架通过分步估计干扰参数(倾向得分 e(x) 和基线响应 M(x)),然后使用一个基于这些估计量的专用损失函数来直接拟合处理效应函数。

这种方法的美妙之处在于,它将复杂的 CATE 估计问题转化为了一个标准的、带正则化的损失函数最小化问题,从而可以与任何现成的机器学习算法(如 Lasso、Boosting、神经网络等)无缝结合。我们还看到了 R-损失函数在模型选择、交叉验证和模型堆叠等高级任务中的应用,为在实践中进行稳健且数据驱动的因果推断提供了一个强大的工具。

018:评估CATE估计的损失函数

在本节课中,我们将学习如何评估和比较不同的条件平均处理效应估计器。我们将探讨在真实数据中,由于无法预先知晓真实的处理效应,如何判断一个估计器是否有效,以及如何在多个估计器中选择更优的一个。

数据背景:加州GAIN项目

上一节我们介绍了几种处理效应估计器,本节中我们来看看如何评估它们的表现。为此,我们需要一个数据集。我们将使用加州GAIN项目的数据。

GAIN是一个旨在帮助人们脱离福利、重返工作岗位的职业培训项目。在90年代初,该项目在多个县进行了随机评估。值得注意的是,这项评估被认为是成功的,GAIN项目随后在加州推广。

这个数据集特别之处在于,它并非一个单一的随机试验,而是在四个县分别进行的、设计略有不同的小型随机试验。每个县在如何运行实验方面有相当大的自由度,包括决定谁有资格参与项目,以及分配到处理组和对照组的比例。

以下是该数据集的关键特点:

  • 数据来自四个县:阿拉米达、洛杉矶、河滨和圣地亚哥。
  • 每个县都进行了随机试验,但试验设计不同。
  • 一些县专注于招募新近的福利领取者,而另一些县则专注于更困难的长期领取者。
  • 分配比例从50/50到90/10不等。

如果我们忽略县的信息,将所有数据合并,我们就得到了一个观察性研究。虽然每个个体都曾被随机分配,但分配到处理组的概率因县而异。我们希望手头的504个协变量足以解释这种由“县”带来的混淆偏差,使得在给定这些协变量的条件下,无混淆性假设成立。

这个数据集具有代表性,因为它模拟了实践中可能遇到的情况:没有极端的自我选择,但存在基于可观测特征的分配差异。此外,由于我们实际上知道每个县的随机分配概率,我们可以在事后将数据按县分层,对观察性分析得出的结论进行透明的、基于RCT的客观检验。

评估不同的CATE估计器

我们的目标是衡量GAIN项目对未来劳动力市场结果的影响。我们尝试了多种基于森林的估计器,包括T森林、S森林、X森林和因果森林。下图展示了这些方法得出的袋外处理效应估计的直方图。

这些直方图看起来各不相同。问题是:哪一个更好?我们如何比较它们?

使用R损失进行评估

一个自然的想法是使用我们之前介绍过的R损失。虽然R损失被设计用于学习CATE估计,但它同样可以作为一个评估工具。我们可以用R损失来评估因果森林、X森林等不同算法得出的估计。

以下是评估结果:

  • 因果森林的R损失为2.39。
  • X森林的R损失几乎相同。
  • T森林和S森林的损失也基本相同。
  • 即使只是对整个数据集拟合一个恒定的处理效应,得到的R损失也几乎相同。

这个结果令人困惑。这些处理效应估计的直方图看起来差异很大,但它们的R损失却几乎相同。这是怎么回事?

为了理解这一点,我们需要分解R损失中的平方项。定义中心化结果 Y_tilde = Y - m(X) 和中心化处理 W_tilde = W - e(X)。利用公式 (a - b)^2 = a^2 - 2ab + b^2,我们可以将R损失分解为三部分:

  1. mean(Y_tilde^2)
  2. -2 * mean(Y_tilde * tau_hat * W_tilde)
  3. mean((tau_hat * W_tilde)^2)

我们发现,第一项 mean(Y_tilde^2) 主导了整个损失函数。这一项不涉及 tau_hat,因此对于所有估计器都是相同的。这就解释了为什么所有方法的R损失看起来都差不多:损失被一个与 tau_hat 无关的、噪声很大的项所主导。

在预测问题中,如果结果变量相对于预测变量噪声很大,通常意味着模型表现很差。但在CATE估计的背景下,R损失天然地会面临这种情况,因为处理效应估计本身就是一个困难的问题,其“伪结果” Y_tilde 通常噪声很大。

比较R损失差异

既然R损失的绝对值被一个无关项主导,我们可以转而关注两个不同 tau_hat 估计的R损失之差。当我们计算差值时,那个占主导地位的公共项 mean(Y_tilde^2) 会被抵消掉,剩下的项就能更清晰地反映 tau_hat 的差异。

具体做法是,将我们感兴趣的 tau_hat 的R损失与一个基线估计的R损失进行比较。一个自然的基线是恒定处理效应估计(即忽略所有异质性)。我们计算 Delta_R = R_loss(tau_hat) - R_loss(tau_constant)

应用此方法后,我们得到了更有意义的结果:

  • T森林和S森林的 Delta_R 为正值,意味着它们的表现比恒定效应估计更差。
  • X森林和因果森林的 Delta_R 为负值,意味着它们确实发现了有意义的处理效应异质性,表现优于恒定效应估计。
  • 对于X森林和因果森林,其 Delta_R 的t统计量绝对值大于1.96,在95%水平上显著。
  • X森林的 Delta_R 比因果森林更小(负得更多),表明根据R损失,X森林发现了更多的异质性,但两者之间的差异并不显著。

因此,比较R损失差异是一种评估和比较不同CATE估计器的有效方法。

其他评估方法

当然,评估CATE的方法不止一种。通常,评估方法最好与你使用CATE估计的具体目的相关联。以下简要介绍几种在实践中被证明有用的思路。

分组校准检查

一个简单的评估思路是:检查估计器是否成功识别出了处理效应高低不同的人群。具体操作如下:

  1. 在训练集上得到 tau_hat
  2. 在测试集上,根据预测的 tau_hat 将个体分为“高预测效应组”和“低预测效应组”。
  3. 分别计算这两组在测试集上的平均处理效应(ATE)。
  4. 检查两组的ATE是否存在差异。

如果两组ATE没有显著差异,那么估计器发现异质性的能力就值得怀疑。这是一个相对较低的“门槛”,但一个有效的CATE估计器通常应该能通过这个基本检查。

线性校准回归

另一种更精细的校准检查是拟合一个线性模型。在测试集上,我们拟合如下模型:
tau_true ≈ alpha * mean(tau_hat_train) + beta * (tau_hat_test - mean(tau_hat_train))
其中 tau_hat_train 是在训练集上学习到的CATE预测值。

对这个模型进行估计:

  • 如果 alphabeta 都接近1,说明训练集的预测在测试集上得到了很好的保持。
  • alpha 衡量平均效应的校准程度。
  • beta 衡量异质性程度的校准程度。如果 beta 显著大于1,说明估计器可能欠拟合(低估了异质性);如果 beta 接近0或为负,则说明估计器发现的“异质性”可能是噪音,甚至方向都是错的。
  • beta=0 的假设检验(P值)可以作为一个整体检验,判断估计器是否发现了任何有意义的异质性。

基尼曲线(增益图)

基尼曲线在营销等领域非常流行,它直接与基于CATE的决策(如干预目标排序)相关联。其核心思想是:

  • 你使用CATE估计对个体进行排序,优先对预测处理效应最高的人进行干预。
  • 在x轴上,绘制被干预个体的累积比例(从0到1,也对应累积成本)。
  • 在y轴上,绘制干预这部分人所带来的累积收益(例如,总处理效应)。

这条曲线直观地展示了成本效益分析:随着干预范围的扩大(成本增加),总收益如何变化。一个表现良好的CATE估计器应该能产生一条快速上升的曲线,意味着能够优先锁定收益最高的个体。更复杂的版本还可以考虑个体化的干预成本。

总结

本节课中,我们一起学习了如何评估条件平均处理效应估计器。

  • 我们首先利用加州GAIN项目的数据构建了一个模拟的观察性研究场景。
  • 我们发现,直接比较R损失的绝对值可能会因为一个与 tau_hat 无关的噪声项而失效。
  • 通过比较R损失与一个基线(如恒定效应估计)的差异,我们可以更有效地评估估计器是否发现了有意义的异质性。
  • 此外,我们还介绍了几种其他评估思路:分组校准检查、线性校准回归以及基尼曲线。这些方法通常与CATE估计的具体应用目的紧密结合,能够从不同角度检验估计器的可靠性和实用性。

选择合适的评估方法有助于我们在众多估计器中做出明智的选择,并增强我们对分析结果的信心。

019:策略学习 🎯

在本节课中,我们将要学习策略学习。到目前为止,我们一直在处理一个包含特征 X、结果 Y、处理 W 和潜在结果的数据框架,并致力于估计条件平均处理效应。策略学习是在相同框架下的另一个问题,但它不是要求你描述处理效应函数,而是要求你做出规定性的建议,即具体推荐哪些人应该接受处理,哪些人不应该。

策略学习的定义与目标

上一节我们介绍了条件平均处理效应的估计,本节中我们来看看策略学习的具体定义。

具体来说,一个处理分配策略 π 是一个从特征空间 X 到推荐值 {0, 1} 的映射。给定你的特征,这个策略会决定是让你接受处理还是进入对照组。策略学习的问题就是利用数据来找到一个好的此类策略。

策略学习问题和CATE估计问题显然密切相关,但也存在一些微妙但至关重要的区别。一个重要的区别在于最终目标。CATE估计的目标是准确估计 τ(x)。策略学习的目标则是学习一个能实现高福利的策略,即当你部署它时,它能为人做出正确的推荐,从而在平均意义上获得高回报。如果你试图进行策略学习,并附带地获得了对 τ(x) 的合理准确估计,但这个估计无助于你做出好的决策,那么从策略学习的目标来看,这用处不大。

因此,本讲最后要介绍的是将策略学习问题形式化,并简要说明如何在基于损失的机器学习框架中学习好的策略。

策略的价值与最优策略形式

现在,让我们更深入地探讨如何评估一个策略的好坏。

假设条件与往常相同,因此不再赘述。有趣且新颖的是策略这个概念,它再次将 X 映射到 0 或 1,以及与之相关的策略价值概念。

策略的价值回答了这样一个问题:如果我独立同分布地抽取每个人,然后看到你的协变量 X,我将你送到处理臂 π(Xi)。如果 π(Xi) 输出 0,我送你到对照组;如果输出 1,我送你到处理组。那么,策略的价值衡量的是在我根据策略 π 分配处理的设计下,或者在等价地,我看到由策略 π 选择的潜在结果的情况下,平均结果会是多少。

写出策略的价值非常简单,它就是所选潜在结果的期望值。这个符号包含了很多信息,如果一开始看起来令人困惑,花几分钟思考一下它代表什么会很有帮助。我们假设结果是好的,你希望 Y 的值越高越好,因此目标将是找到一个使 V(π) 尽可能大的策略 π

为了更直观地理解这个问题,一个有用的方法是注意到你可以将策略价值 V(π) 写成两部分:E[Y_i(0)](即从对照组获得的平均结果,或等价于一个将所有人送到对照组的策略的价值),加上第二项 E[τ(x) * π(x)]。这第二项本质上说明了由于你将一些人送到处理组,你的策略价值发生了怎样的变化。

这个公式很直观:策略的价值等于什么都不做的价值,加上你的策略所推荐的行为带来的价值。我们立即从中看到,本质上,如果你处理那些具有较大处理效应的人,你将从一个策略中获得高效用。否则,如果你只想要可能的最大结果,最优策略 π 将处理具有正处理效应的人,而不处理具有负处理效应的人。如果你有处理成本或预算约束,你仍然会发现,在很大的普遍性下,最优的非参数处理设计和策略 π 将仅仅基于 τ(x) 在某个阈值 C 上进行判断。因此,你的最优策略形式为:π(x) = I(τ(x) > C)

策略学习与CATE估计的深层区别

乍一看,这种简化可能让人觉得策略学习除了CATE估计之外没什么内容。但越是深入观察,就越会发现其中的奥妙。

第一点是统计上的。确实,在非参数意义上,最优策略是在 C 处对 τ 进行阈值判断的策略。但这并不意味着用数据做的最优事情就是先学习一个CATE估计量 τ_hat,然后让你的策略对 τ_hat 进行阈值判断。为什么?到目前为止,我们讨论的估计 τ(x) 的方法本质上都是试图在平方误差损失下尽可能准确地估计 τ(x)。但实际上,平方误差损失并不一定是策略学习中我们真正关心的目标的正确损失函数。

第二点则更实际,但也非常重要。那就是,一旦你从仅仅描述数据转向实际推荐行动,就需要考虑大量以前不存在的新因素。

以下是需要考虑的一些因素:

  • 策略是否可被博弈? 你的数据中可能观察到某些特征 X,但你知道如果你开始将它们用于决策规则,人们就会开始博弈这些特征,从而破坏你的策略,因此你可能不希望使用这些特征。
  • 使用某些变量 X 在你的策略中是否合法或符合道德? 我将回到之前的例子,讨论福利工作计划中优先级排序和资格确定的最优策略。在这个设定中,我们的数据集中有性别信息。τ(x) 可能随性别变化,也可能不。当你只是描述数据时,你应该尽可能准确地描述数据。但当涉及到实际推荐项目资格时,你不允许基于性别进行歧视,因此你的策略 π 不应该使用性别作为决定谁获得项目访问权的变量。

这又是一个不同的维度。这不是一个统计上的考虑,而是一个更实际的考虑,它表明:是的,在非参数意义上,最优策略将是对CATE进行阈值判断的策略。但仅仅对 τ(x) 进行阈值判断,考虑到你数据集中的变量 X,可能不是一个可行的策略,甚至可能不是一个合法的策略。因此,你希望学习那些满足应用所需约束的策略 π

基于损失函数的策略学习方法

那么,我们如何做到这一点呢?鉴于本讲的主题,目标很明确:为策略学习设计一个损失函数,然后使用这个损失函数进行学习。

损失函数应该是什么也很清楚。我们想要找到福利最大化的策略,所以我们的损失将是负福利。你也可以将机器学习过程视为对估计福利进行最大化,这完全没问题。这就是我们想要做的。而核心问题只是:我们如何设计一个在数据上可行、可以优化和用于学习的损失函数?

当你第一次看到这个问题时,可能会觉得棘手。但实际上有一个非常巧妙的解决方案。

一个非常简单的方法是使用逆倾向得分加权来获得策略价值的估计。IPW策略评估的做法是:查看所有样本,对于处理与策略匹配的样本,如果处理不匹配策略,则IPW不考虑它们。然后,它将对所有处理实际匹配你的策略 π 的样本的结果取平均。当然,你会缺失一些样本,因此你需要像平均处理效应估计那样纠正抽样偏差,通过逆倾向得分加权来实现。你可以验证,如果倾向得分已知,那么这个IPW价值估计量 V_hat(π) 是真实 V(π) 的无偏估计。

因此,这是一个合理的价值估计量。然后,机器学习方法可以简单地获取从这个IPW构造中得到的 V_hat(π),并在机器学习意义上通过最大化 V_hat(π) 来学习策略。

在某种意义上,你可以直接这样做。但在另一种意义上,有趣的是,这个目标函数实际上与我们之前处理过的目标函数类型有很大不同。之前在预测中,我们处理的是平方误差损失。对于估计CATE,我们处理的是R损失,它本质上是经过修改的、重新中心化的平方误差损失。因此,学习总是归结为沿着某种二次型目标函数下降并进行正则化。而在这里,情况看起来非常不同。

我们是在对策略 π 进行优化。策略 π 进入这个价值函数的方式是:通过它在所有样本 i=1...n 上做出的推荐。我只关心策略 π 是否在训练样本上推荐 0 或 1。然后,基于此,如果 π 匹配 Wi,那么我将 Wi 的加权版本纳入我的样本,否则不纳入。我不打算在这里对此多说,但使用这种 0/1 型决策规则进行学习,在算法上与使用平方误差损失型目标进行学习是非常不同的。

解决这个问题实际上与解决一个加权分类问题在形式上非常相似。你可以定性地认为,你试图在概念上将人们分类到正确的处理组。虽然这不完全准确,但在优化程序上,它看起来很像。例如,如果你想尝试这个,我们有一个名为 policytree 的包,它实际上在树的空间上解决了这个目标。如果你对如何将其简化为分类问题的细节感到好奇,我们在该包的文档中也进行了更多探讨。

因此,当倾向得分已知时,IPW方法效果很好,它为你提供了一个策略价值的无偏估计,你可以在决策树等空间上进行优化。这为你提供了一种学习策略的好方法。还有什么需要说的吗?到目前为止,在本课程中,我通常不会让你停留在拥有一个在倾向得分已知时运行良好的算法上。在观察性研究中,你可能会担心如果这些倾向得分未知怎么办?你当然可以尝试用估计的倾向得分来运行IPW,但这不会特别稳健。我们还能做其他事情吗?

回想一下上次我们看到IPW是用于平均处理效应估计的,然后我们意识到存在一个双重稳健的替代方案——AIPW。AIPW具有这些很好的稳健性特性,即使倾向得分估计不完美,它也能恢复,这为平均处理效应估计提供了更好的特性。

双重稳健策略学习

事实证明,在策略学习中,同样的情况也成立。这里展示的是所谓的双重稳健得分。如果你还记得AIPW做了什么,AIPW通过取这些 γ_hat_i 的平均值来估计平均处理效应。事实证明,如果你想进行双重稳健的策略学习,你可以构建这些相同的双重稳健得分,然后建立一个类似之前的目标函数。

现在,你可以认为这里所做的是:你试图将人们分类到处理组或对照组。这里我将其中心化,所以如果一个人被处理,这个值是+1;如果被送到对照组,则是-1。有了这个福利目标度量,这些双重稳健得分是处理效应的噪声代理。本质上,如果我给你处理,我就获得那个双重稳健得分;如果我送你到对照组,我就支付那个双重稳健得分。一个好的策略通常会在处理效应为正的特征空间区域(即 γ_hat_i 平均为正的区域)将人们送到处理组,而在 γ_hat_i 通常为负的区域将人们送到对照组。

同样,这也已在 policytree 包中实现。

实例应用:GAIN研究

为了看到这个方法的实际应用,我将回到之前讨论过的GAIN研究。我们将形成与之前相同的双重稳健得分,然后通过最大化这个目标来学习策略。我们需要以某种方式进行正则化,这里我将通过限制你的决策规则可以是任何深度为 K 的树来进行正则化。我将尝试 K=1K=2。本质上,我将要求我的算法查看所有深度为 K 的树的空间,然后看看哪一个能最大化我在这里的估计福利目标。然后我将部署那棵树。

如果我们在这里运行它,那么这就是你得到的输出。大量的数学和非参数统计知识被用于生成这棵树。结果是,在我们之前讨论的GAIN研究中,就福利而言,最佳深度为2的树(或者说,我们声称在福利方面与任何深度为2的树一样好的树)如下所示:

它首先查看:一个人三个月前是否领过工资?如果是,则如果他们高中毕业就处理他们。如果否,则如果他们有孩子就处理他们。

这是一个推荐。其主张是,从功利主义的角度来看,这在将处理分配给那些对处理反应最积极的人方面做得非常好。

如前所述,当你提出政策建议时,当然有些事情是不允许做的。这里我们的数据集中有关于种族和性别的数据。但鉴于不允许且不符合道德基于这些进行歧视,我们只是禁止树在种族或性别上进行分裂。这里还有其他因素在起作用,比如我们查看人们是否有孩子来决定是否处理他们。这是否可以?我认为在某种程度上,这不是由统计学家或计量经济学家来决定的,这取决于利益相关者来看他们是否接受这个决策规则。我喜欢这种在树的空间上进行策略学习的方法的一点是,最终你推荐的策略是一个非常简单的树,希望即使没有数学训练的人也能理解。这样,你就不需要抽象地讨论这棵树在公平性标准下是否是一个可部署的策略,你可以直接去问利益相关者是否喜欢它,然后据此决定。

你可能还会问,这个策略好吗?当然,我们将使用什么标准来评估拟合质量?我们将使用我们的估计福利作为标准。因此,我们将进行某种交叉验证类型的工作,在数据的一部分上尝试学习一个策略,然后在另一部分数据上评估这个策略的平均价值,并在这个损失上评估策略的好坏。在这里,你会看到,就深度为2的树的学习而言,我之前展示的图片在福利指标上的样本外交叉验证类型评估中,相对于其他方法表现良好。这里有两列,左边一列是我在之前讨论过的相同机制下工作,我将小型实验汇集在一起,然后尝试估计倾向得分。这是在估计倾向得分下我们做得如何的评估。右边这里,我“作弊”了,我取回了真实的随机化概率,以便获得客观评估,并实际验证这个策略确实在可测量的程度上优于随机分配。

总结与参考资料

由于本讲已经讨论了很多内容,我在这里讲得非常快。

关于参考资料,对于后半部分,如果你想阅读更多关于策略学习的内容,而不是我在这里给出的粗略介绍,我建议首先从 Hidalgo 和 Tetenov 的这篇论文开始,他们很好地阐述了这个问题,并提出了基于IPW的估计量。然后,在我们的论文中,我们提出了双重稳健的策略学习估计量,并研究了该估计量。如果你想阅读更多关于GAIN应用和策略学习的内容,我们在这里详细讨论了它。

关于本讲前半部分的内容,即用于估计 τ(x) 本身的稳健损失函数,今天的介绍最紧密地遵循了这篇即将发表在《Biometrika》上的论文。特别是,我展示的关于堆叠BART和因果森林的例子取自那里。如果你想了解更多,这篇论文概述了R学习者的方法论,并有一些初步的形式结果。但最近,有一对论文更深入地研究了这一点,证明了关于R学习者类型估计量的更一般、更强大的结果。这两篇论文分别由 F.、学生和 Gus 撰写,另一篇由 Kennedy 撰写。同样,如果你对这类东西的理论感兴趣,这两篇是非常好的阅读材料。

在本节课中,我们一起学习了策略学习的基本概念,理解了它与条件平均处理效应估计在目标上的根本区别,探讨了如何定义和评估策略的价值,并介绍了基于逆倾向得分加权和双重稳健得分的实用学习方法。我们还通过一个实际案例看到了策略学习如何产生可解释的、基于树的决策规则,并讨论了在实际部署时需要考虑的伦理和可行性约束。

posted @ 2026-03-26 13:17  布客飞龙V  阅读(0)  评论(0)    收藏  举报