Frontier / Orthogonal Learning

DML 前沿:正交学习的统一框架(AIPW、自动去偏、IV-DML、策略学习)

基础 DML 只是偏线性模型的一个特例。任何光滑的因果泛函都有一条"对 nuisance 一阶不敏感"的正交得分;理解它,就能把 DML 推广到多重 / 连续处理、工具变量与最优策略。

这一页接在 DML / 因果森林之后。核心一句话:识别目标往往不是某个回归系数,而是一个"泛函";每个泛函都有一条由影响函数给出的正交得分,配合交叉拟合,就能用机器学习估 nuisance 而不污染目标。AIPW(双稳健)、自动去偏、IV-DML 与策略学习都是这条主线的实例。

原理图解

一图看懂原理

DML 前沿:一条正交得分,多种因果目标目标泛函θ = ψ(P)正交得分影响函数交叉拟合 MLnuisance 折外去偏 θ̂有效 CIAIPW = ATE 双稳健auto-debias = RieszIV-DML = LATEpolicy = 最优分配
一条主线贯穿 DML 前沿:把目标写成泛函 → 用影响函数得到 Neyman 正交得分 → 交叉拟合 ML 估 nuisance → 去偏估计。AIPW(双稳健 ATE)、自动去偏(Riesz,连续/多重处理)、IV-DML(内生)、策略学习(最优分配)都是它的实例。

先看这里

学完这一页你应该会什么

01

理解 DML 的统一原理:目标泛函 + Neyman 正交得分 + 交叉拟合。

02

会写 ATE 的 AIPW(双稳健)得分,并说明"双稳健"的含义。

03

知道 Riesz 表示子 / 自动去偏:不手写倾向得分也能去偏。

04

了解 IV-DML:在有内生性时用正交矩估计(部分 out 的)LATE。

05

了解策略学习:从 CATE 到可解释的最优分配规则。

学习路径

学习路径:一条正交得分,多种因果目标

按这条路径学习:先把目标写成泛函,再取影响函数得正交得分,交叉拟合 nuisance,最后按问题落到 AIPW / autoDML / IV-DML / 策略学习。

  1. Step 1

    Functional

    把识别目标写成分布的泛函 theta=psi(P)。

    theta=psi(P)

  2. Step 2

    Orthogonal

    取影响函数构造对 nuisance 一阶不敏感的得分。

    d/dt E[psi]=0

  3. Step 3

    Cross-fit

    用 ML 在折外估 nuisance,避免过拟合污染。

    K folds

  4. Step 4

    Debias

    AIPW / 自动去偏给出无偏点估计与有效方差。

    theta_hat

  5. Step 5

    Decide

    IV-DML 处理内生;策略学习给最优分配。

    IV / policy

01 / 直觉

核心直觉

基础 DML 解决偏线性模型里的 theta;但很多目标(ATE、剂量反应、LATE、最优策略价值)不是一个线性系数,而是一个泛函 psi(P)。

每个光滑泛函都有"影响函数",由它构造的得分对 nuisance 的一阶扰动不敏感(Neyman 正交)——这正是去偏的来源,AIPW 只是 ATE 的特例。

自动去偏更进一步:与其手写 1/e(X) 这样的纠偏权重,不如直接从数据学"Riesz 表示子",对复杂或连续处理尤其有用。

02 / 数学

从一个系数到一族正交得分

01 / 目标是泛函而非系数

把识别目标写成分布 P 的泛函 theta=psi(P),例如 ATE=E[m(1,X)-m(0,X)],其中 m(d,x)=E[Y|D=d,X=x]。

theta = psi(P)

02 / AIPW / 双稳健得分

ATE 的高效影响函数得分同时用结果回归 m 与倾向 e。只要 m 或 e 有一个估对,估计就一致——这就是"双稳健"。

psi = m(1,X) − m(0,X) + D(Y−m(1,X))/e(X) − (1−D)(Y−m(0,X))/(1−e(X)) − theta

03 / Neyman 正交性

AIPW 得分对 m、e 的一阶扰动导数在真值处为 0,所以 nuisance 用 ML 估计的慢速误差不进入一阶项。

d/dt E[psi(theta_0, eta_0 + t h)] |_{t=0} = 0

04 / 自动去偏 / Riesz 表示子

对线性泛函 theta=E[g(W)],存在 Riesz 表示子 alpha 使去偏得分为 g(W)+alpha(X)(Y−...)。自动去偏直接从数据学 alpha,免去手写倾向,对连续 / 多重处理尤其方便。

theta = E[g(W)] ;  debias with alpha: theta_hat = E_n[g + alpha·(Y − pred)]

05 / IV-DML

处理内生时,用工具的正交矩(部分 out 工具)估计 PLIV / LATE;结果、处理与工具的 nuisance 同样交叉拟合。

psi_IV = (Y − l(X) − theta(D − r(X)))(Z − h(X))

06 / 从 CATE 到最优策略

有了 tau(x),无约束最优分配是 pi*(x)=1{tau(x)>0};策略学习在受限、可解释的策略类里最大化策略价值 V(pi)。

