想象你是一家星级餐厅的厨师长。为了验证新酱料能否提升顾客满意度,你需要设计一次“试验”。但现实很骨感:每位顾客的口味、习惯、心情都不一样,你无法让同一位顾客同时吃到两种菜——一种加酱料、一种不加。这正是因果推断最棘手的部分:反事实无法直接观测。 DML交叉拟合的出现,就像是给因果推断配上了一套“盲测评审制度”:把顾客分成若干折(组),让一组厨师训练口味模型,让另一组厨师做盲评,轮换着来。这样得出的结论,不会因厨师“自卖自夸”而失真,也不会因顾客背景差异而混淆。这篇文章就用餐厅故事串起DML的核心思想、交叉拟合流程和正交化原理,让你看懂因果效应估计为何需要“双重”努力。

岗位关联

因果效应是AI落地决策的核心。掌握DML交叉拟合,意味着你能从高维复杂数据中提取可靠因果结论,在广告投放、政策评估、增长策略等场景中给出经得起业务检验的建议。

目录
  1. 可视化演示
  2. 1. 因果推断基础
  3. 2. 双重机器学习
  4. 3. Nuisance参数
  5. 4. 交叉拟合思想
  6. 5. 正交化原理
  7. 6. 过拟合偏差
  8. 7. DML实现步骤
  9. 8. 应用与价值
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

交叉拟合基本思想 全量数据 N 训练集 (K-1份) 推断集 (1份) Bias = E[(m̂-m)·(l̂-l)] ≠ 0 (同数据) 一阶导数=0 → 正交性 DML交叉拟合可视化:交叉拟合思想、过拟合偏差、K折流程、Neyman正交化及收敛保证。

1. 因果推断基础

厨师长今天要回答一个看似简单的问题:酱料到底提升了满意度吗? 最理想的做法,是让同一个顾客分别在“加酱料”和“不加酱料”两个世界各吃一次,然后比较。可惜世界只有一个,顾客只能吃到其中一种版本。那个没被端上桌的“平行世界版本”,就是统计学里的反事实。

反事实没法直接观测,于是我们用一群人来近似:让一部分人吃加酱料的菜(处理组),另一部分人吃不加酱料的菜(控制组),比较两组的平均满意度。这就引出了ATE(平均处理效应):在理想情况下,它能代表“把酱料推广到全部顾客时,满意度平均提升多少”。

然而,真实餐厅里顾客并非随机分组:偏爱重口味的顾客可能更常点辣酱,而他们本身的满意度基线也更高。这种“处理分配与结果基线纠缠不清”的现象叫混杂。随机对照试验(RCT)之所以宝贵,是因为它通过随机化切断混杂。但现实中不能总把人随机分到“酱料”与“无酱料”两组,于是我们需要用观察数据做因果推断——这正是DML登场的理由。

ATE=E[Y(1)−Y(0)]\displaystyle ATE = E[Y(1) - Y(0)]
  1. $Y(1)$每个样本若接受处理(吃到加酱料的菜)时的潜在结果。厨师长可以把它理解为“酱料世界里的满意度”。
    Y(1)Y(1)
  2. $Y(0)$同一批样本若不接受处理(不加酱料)时的潜在结果,即“非酱料世界里的满意度”。
    Y(0)Y(0)
  3. $Y(1) - Y(0)$个体层面的因果效应,表示酱料为这个顾客单独带来的满意度差值。
    Y(1)−Y(0)Y(1) - Y(0)
  4. $E[\cdot]$对全部顾客取平均,得到整体层面的平均处理效应,即“平均来说,酱料提升满意度多少”。
    E[⋅]E[\cdot]

2. 双重机器学习

有了顾客画像(年龄、口味偏好、点菜历史等特征 $X$),厨师长想做因果推断。传统做法是直接把所有变量丢进回归模型:满意度对“是否加酱料”和一堆特征做线性回归。可现实中的关系是非线性的:年轻人对辣酱敏感,老年人对咸酱敏感,这些交互作用让普通线性回归难以招架。

DML的聪明之处在于把问题拆成两个方程。第一个是结果方程:满意度 $Y$ 由酱料处理 $D$、特征 $X$ 的基线影响 $g(X)$ 和随机扰动 $U$ 组成。第二个是处理方程:顾客是否被分到酱料组 $D$,由特征 $X$ 的分配机制 $m(X)$ 和随机扰动 $V$ 组成。

为什么叫“双重”?因为这里有两套需要学习的函数:$g(X)$ 和 $m(X)$。它们都不是主角,却必须被估计好,因此被称为 Nuisance 参数(辅助障碍参数)。机器学习恰好擅长在高维、非线性空间中拟合这两个函数,于是DML把“因果识别”和“机器学习”焊在了一起,让因果效应估计走入大数据时代。

Y=θD+g(X)+U,D=m(X)+V\displaystyle Y = \theta D + g(X) + U, \quad D = m(X) + V
  1. $Y = \theta D + g(X) + U$结果方程。$\theta$ 是厨师长最关心的酱料净效应,$g(X)$ 刻画“即使不加酱料,顾客原本会打几分”。
    Y=θD+g(X)+UY = \theta D + g(X) + U
  2. $\theta$因果参数,即酱料在控制所有可观测特征后的平均增量效果。
    θ\theta
  3. $D = m(X) + V$处理方程。$m(X)$ 描述“什么样的顾客更容易被安排吃酱料”,$V$ 是去掉可预测成分后的随机偏差。
    D=m(X)+VD = m(X) + V
  4. $U$ 与 $V$两个方程的随机扰动。正交化后它们不相关,这使 $\theta$ 可以从“净相关”中识别出来。
    U,VU, V

3. Nuisance参数

在餐厅场景里,$g(X)$ 好比“口味基线表”:根据顾客的年龄、辣度偏好、历史评分等画像,预测他正常情况下会给这道菜打几分。$m(X)$ 则像“分配机会表”:预测某个顾客被推荐酱料菜的概率。两者都不是厨师长真正要公布的结论,却是算出酱料净效应必需的脚手架。

DML用机器学习模型估计这两个辅助函数。比如用随机森林或梯度提升树去拟合:

为什么不让手写一个固定线性公式?因为真实顾客画像与满意度之间往往有非线性、交互项和高维关系,机器学习能更灵活地捕捉。但灵活也意味着风险:如果模型在训练集上“死记硬背”,预测就会过于乐观。这种过拟合要是传到因果参数估计里,就会让酱料的效果被高估或低估。因此,在拟合Nuisance参数之前,必须先设计好“防止自评偏袒”的训练制度——这就是交叉拟合。

g(X)=E[Y∣X],m(X)=E[D∣X]\displaystyle g(X) = E[Y \mid X], \quad m(X) = E[D \mid X]
  1. $E[Y \mid X]$给定特征 $X$ 时结果变量的条件期望,即“这类顾客不加酱料时的平均满意度基线”。
    E[Y∣X]E[Y \mid X]
  2. $g(X)$结果模型,拟合的是基线特征对满意度的系统性影响,去掉它就能聚焦酱料带来的增量。
    g(X)g(X)
  3. $E[D \mid X]$给定特征 $X$ 时处理分配的条件期望,即“这类顾客被推荐酱料菜的概率”。
    E[D∣X]E[D \mid X]
  4. $m(X)$处理模型,也叫倾向得分模型。它刻画了分配机制中的可预测部分,是后续残差化的关键。
    m(X)m(X)

4. 交叉拟合思想

如果厨师自己尝自己做的菜,总是越尝越满意——他太熟悉这道菜了,甚至能背出每撮盐的位置。这种“过度乐观”在机器学习里就是过拟合:模型在训练数据上表现极好,换个环境就露馅。DML的破局之道,是引入餐厅界常用的“盲评制度”:让别的厨师给你的菜打分。

交叉拟合的具体做法是:把全部顾客随机切成 $K$ 份(折)。对第 $k$ 折的顾客,先用其他 $K-1$ 折训练 $g(X)$ 和 $m(X)$,再对第 $k$ 折做预测并计算残差。然后轮换,保证每一个顾客的预测都来自一个从未见过他的模型。

交叉拟合的精髓是数据不重用:模型永远不在自己要做预测的样本上训练。就像盲评时,评委从没提前尝过这道菜,也不认识做菜的厨师。这样一来,预测误差与残差的关联性被切断,过拟合带来的因果偏差也随之大幅削弱。