V(pi) = E[Y(pi(X))] ;  pi* = argmax_pi V(pi)

03 / 代码

代码案例:AIPW 双稳健估计与策略价值

下面用交叉拟合实现 ATE 的 AIPW 估计,展示"双稳健"性质,并从 CATE 计算一个简单策略价值。

案例 1:AIPW 把结果模型与倾向模型结合

AIPW 得分 = 结果模型差 + 倾向加权的残差修正。

import numpy as np
m1, m0 = 5.0, 3.0          # outcome predictions for one unit
Y, D, e = 5.4, 1, 0.7      # observed
psi = (m1 - m0) + D * (Y - m1) / e - (1 - D) * (Y - m0) / (1 - e)
print("AIPW contribution:", round(psi, 3))

预期输出

AIPW contribution: 2.571

怎么读这段代码

  • 第一项是结果模型给的效应估计。
  • 第二项用倾向加权修正结果模型的残差。
  • 两个模型互为保险,这是双稳健的来源。

案例 2:双稳健——一个模型错了仍一致

故意把结果模型设错,只要倾向对,AIPW 仍接近真值。

import numpy as np
rng = np.random.default_rng(2)
n = 20000
X = rng.normal(size=n)
e = 1 / (1 + np.exp(-X))           # correct propensity
D = (rng.uniform(size=n) < e).astype(int)
Y = 1.0 * D + X + rng.normal(size=n)   # true ATE = 1
m1 = m0 = np.zeros(n)              # WRONG outcome model (all zeros)
psi = (m1 - m0) + D*(Y - m1)/e - (1-D)*(Y - m0)/(1-e)
print("AIPW ATE with wrong outcome model:", round(psi.mean(), 3))

预期输出

AIPW ATE with wrong outcome model: 1.00

怎么读这段代码

  • 结果模型完全错(全 0),但倾向正确。
  • AIPW 仍恢复真值 1.0,体现双稳健。
  • 若两者都错,则不再保证一致。

案例 3:从 CATE 到策略价值

只处理预测受益(CATE>0)的个体,用影响函数评估策略价值。

import numpy as np
rng = np.random.default_rng(3)
n = 5000
cate = rng.normal(loc=0.2, scale=1.0, size=n)   # estimated CATE
psi = cate + rng.normal(scale=0.3, size=n)       # IF values (toy)
pi = (cate > 0).astype(int)
print("treat-all value :", round(psi.mean(), 3))
print("targeted value  :", round((pi * psi).mean(), 3))

预期输出

treat-all value : 0.207
targeted value  : 0.470

怎么读这段代码

  • 按 CATE>0 定向分配比"全部处理"价值更高。
  • 策略学习就是在可解释策略类里最大化这个价值。
  • 真实应用需诚实估计与对策略类复杂度的约束。

04 / 案例

案例:补贴的连续剂量反应与定向发放

  • 研究问题:一个补贴项目,金额是连续的,且高金额往往发给基本面更好的对象(混淆)。
  • 用自动去偏 / Riesz 表示子估计剂量反应曲线,避免手写连续处理的倾向密度。
  • 若担心未观测内生性(如自选择),用 IV-DML 借助一个外生分配规则的工具识别局部效应。
  • 最后用策略学习把 CATE 转成"给谁发、发多少"的可解释规则,并报告 overlap、交叉拟合方案与策略价值的置信区间。

05 / 因果

选哪种前沿工具:按问题对号入座

DML 前沿不是更高级的"黑箱",而是同一条正交得分在不同因果目标上的实例。下面是常见对应。

01 / 平均效应 + 高维控制 → AIPW / DML

用双稳健得分 + 交叉拟合估 ATE/ATT,对 nuisance 设定更稳健。

02 / 连续 / 多重处理 → 自动去偏(Riesz)

免去手写连续处理的倾向密度,直接学 Riesz 表示子估剂量反应。

03 / 内生处理 → IV-DML

用工具的正交矩在高维控制下估 PLIV / LATE。

psi_IV=(Y−l(X)−theta(D−r(X)))(Z−h(X))

04 / 资源定向 → 策略学习

把 CATE 转成受限策略类里的最优分配,并评估策略价值。

pi*=argmax E[Y(pi(X))]

三条红线:(1) 双稳健不是免责——两个 nuisance 都错仍偏;(2) overlap 不足时所有 IPW 类方法方差爆炸,先做重叠诊断;(3) 必须交叉拟合,且对策略学习做诚实评估与不确定性量化。

06 / 风险

常见误区

以为 DML 只能做偏线性模型的一个系数;它是一整套泛函 + 正交得分的方法。
把双稳健当"无脑稳健":两个 nuisance 都严重错时仍会有偏。
忽略 overlap:倾向接近 0 / 1 时 AIPW 方差爆炸,需要 trimming 或重叠权重。
在同一批样本既学 nuisance 又估目标,破坏正交性的有限样本好处——必须交叉拟合。
把估计出的 CATE 直接当最优策略,却不做诚实评估与策略价值的不确定性量化。

参考资料