U^i=Yi−g^−k(i)(Xi),V^i=Di−m^−k(i)(Xi)\displaystyle \hat{U}_i = Y_i - \hat{g}_{-k(i)}(X_i), \quad \hat{V}_i = D_i - \hat{m}_{-k(i)}(X_i)
  1. $\hat{g}_{-k(i)}(X_i)$第 $i$ 个样本所在的折 $k(i)$ 不参与训练,由其余折拟合出的结果模型给出的基线预测。
    g^−k(i)(Xi)\hat{g}_{-k(i)}(X_i)
  2. $\hat{U}_i$结果残差。顾客实际满意度 $Y_i$ 减去基线预测 $\hat{g}_{-k(i)}$,剩下的就是“偏离预期基线”的部分。
    U^i=Yi−g^−k(i)(Xi)\hat{U}_i = Y_i - \hat{g}_{-k(i)}(X_i)
  3. $\hat{m}_{-k(i)}(X_i)$用其余折训练出的处理模型给出的分配概率预测。
    m^−k(i)(Xi)\hat{m}_{-k(i)}(X_i)
  4. $\hat{V}_i$处理残差。实际是否吃酱料 $D_i$ 减去预测概率 $\hat{m}_{-k(i)}$,代表“超出分配规律之外的那一点变数”。
    V^i=Di−m^−k(i)(Xi)\hat{V}_i = D_i - \hat{m}_{-k(i)}(X_i)

5. 正交化原理

交叉拟合只解决了“预测过程”的干净问题。另一个关键问题是:即便 $\hat{g}$ 和 $\hat{m}$ 有误差,$\theta$ 仍然要稳。DML用的武器叫正交化,本质是把 $Y$ 和 $D$ 都减去各自被 $X$ 解释掉的部分,只留下“净化后”的变异去估计因果效应。

在餐厅语境下,结果残差 $\hat{U}$ 是“顾客满意度中未被画像解释的神秘波动”,处理残差 $\hat{V}$ 是“顾客是否吃酱料中未被画像解释的随机偏差”。两者一相乘取平均,恰好捕捉了酱料带来的净关联;再除以处理残差的方差,完成归一化。最终得到DML估计量:

从统计上讲,这个估计量满足 Neyman 正交条件:评分函数对 Nuisance 参数的一阶导数在真实参数处期望为零。这意味着就算 $\hat{g}$ 和 $\hat{m}$ 有一点点没学准,$\theta$ 的估计也不会剧烈摇摆。这种“局部稳健性”,让DML在复杂机器学习模型前仍能给出可信的因果结论。

θ^=1n∑i=1nV^iU^i1n∑i=1nV^i2\displaystyle \hat{\theta} = \frac{\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i \hat{U}_i}{\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i^2}
  1. $\hat{V}_i \hat{U}_i$每个样本的处理残差与结果残差相乘。若酱料确实提升满意度,则处理残差大时结果残差也倾向大,乘积平均为正。
    V^iU^i\hat{V}_i \hat{U}_i
  2. $\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i \hat{U}_i$所有样本乘积的均值,即“净相关”的样本估计,用来度量酱料与满意度的净关联强度。
    1n∑i=1nV^iU^i\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i \hat{U}_i
  3. $\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i^2$处理残差的方差。它衡量酱料分配中“随机变数”的总量,用来把关联强度标准化为因果尺度。
    1n∑i=1nV^i2\frac{1}{n}\sum_{i=1}^{n}\hat{V}_i^2
  4. 比值 $\hat{\theta}$净关联除以净变异,得到“每增加一单位处理带来的平均结果增量”。
    θ^\hat{\theta}

6. 过拟合偏差

为什么要绕这么大一圈?因为“自己的模型给自己的数据打分”会系统性地制造偏差。试想,大厨对自己的菜总有一种盲目的偏爱,统计数据也一样:若用同一份数据既拟合模型又计算残差,模型会“记住”噪声,残差被人为压低,相关性的估计就会虚高。这就是过拟合带来的估计偏差(Bias)。

严谨地说,样本内残差会让估计量中多出一项“Nuisance模型误差的乘积期望”。设 $\hat{g}$ 与 $\hat{m}$ 分别是样本内拟合的结果模型与处理模型,则:

交叉拟合怎么压制它?在交叉拟合中,$\hat{V}$ 和 $\hat{U}$ 来自“没见过该样本”的模型。模型预测误差不再和该样本的个体噪声纠缠,乘积期望趋向零,偏差随之消失。这就是动画里那根红线每次只用训练折拟合的原因——真正的裁判,必须来自场外。

Bias=E[(m^(X)−m(X))(g^(X)−g(X))]\displaystyle \text{Bias} = E\left[(\hat{m}(X) - m(X))(\hat{g}(X) - g(X))\right]
  1. $\hat{m}(X) - m(X)$处理模型的估计误差,即模型在预测酱料分配概率时偏离真实机制的程度。
    m^(X)−m(X)\hat{m}(X) - m(X)
  2. $\hat{g}(X) - g(X)$结果模型的估计误差,即模型在预测满意度基线时偏离真实基线的程度。
    g^(X)−g(X)\hat{g}(X) - g(X)
  3. 两项相乘两个模型误差的乘积。若模型过拟合,误差在样本内被系统性低估,乘积的期望不再为零。
    (m^(X)−m(X))(g^(X)−g(X))(\hat{m}(X) - m(X))(\hat{g}(X) - g(X))
  4. 整体期望这个乘积期望如果非零,就会污染 $\theta$ 的估计——样本内残差法把“模型自评乐观”传染给了因果效应。
    E[⋅]E[\cdot]

7. DML实现步骤

现在把整套流程端上桌。假设餐厅希望知道酱料对满意度的净效应,数据包括:顾客特征 $X$(口味画像)、是否吃酱料 $D$、满意度评分 $Y$。DML的标准实现可分成四步,像一套严谨的上菜流程。

第一步:把数据随机切分为 $K$ 折(动画演示用的是5折)。第二步:对每一折 $k$,用其余 $K-1$ 折数据训练两个 Nuisance 模型:结果模型 $\hat{g}$ 与处理模型 $\hat{m}$。第三步:在第 $k$ 折上做核外预测,计算结果残差 $\hat{U}$ 与处理残差 $\hat{V}$。第四步:将残差代入矩公式,得到折叠层面的 $\hat{\theta}$,最后跨折聚合:

这四步如同“培训、盲评、评分、汇总”的完整赛事:每一折都上过一次赛场,每一个顾客都拥有一份来自陌生裁判的评分。最终估计值既用了全部数据,又避开了数据重用的陷阱。

θ^=∑k=1K∑i∈IkV^iU^i∑k=1K∑i∈IkV^i2\displaystyle \hat{\theta} = \frac{\sum_{k=1}^{K}\sum_{i \in I_k}\hat{V}_i \hat{U}_i}{\sum_{k=1}^{K}\sum_{i \in I_k}\hat{V}_i^2}
  1. $I_k$第 $k$ 折中的样本集合,也就是当前被“盲评”的那一组顾客。
    IkI_k
  2. $\sum_{i \in I_k}\hat{V}_i \hat{U}_i$第 $k$ 折内部的乘积和,汇总这一折顾客的净关联信息。
    ∑i∈IkV^iU^i\sum_{i \in I_k}\hat{V}_i \hat{U}_i
  3. $\sum_{k=1}^{K}\sum_{i \in I_k}\hat{V}_i^2$所有折的处理残差平方和,用于全局归一化处理变异。
    ∑k=1K∑i∈IkV^i2\sum_{k=1}^{K}\sum_{i \in I_k}\hat{V}_i^2
  4. 整体比值跨折汇总后相除,得到兼顾全部样本且不被单折波动主导的最终因果效应。
    θ^\hat{\theta}

8. 应用与价值

DML交叉拟合在真实商业环境中,就像一套严格执行盲评制的中央厨房质检体系。广告投放领域是最典型的场景:用户看到广告(处理 $D$)、是否下单(结果 $Y$)、用户画像(特征 $X$)。广告平台最关心的不是“点击广告的人有多大几率购买”,而是“广告本身带来的增量购买率”——也就是因果效应 $\theta$。

除了广告,DML还能评估定价策略对会员续费的影响、优惠券对复购的拉动、乃至公共政策对就业的因果作用。关键在于,机器学习让DML能吸收海量高维特征,交叉拟合则让结论不过度乐观。算法工程师借此避开“用相关当因果”的陷阱,数据科学家则能为业务方提供更可信的增量解释。

用餐厅做结尾:厨师长的终极目标不是让某一道菜获奖,而是建立一套可复制的品控流程——由交叉拟合保证盲评公正,由正交化保证评分稳健。于是每一道新菜(干预策略)在上桌前,都能被自信地评估:它真的提升了顾客体验,还是只是另一种“自我感觉良好”。

AI 应用场景

广告增量效果评估

阶段:因果效应估计 / 效果测量

解决的问题:传统广告归因常用“曝光-转化”相关性代替因果性,但曝光用户本身可能就是高活跃用户,带来严重的选择偏差。DML把用户画像作为特征 $X$,用交叉拟合残差化剔除基线转化率,得到广告曝光对转化的净增量。

具体案例:某电商平台对1亿用户做开屏广告实验。业务方想知道每次曝光带来多少额外成交。数据团队用DML交叉拟合,分别建模“用户转化基线”和“用户曝光概率”,最终估计出广告增量转化率为0.37%,比朴素归因的1.2%低了近七成,避免了盲目追加预算。

定价策略与营收优化

阶段:策略评估 / 稳健因果推断

解决的问题:价格弹性估计常被促销、季度、用户等级等混杂变量干扰。DML能同时处理非线性关系和高维特征,把价格作为处理变量 $D$,购买量作为结果 $Y$,在控制画像特征后给出稳健的弹性估计。

具体案例:在线视频平台调整会员订阅价格。用DML交叉拟合估计调价带来的订阅量变化,发现整体弹性为-1.8,但年轻用户弹性只有-0.9。据此设计差异化定价,总体营收提升6%。

个性化干预策略

阶段:异质性效应估计 / 用户分群

解决的问题:DML不仅可以估计平均效应,还可以在残差化的数据上进一步拟合CATE(条件平均处理效应),找到“哪些用户对干预最敏感”。

具体案例:外卖平台针对流失预警用户设计挽留红包。通过DML估计不同用户群体对红包的敏感度,优先向高敏感用户发券,用同样预算获得了2.3倍的复购增量。

Python 演示

python35 行
import numpy as npfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.model_selection import KFold  def dml_cross_fit(X, D, Y, k=5):    kf = KFold(n_splits=k, shuffle=True, random_state=42)    theta_list = []    for train_idx, test_idx in kf.split(X):        X_tr, D_tr, Y_tr = X[train_idx], D[train_idx], Y[train_idx]        X_te, D_te, Y_te = X[test_idx], D[test_idx], Y[test_idx]         g_model = RandomForestRegressor(n_estimators=100, random_state=1)        m_model = RandomForestClassifier(n_estimators=100, random_state=1)        g_hat = g_model.fit(X_tr, Y_tr).predict(X_te)        m_hat = m_model.fit(X_tr, D_tr).predict_proba(X_te)[:, 1]         V_hat = D_te - m_hat        U_hat = Y_te - g_hat        fold_theta = np.mean(V_hat * U_hat) / np.mean(V_hat * V_hat)        theta_list.append(fold_theta)    return float(np.mean(theta_list))  if __name__ == "__main__":    rng = np.random.default_rng(42)    n = 2000    X = rng.normal(size=(n, 3))    D = (X[:, 0] + 0.5 * rng.normal(size=n) > 0).astype(int)    Y = 1.5 * D + X[:, 0] + X[:, 1] - 0.6 * X[:, 2] + rng.normal(size=n)     theta = dml_cross_fit(X, D, Y)    print("DML estimated ATE: %.3f" % theta)    print("True ATE: 1.500")
目的:用五折交叉拟合实现双重机器学习,在合成数据上估计处理变量对结果变量的平均因果效应。
  1. KFold(n_splits=k, shuffle=True, random_state=42)把数据随机分成K折,保证每折分布接近整体。
  2. g_model.fit(X_tr, Y_tr).predict(X_te)用训练折拟合并对测试折做核外预测,避免数据重用。
  3. m_model.fit(X_tr, D_tr).predict_proba(X_te)[:, 1]用训练折估计处理概率(倾向得分)。
  4. V_hat = D_te - m_hat计算处理残差:实际是否被处理减去被处理的预测概率。
  5. U_hat = Y_te - g_hat计算结果残差:实际结果减去基线预测。
  6. np.mean(V_hat * U_hat) / np.mean(V_hat * V_hat)带入矩公式,得到该折的因果效应估计。
  7. float(np.mean(theta_list))汇总各折估计值,得到最终DML因果效应。

常见误区

误区交叉拟合嘛,不就是一次划分:一部分数据训练模型,另一部分数据验证效果。我平时做机器学习都这么干,效果也不错。

正解DML的交叉拟合需要 $K$ 折轮换,让每个样本都获得一次“核外预测”。只有一折训练、一折测试,会浪费大量数据,也无法让每个样本都拥有干净的残差。DML的残差必须全部来自“没见过该样本”的模型,而K折是保证这一点的最小完整方案。

为何常见:很多人接触过普通交叉验证(选模型、调超参),容易把“验证模型效果”和“构造核外残差”混为一谈。前者只需一两次划分够用,后者却需要全面覆盖。

误区辅助模型嘛,只要训练得足够好,预测足够准,因果估计肯定也会更好。反正都是机器学习,卷精度就完事了。

正解Nuisance模型过于“聪明”地记住训练噪声时,残差会在样本内失真,最终污染因果估计。交叉拟合的正是为了切断这条污染链路:模型要准,但更重要的是“预测独立于被预测样本”。稳健性来自正交化与交叉拟合的组合,而非单方面堆叠精度。

为何常见:传统监督学习里模型精度是王,大家习惯性地认为辅助模型也该追求最高精度,忽视了DML的目标是因果参数而非预测准确率。

误区用上随机森林、XGBoost这些高级模型,DML应该就能自动把遗漏变量问题解决掉,所有因果结论都可信。

正解DML解决的是“高维可观测混杂下的有效估计”,它不能创造数据中没有的信息。如果存在未观测的混杂变量(比如顾客的心情),它仍然会导致偏差。DML的前提是可忽略性假设:给定 $X$ 后,处理分配近似随机。这需要用领域知识论证。

为何常见:“机器学习很强大能自动学习复杂关系”的观念深入人心,让人误以为它能突破因果识别的根本局限。

误区DML里不还是有 $\theta D$ 这样的线性项吗?所以只能处理线性效应,而且处理变量似乎必须得是0/1。

正解$\theta D$ 的线性形式刻画的是“因果参数的线性进入方式”,而非特征关系线性。$g(X)$ 和 $m(X)$ 可以是非常复杂的非线性函数,由任意机器学习模型估计。处理变量 $D$ 也可以是连续变量(如价格、时长),此时用回归型处理模型即可,公式依然成立。

为何常见:看到公式里的 $Y = \theta D + g(X) + U$,容易误以为整个模型都是线性的,忽略 $g(X)$ 可以是非参数机器学习模型。

面试题

Q1. DML中交叉拟合的核心目的是什么?

单选题 · easy

  • A.提高预测模型的泛化精度
  • B.消除过拟合带来的因果估计偏移← 正确答案
  • C.通过打乱样本增大有效样本量
  • D.压缩特征维度以加速模型计算

答案:B。交叉拟合让每个样本的残差都来自“没见过自己”的模型,切断过拟合向因果估计传播的链路。它主要不是为了选模型、也不是为了增广数据或降维,而是为了消除数据重用带来的偏差。

Q2. DML中的“Nuisance参数”指的是什么?

单选题 · easy

  • A.高维特征空间中的随机噪声项
  • B.最终需要向业务汇报的因果参数
  • C.因果估计前需拟合的辅助模型← 正确答案
  • D.数据划分时的随机种子状态

答案:C。Nuisance参数是“为了估计真正的因果参数而必须先估计的辅助函数”,包括结果模型 $g(X)$ 和处理模型 $m(X)$。它们不是业务关心的重点,但估计质量会影响最终因果结论的可靠性。

Q3. DML中“残差化”的正确做法是什么?

单选题 · mid

  • A.用结果 $Y$ 减去全体均值得到残差
  • B.用两类模型构造双残差再代入矩公式← 正确答案
  • C.先对处理 $D$ 做交叉拟合再直接回归 $Y$
  • D.把两个残差相加后再除以样本量得到效应

答案:B。DML分别用结果模型和处理模型构造 $\hat{U}=Y-\hat{g}(X)$ 与 $\hat{V}=D-\hat{m}(X)$ 两个残差,再代入矩公式 $\hat{\theta}=\sum \hat{V}\hat{U}/\sum \hat{V}^2$。只做均值中心化或单侧残差化都无法实现正交化。

Q4. DML使用K折交叉拟合时,正确的做法包括?

多选题 · mid

  • A.K折轮换,每折轮流作为待预测集← 正确答案
  • B.Nuisance模型只用训练折数据拟合← 正确答案
  • C.每个样本都获得一次核外预测残差← 正确答案
  • D.所有样本同时参与训练和预测过程

答案:ABC。K折交叉拟合的核心是“每折轮流做测试集、其余折训练模型”,保证每个样本的预测都来自没训练过它的模型,这是核外残差。样本同时参与训练和预测正是过拟合偏差的来源,应当避免。

Q5. DML中 $\hat{V} = D - \hat{m}(X)$ 的含义是什么?

单选题 · mid

  • A.处理变量去除可预测成分后的随机残差← 正确答案
  • B.结果变量去除基线预测后的偏离残差
  • C.处理变量在模型中得到的预测概率值
  • D.结果变量在模型中得到的预测数值

答案:A。$\hat{V}$ 是处理残差:用实际处理状态 $D$ 减去处理模型预测的分配概率 $\hat{m}(X)$,表示“超出可预测规律之外的那部分处理变异”。它回答的是:在给定画像后,这个顾客为什么仍然选择了酱料。

Q6. 关于DML中Neyman正交化的作用,正确的说法包括?

多选题 · hard

  • A.使因果参数对Nuisance小误差不敏感← 正确答案
  • B.通过残差化构造正交的矩条件← 正确答案
  • C.能够消除所有未观测混杂变量的影响
  • D.拟合模型后不再需要任何数据划分

答案:AB。Neyman正交性意味着评分函数对Nuisance参数的一阶导数期望为零,因此 $\hat{g}$、$\hat{m}$ 的小误差不会污染因果参数。它是通过残差化矩条件实现的,但不能消除未观测混杂,也不能替代交叉拟合。

Q7. DML估计量 $\hat{\theta}$ 的样本计算式是?

单选题 · hard

  • A.$V$与$U$乘积的均值除以$V$平方的均值← 正确答案
  • B.$D$与$Y$乘积的均值除以$D$的均值
  • C.$Y$与$X$差值的均值除以$D$与$X$差值
  • D.结果残差$U$的均值直接除以处理残差$V$的均值

答案:A。DML估计量是 $\frac{\frac{1}{n}\sum \hat{V}_i\hat{U}_i}{\frac{1}{n}\sum \hat{V}_i^2}$,分子度量净关联、分母做归一化。其余选项混淆了处理残差与结果残差的关系,或缺少正交化结构,都无法得到因果效应。

Q8. DML中“双重”一词主要指什么?

单选题 · easy

  • A.需要同时准备两个训练集和两个测试集
  • B.同时建模结果与处理并做双残差化← 正确答案
  • C.对因果估计重复做两次交叉验证
  • D.对两个候选估计量取平均再归一化

答案:B。DML要估计两个Nuisance函数(结果模型与处理模型),并计算两个残差 $\hat{U}$ 和 $\hat{V}$,这就是“双重”的来源。它不是双数据集、双交叉验证或双估计量平均。

Q9. DML要得到可靠的因果效应,还需要满足哪个识别假设?

单选题 · hard

  • A.给定特征后可忽略性假设成立← 正确答案
  • B.预测模型必须达到零误差精度
  • C.处理变量必须服从正态分布
  • D.结果变量必须严格属于二值数据

答案:A。DML依赖可忽略性假设:在控制 $X$ 后,处理分配近似随机。它不要求模型零误差(交叉拟合与正交化正是为此设计),也不要求处理或结果变量是特定分布类型,连续和二值均可。

Q10. 关于DML交叉拟合,下列说法最准确的是?

单选题 · extreme

  • A.每个样本的残差由未训练过该样本的模型产生← 正确答案
  • B.交叉拟合可以完美消除全部参数偏差
  • C.交叉拟合只在样本量极小时有使用价值
  • D.交叉拟合的核心是减少模型训练的次数

答案:A。交叉拟合的核心是“核外预测”——模型从未见过该样本,残差才干净。它不能完美消除所有偏差(仍有可忽略性等识别要求),并非只在样本量小时有用,其目的也非节省计算资源,而是保证残差统计性质。