老张在城南开了家面馆,最近研制出一款秘制辣酱。他想知道:这辣酱到底能不能让客人更满意?他细心记下每位客人的满意度、当天是否用了辣酱,还顺手记下客流、时段和客人的口味偏好。麻烦有两层:第一层,他只挑周末给老顾客上辣酱,于是“满意度高”很可能是周末人少、服务更周到的功劳,跟辣酱没关系;第二层,辣酱对不同客人效果天差地别——无辣不欢的老客加 2 分都嫌少,口味清淡的客人尝一口就皱眉。如果只算平均分,两类人一抵消,结论就变成“辣酱没用”。这篇文章要讲的方法,就是一门“因果清洗术”:先把客流、时段这些捣乱因素从数据两边同时洗掉,再画出“辣酱效果随口味偏好变化”的曲线,让老张知道该给谁加辣酱、不该给谁加。这套方法在数据科学里叫 Double ML 的交互模型,是因果机器学习中最实用的工具之一。

岗位关联

掌握交互模型,你就能从观察数据中定位“谁最受益”,把因果结论从报表里的平均数升级成可执行的个性化策略——这是数据团队实现增量价值的高阶能力。

目录
  1. 可视化演示
  2. 交互模型概览
  3. Double ML原理
  4. 交互项设计
  5. 异质效应估计
  6. 推断与调优
  7. 实践案例
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示DML交互模型两阶段流程: nuisance模型g(X)/m(X)交叉拟合估计双重残差、异质处理效应θ(X)半参数识别、K折交叉拟合样本划分策略。

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

DML两阶段流程 Stage1: ML估计g(X)=E[Y|X]和m(X)=E[T|X] Stage2: 双重残差Y~=Y-g(X), T~=T-m(X)回归得θ θ = E[T~·Y~] / E[T~²] 正交矩消除nuisance参数偏差

交互模型概览

老张的记账本里,怕辣指数从 0 到 1 铺成一条刻度。同样一勺辣酱,怕辣指数 0.1 的客人连声叫好,怕辣指数 0.9 的客人眼泪汪汪。老张若只盯着“平均满意度”,两类人一抵消,甚至会得出“这辣酱白做了”的结论。交互模型的出发点,就是不再用一个平均数掩盖所有差异,而是把“效果如何随人变化”这件事明明白白写进模型。

在因果机器学习里,“是否加辣酱”叫处理变量,记作 T;“满意度打分”叫结果变量,记作 Y;“怕辣指数”叫调节变量,记作 X。交互模型假设处理效应 τ 是 X 的函数,记作 τ(x)。当 τ(x) 随 x 变化时,我们就说存在异质性处理效应(HTE)。与之相对,平均处理效应(ATE)把所有人在一个数字里平均,常用于政策评估,却回答不了“该对谁用”的问题。

最常用的交互模型是线性形式:把效应写成 X 的一次函数。系数 β₂ 是“交互斜率”:β₂=0 表示效果与怕辣指数无关;β₂>0 表示越能吃辣,辣酱带来的满意度提升越大。估计出 β₂ 后,任何一位客人的预计效果都能一键算出。

老张拿着估计结果告诉店员:“怕辣指数每高 0.1,这勺辣酱带来的满意度就多 0.12 分。”这不是玄学,而是把“有人爱、有人恨”的模糊直觉变成了一张可查询的价目表。

τ(x)  =  ∂ E[ Y ∣ T=t,  X=x ]∂t  =  β1+β2 x\displaystyle \tau(x) \;=\; \frac{\partial \,\mathbb{E}\big[\,Y \,\big|\, T=t,\; X=x\,\big]}{\partial t} \;=\; \beta_1 + \beta_2 \, x
这个公式把“效果因人而异”压缩成两个数字:β₁ 是基准效果,β₂ 是效果随 X 变化的斜率。
  1. 条件期望的含义在固定 T=t、X=x 的前提下,Y 的平均水平,对应“某一类怕辣指数的客人用/不用酱时的平均满意度”。
    E[ Y ∣ T=t,  X=x ]\mathbb{E}\big[\,Y \,\big|\, T=t,\; X=x\,\big]
  2. 偏导数的动作对 t 求偏导,衡量 T 变动一点时 Y 跟着变动多少,这就是辣酱的因果效果。
    ∂ E[ Y ∣ T=t ]∂t\frac{\partial \,\mathbb{E}[\,Y \,\mid\, T=t\,]}{\partial t}
  3. 线性交互形式β₁ 是基准效果,β₂ 刻画效果随 X 的变化速度,β₂≠0 即存在交互。
    τ(x)=β1+β2 x\tau(x) = \beta_1 + \beta_2 \, x

Double ML原理

老张的记账本里藏着一个“撒谎精”:他总在周末给常客上辣酱。直接比较“用酱 vs 不用酱”的满意度,结论会被周末客流、常客身份污染——忙时服务差、常客自带好感,全被算到辣酱头上。统计学把这类同时影响“是否处理”和“结果”的变量叫作混杂变量,记作 W;它们造成的偏差叫混淆偏差。

Double ML 的思路不是绕开混杂,而是把混杂“洗干净”。它先学两个辅助模型:处理模型,用 W(加上 X)预测 T,学出“什么情况下更可能用酱”;结果模型,用 W(加上 X)预测 Y,学出“不管酱料时满意度大概是多少”。这两个模型在文献里叫扰动参数(nuisance parameters):我们并不在乎它们长什么样,只希望它们别干扰主目标。

单靠“洗两遍”还不够,还要防过拟合。于是 Double ML 用交叉拟合:把样本切成 K 折,每折轮流当“评估折”,用其余折训练两个扰动模型,再回来预测本折,得到残差。这样模型从没“背过”评估折的答案,残差才是真正干净的信号。Neyman 正交性进一步保证:即使扰动模型有些小误差,对最终因果估计的一阶影响也被抹平——误差不会“传染”到辣酱效果上。

打个比方,老张让两个助手背对背干活:助手甲记录“什么日子会上酱”的规律,助手乙记录“满意度基线”的规律,两人都不许偷看对方结果。最后老张把两边的“规律成分”都划掉,剩下的差异,才是辣酱亲自造成的。

ψ(Yi,Ti,Xi; τ)  =  (Yi−ℓ(Xi,Wi))−(Ti−p(Xi,Wi)) τ  =  0\displaystyle \psi\big(Y_i, T_i, X_i;\, \tau\big) \;=\; \big(Y_i - \ell(X_i, W_i)\big) - \big(T_i - p(X_i, W_i)\big)\,\tau \;=\; 0
这是 DML 估计所依赖的“正交矩条件”:把两边的混杂影响都减掉后,剩下的关系才归因于处理效应。
  1. 结果残差从满意度中减去“客流/时段能解释的基线”,剩下的部分不再受混杂支配。
    Yi−ℓ(Xi,Wi)Y_i - \ell(X_i, W_i)
  2. 处理残差从酱料使用中减去“混杂能解释的概率”,得到由随机波动决定的酱料差异。
    Ti−p(Xi,Wi)T_i - p(X_i, W_i)
  3. 正交矩条件令处理残差与结果残差的组合满足零期望并解出 τ,该构造对扰动参数的估计误差一阶不敏感。
    ψ(Yi,Ti,Xi; τ)=0\psi\big(Y_i, T_i, X_i;\, \tau\big) = 0

交互项设计

怕辣指数不是开关,而是一条连续刻度。老张想要的不只是“怕辣族 vs 爱辣族”两个数,而是一条平滑的效果曲线:0.2 分位的人加多少分、0.7 分位的人加多少分,都能从曲线上读出来。这就要做交互项设计。

交互项设计指的是:选择用什么函数形式来表达 τ(x)。最简单的做法是线性交互项,把 T 与 X 的乘积放进模型,得到一条直线;但直线太“刚”,真实关系可能是先平后陡的曲线。这时可以把 X 送进一组基函数,再让模型自由组合它们。

三种主流做法:线性交互项 T×X 可解释性好,适合初探;基函数展开把 X 映射成多项式、样条基,再线性组合成曲线;非参数扩展如核方法、因果森林灵活度高,但需要更多数据与正则约束。模型选择上要小心嵌套切分:选基函数结构与估计因果效应不能在同一份数据上重复进行,否则会“挑数据”。

基函数展开像老张把“怕辣刻度”拆成几段不同粗细的尺子——有的尺子量低段更细,有的量高段更准,拼起来就能画出一条贴合真实味蕾的曲线,而不是硬用一条直线去凑。

τ(x)  =  ∑j=1Jβj ϕj(x)  =  β0+β1x+β2x2+⋯\displaystyle \tau(x) \;=\; \sum_{j=1}^{J} \beta_j \, \phi_j(x) \;=\; \beta_0 + \beta_1 x + \beta_2 x^2 + \cdots
基函数展开让效果曲线从“一根直尺”升级成“一把可弯曲的软尺”,系数由数据决定。
  1. 基函数的作用把一维怕辣指数变换成一组特征(例如 x、x²、分段样条),让曲线更灵活。
    ϕj(x)\phi_j(x)
  2. 线性组合把 J 个基函数按系数 βⱼ 加权求和,得到整条效果曲线,系数由回归估计。
    ∑j=1Jβj ϕj(x)\sum_{j=1}^{J} \beta_j \, \phi_j(x)

异质效应估计

清洗完成,老张手上有两列干净数字:T̃ 是“随机成分决定的酱料差异”,Ỹ 是“剔掉基线后剩余的满意度变化”。接下来要做的事,就像在坐标纸上把这两列数描成点,然后问:斜率是多少?

异质效应估计的核心步骤,是把 Ỹ 对 T̃ 和 T̃·X(以及 X 的基函数交互)做回归。因为数据已经过双重正交化,这个回归的偏差是一阶小的;配合交叉拟合,方差也不会失控。得到 β̂ 后,任意 X=x 处的 CATE 就是 β̂₁ + β̂₂x(或更一般地 Zᵀβ̂)。

这个估计量继承了双重稳健性:处理模型和结果模型只要有一个近似正确,最终估计的偏差就非常有限。更高级的做法是因果森林——在残差空间里递归划分样本,让每一片叶子自动找到“效果相近的人”,从而估计完全非参数化的 τ(x)。因果森林本质上是“交互项的自动化设计”。

老张盯着坐标纸欣慰地点头:爱辣族的点云明显向右上倾斜,怕辣族的点云几乎水平甚至向右下倾斜。两条斜率的落差,就是交互模型交给他的核心情报。

β^  =  arg⁡min⁡β∈RJ    1n∑i=1n(Y~i  −  T~i (Zi⊤β))2\displaystyle \hat{\beta} \;=\; \arg\min_{\beta \in \mathbb{R}^J} \;\; \frac{1}{n}\sum_{i=1}^{n} \Big( \tilde{Y}_i \;-\; \tilde{T}_i\,\big( Z_i^{\top}\beta \big) \Big)^2
这个最小二乘问题跑在“洗干净”的残差数据上,得到的就是交互模型的系数估计。
  1. 残差化数据Ỹ 与 T̃ 是双重清洗后的残差,混杂的线性影响已被剥离。
    Y~i=Yi−ℓ(Xi,Wi),T~i=Ti−p(Xi,Wi)\tilde{Y}_i = Y_i - \ell(X_i, W_i), \quad \tilde{T}_i = T_i - p(X_i, W_i)
  2. 交互设计向量Zᵢ 由 Xᵢ 的基函数构成,T̃ᵢ Zᵢᵀβ 让效果随 X 逐点变化。
    T~i (Zi⊤β)\tilde{T}_i\,\big( Z_i^{\top}\beta \big)
  3. 最小二乘目标最小化残差平方和,β̂ 即为交互模型的系数估计。
    arg⁡min⁡β    1n∑i=1n(Y~i−T~i Zi⊤β)2\arg\min_{\beta} \;\; \frac{1}{n}\sum_{i=1}^{n} \big( \tilde{Y}_i - \tilde{T}_i\,Z_i^{\top}\beta \big)^2

推断与调优

老张只有 400 条记录,他怕 β̂₂=1.2 只是运气好。要说服自己、说服合伙人,他需要答案附上一个“靠谱程度”——这就是推断。

推断关心两件事:交互效应有多大(估计),以及这个估计稳不稳(不确定性)。给 β̂₂ 配上标准误后,可以构造置信区间,也可以做假设检验:原假设 H₀: β₂=0 表示“效果与怕辣指数无关”。

调优要点有四个:一是当基函数很多时,在交互回归里加 L1/L2 正则化,防止把噪声也拟合进去;二是交叉拟合的折数 K 通常取 5 到 10,太少则残差不干净、太多则每折样本过少;三是标准误建议用异方差稳健估计;四是做敏感性分析——如果存在未观测混杂,β̂₂ 要偏离多大才会让结论反转?回答了这个,结论才有说服力。

置信区间让老张的汇报有了底气:“辣酱对怕辣指数 0.9 的客人效果在 [-0.3, 0.1] 之间,基本可以认定无效;而对 0.1 的客人,有 95% 把握在 [1.2, 2.0]。”这比一句“有人觉得不错”有力量得多。

β^2  ±  zα/2 se^(β^2)\displaystyle \hat{\beta}_2 \;\pm\; z_{\alpha/2}\,\widehat{\mathrm{se}}\big(\hat{\beta}_2\big)
置信区间给出交互系数的一个“合理波动范围”,区间不包含 0 才能宣称发现了真实交互。
  1. 点估计β̂₂ 是交互斜率,代表效果随 X 的变化速度。
    β^2\hat{\beta}_2
  2. 标准误由残差或稳健三明治公式计算,反映 β̂₂ 的抽样波动。
    se^(β^2)\widehat{\mathrm{se}}\big(\hat{\beta}_2\big)
  3. 临界值z_{α/2} 是标准正态分布的 α/2 分位点,95% 置信水平下约为 1.96。
    zα/2z_{\alpha/2}
  4. 区间判定区间不包含 0,说明在给定显著性水平下交互效应不是偶然。
    β^2  ±  zα/2 se^(β^2)\hat{\beta}_2 \;\pm\; z_{\alpha/2}\,\widehat{\mathrm{se}}\big(\hat{\beta}_2\big)

实践案例

老张要开分店了,预算有限,不能再“逢客就上酱”。他要做的,是把辣酱从“全员标配”改成“精准投放”:只给那些 CATE 大于成本的人上酱。

实践中两个最常见的场景:精准营销,对每个用户估计 CATE,只对“因为优惠才买”的人投放,而不是对“本来就会买”的人撒钱;医疗用药,用电子病历估计药物效果随年龄、基因的连续变化,找出真正受益的亚组。共同点在于:数据都是观察性的,混杂无处不在,但决策需要的恰恰是“对谁有效”。

落地时有三个常见隐患:一是把 ATE 当 CATE 用,平均效应为正不代表每个人都该被处理;二是忽略 X 与 W 的重叠,某些取值下几乎没有处理组样本,估计会爆;三是在原始变量上直接加交互项,忘了先做双重清洗。正确落地清单是:验数据→双重清洗→交互建模→区间检验→按净收益决策→小规模 A/B 验证再全量。

老张的最终方案:凡 CATE 高于一勺辣酱成本 0.6 分的客人免费加酱,低于的客人推荐清汤。一个月后,辣酱成本下降三成,满意度反而上升——这就是交互模型带来的、看得见的生意改进。

NB(c)  =  ∑i=1n(τ^(xi)−c) I(τ^(xi)>0)\displaystyle \mathrm{NB}(c) \;=\; \sum_{i=1}^{n} \big(\hat{\tau}(x_i) - c\big)\,\mathbb{I}\big(\hat{\tau}(x_i) > 0\big)
净收益公式把“对谁投放”变成一个算术题:效果减去成本,只留下为正的客人。
  1. 单位净收益τ̂(xᵢ) 减去成本 c,得到对第 i 位客人投放的净收益(可为负)。
    τ^(xi)−c\hat{\tau}(x_i) - c
  2. 筛选指示函数指示函数当且仅当括号内不等式成立时取 1,把负收益客人筛掉。
    I(τ^(xi)>0)\mathbb{I}\big(\hat{\tau}(x_i) > 0\big)
  3. 总净收益对所有入选客人求和,NB 越大,精准投放方案越优。
    NB(c)=∑i=1n(τ^(xi)−c) I(τ^(xi)>0)\mathrm{NB}(c) = \sum_{i=1}^{n}\big(\hat{\tau}(x_i) - c\big)\,\mathbb{I}\big(\hat{\tau}(x_i) > 0\big)

AI 应用场景

优惠券精准营销

阶段:用户画像与因果增量建模(CATE 估计)→ 投放策略

解决的问题:传统响应模型预测“谁最可能买”,但高响应不等于高增量——老客本来就买,发券只是白白让利。用 Double ML 交互模型,把活跃度、历史客单、渠道等作为混杂 W,把“价格敏感度”作为调节变量 X,估计每位用户的 CATE,做到“只给有效果的人发券”。

具体案例:某电商 618 大促,对 200 万用户做券后购买分析。DML 交互模型发现 CATE 随价格敏感度显著上升(交互斜率约 0.9),按 CATE>成本 筛选出 60 万投放对象,转化率基本持平,预算节省 38%,复购率反升。

医疗个性化用药

阶段:疗效因果评估与亚组分析

解决的问题:电子病历是观察数据,重症患者更可能用新药,直接比较用药组与对照组会有严重选择偏差。用 DML 剥离病情严重度、并发症等混杂,交互模型估计药效随年龄的连续变化,避免“平均有效但亚组无效”的误导。

具体案例:某降压药回顾性分析显示,60 岁以上患者 CATE 约 0.7 且显著,50 岁以下 CATE 约 0.1 且不显著。临床据此将新药推荐限定在老年亚组,并启动前瞻性队列验证,既避免无效用药也控制了费用。

Python 演示

python54 行
import numpy as npfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import KFold  def generate_data(n=400, seed=42):    # 生成面馆实验数据: T=辣酱, Y=满意度, W=客流时段混杂, X=怕辣指数    rng = np.random.RandomState(seed)    w = rng.normal(size=(n, 2))    x = rng.uniform(-1, 1, size=n)    p = 1.0 / (1.0 + np.exp(-(0.6 * w[:, 0] - 0.4 * w[:, 1])))    t = rng.binomial(1, p)    tau = 0.8 + 1.2 * x          # 真实交互效应: 怕辣指数越高收益越大    y = 1.0 + 0.7 * w[:, 0] - 0.5 * w[:, 1] + tau * t    y += rng.normal(scale=0.5, size=n)    return x, t, y, w  def naive_estimate(x, t, y):    # 朴素做法: 直接在原始变量上加交互项, 不做双重清洗    z = np.column_stack([t, t * x])    lin = LinearRegression().fit(z, y)    return float(lin.coef_[0]), float(lin.coef_[1])  def double_ml_interaction(x, t, y, w, n_splits=5):    # 双重机器学习交互模型: 估计 tau(x) = b1 + b2 * x    n = len(y)    kf = KFold(n_splits=n_splits, shuffle=True, random_state=42)    t_res = np.zeros(n)    y_res = np.zeros(n)    nuisance_x = np.column_stack([w, x.reshape(-1, 1)])    for train_idx, test_idx in kf.split(y):        m_t = LinearRegression().fit(nuisance_x[train_idx], t[train_idx])        m_y = LinearRegression().fit(nuisance_x[train_idx], y[train_idx])        t_res[test_idx] = t[test_idx] - m_t.predict(nuisance_x[test_idx])        y_res[test_idx] = y[test_idx] - m_y.predict(nuisance_x[test_idx])    z = np.column_stack([t_res, t_res * x])    lin = LinearRegression().fit(z, y_res)    return float(lin.intercept_), float(lin.coef_[0]), float(lin.coef_[1])  def main():    x, t, y, w = generate_data()    naive_b1, naive_b2 = naive_estimate(x, t, y)    eta, b1, b2 = double_ml_interaction(x, t, y, w)    print('朴素回归: ATE ~= %.3f, 交互斜率 ~= %.3f' % (naive_b1, naive_b2))    print('DML 回归: ATE ~= %.3f, 交互斜率 ~= %.3f' % (b1, b2))    print('怕辣指数 +0.5 -> CATE ~= %.3f' % (b1 + b2 * 0.5))    print('怕辣指数 -0.5 -> CATE ~= %.3f' % (b1 + b2 * -0.5))  if __name__ == '__main__':    main()
目的:演示用双重机器学习估计交互模型,从含混杂的观察数据中还原真实的处理效应曲线,并与朴素回归对比。
  1. t = rng.binomial(1, p)用客流加权后过 sigmoid 决定是否上酱,制造出“繁忙时段更可能上酱”的选择偏差。
  2. tau = 0.8 + 1.2 * x埋入真实交互效应:怕辣指数每 +1,辣酱的满意度增益就 +1.2。
  3. for train_idx, test_idx in kf.split(y):交叉拟合:5 折轮流当评估折,其余 4 折训练扰动模型,防止过拟合自欺。
  4. m_t = LinearRegression().fit(nuisance_x[train_idx], t[train_idx])处理模型:用客流/时段/怕辣预测“是否用酱”。
  5. m_y = LinearRegression().fit(nuisance_x[train_idx], y[train_idx])结果模型:用同样的变量预测满意度基线。
  6. t_res[test_idx] = t[test_idx] - m_t.predict(nuisance_x[test_idx])处理残差 T̃:剥掉“非随机用酱”的成分。
  7. y_res[test_idx] = y[test_idx] - m_y.predict(nuisance_x[test_idx])结果残差 Ỹ:剥掉“非酱料因素”的满意度。
  8. z = np.column_stack([t_res, t_res * x])交互设计矩阵:由 T̃ 与 T̃×X 构成,对应线性交互模型。
  9. print('DML 回归: ATE ~= %.3f, 交互斜率 ~= %.3f' % (b1, b2))输出对比:DML 的 ATE 回到 0.8 附近,而朴素回归的 ATE 明显偏高。

常见误区

误区我刚学线性回归时以为交互模型就是在模型里加 T×X 就完事了,加完直接看系数大小,不知道还要管混杂。

正解观察数据里 T 和 X 都可能被混杂 W 驱动,直接加乘积项会把混淆偏差卷进交互系数。正确姿势是先做 Double ML 双重清洗(T 和 Y 分别对 W 残差化),在残差上构造 T̃×X 交互项;Neyman 正交性保证即使扰动模型有偏差,交互估计也稳稳的。好比老张先把碗洗干净再品酱料,而不是连碗底剩菜一起尝。

为何常见:教科书里“加交互项”只是模型语法层面的操作,很少强调因果识别条件,读者容易把它当成万能补丁。

误区我以为 cross-fitting 和 cross-validation 是一回事,都是把数据切几折来调参数、选模型。

正解交叉验证是切训练/验证折用来选超参数;交叉拟合是把数据切成 K 折,每折轮流当“评估折”,用其余折训练扰动模型并预测该折,得到“没被自己偷看过”的残差。目的是防止扰动模型在训练自己的数据上预测太好,把偏差悄悄塞进残差——相当于厨师不能拿自己刚写的菜谱去夸自己。

为何常见:两个术语都带 cross 词根,且很多教程混用,初学者极易张冠李戴。

误区做异质效应时,我习惯先按人群分层,每组算一个 ATE,再比较组间差异,觉得这就是交互模型。

正解分层是离散近似,组界划得主观、样本一少就虚,组内仍然可能异质。交互模型把 τ(x) 建模成 x 的连续函数(线性/基函数/核),给出逐点估计与置信区间,还能检验“交互系数是否为 0”。好比老张不再把顾客粗暴分成两类,而是画出一条随怕辣指数平滑变化的效果曲线。

为何常见:分箱对比是人类直觉,操作简单且好汇报,但统计效率低、易受任意分组边界影响。

误区听到“正交”两个字,我第一反应是特征矩阵列与列互相垂直、不相关。

正解这里的正交指的是“矩条件对扰动参数在真值处的导数为零”——即扰动模型(倾向得分、结果回归)的一阶估计误差不会传导到因果参数估计上。不是特征不相关,而是“误差不串联”。就像老张的测温枪有零点几度的误差,但实验设计得当,这点误差不会改变“辣酱有效”的结论。

为何常见:线性代数先入为主,“正交”一词在不同语境含义迥异,误用场景非常普遍。

面试题

Q1. Double ML 中的“双重”指的是什么?

单选题 · easy

  • A.对两组人群分别拟合模型
  • B.分别估计处理模型与结果模型← 正确答案
  • C.使用两个数据集重复验证
  • D.同时估计结果均值与方差

答案:B。“双重”是指同时估计处理模型(预测 T)和结果模型(预测 Y),并将两者的影响从数据中剥离。A 是分层分析,C 是外部验证,D 是描述统计,均与 DML 的双重清洗无关。

Q2. 交互模型刻画的核心现象是?

单选题 · easy

  • A.处理效应随调节变量变化← 正确答案
  • B.样本量随特征维度增加
  • C.误差随迭代次数减少
  • D.变量之间存在多重共线性

答案:A。交互模型的核心是异质性处理效应:τ(x) 随调节变量 X 变化。B 是维度灾难,C 是收敛性,D 是共线性问题,三者都不是交互模型要回答的问题。

Q3. 交叉拟合(cross-fitting)的主要作用是?

单选题 · mid

  • A.通过重复使用数据扩大样本
  • B.防止单折过拟合导致偏差扩散← 正确答案
  • C.显著降低整体计算复杂度
  • D.消除特征之间的多重共线性

答案:B。交叉拟合让每个样本的残差都由“没训练过它”的模型产生,防止扰动模型过拟合把偏差混进残差。A 并非目的,C 通常反而增加计算量,D 是特征工程问题。

Q4. Neyman 正交性的直观含义是?

单选题 · mid

  • A.所有特征之间相互独立
  • B.对扰动参数误差一阶不敏感← 正确答案
  • C.结果变量服从标准正态分布
  • D.处理与结果变量完全不相关

答案:B。正交性指矩条件对扰动参数(倾向得分、结果回归)的导数在真值处为零,因此扰动模型的小误差不会一阶传导到因果估计。A 是线性代数里的正交,C 是分布假设,D 是零相关假设,均不是正交互性的含义。

Q5. 下列哪些建模方式可用于交互模型的效果曲线设计?

多选题 · hard

  • A.线性交互项建模 T×X← 正确答案
  • B.基函数展开建模 T·φ(x)← 正确答案
  • C.仅用二次项即可表达所有交互
  • D.核方法或因果森林扩展← 正确答案

答案:ABD。线性乘积项、基函数展开、核方法与因果森林都是合法的交互建模方式。C 错误:二次项只是基函数的一个特例,“任意交互”需要足够丰富的基或非参数结构,单靠二次项无法表达复杂关系。

Q6. 异质效应估计中,CATE 指的是?

单选题 · mid

  • A.全体人群的平均处理效应
  • B.给定协变量下的条件平均效应← 正确答案
  • C.处理组的平均期望结果
  • D.对照组的平均期望结果

答案:B。CATE 是 τ(x)=E[Y₁-Y₀|X=x],即在特定协变量条件下的平均处理效应。A 是 ATE,C、D 只是处理组/对照组的期望结果,都没有刻画“效应差异”。

Q7. 双重稳健性(double robustness)指的是?

单选题 · hard

  • A.两个模型都正确时估计才无偏
  • B.处理或结果模型之一正确即可无偏← 正确答案
  • C.两个模型都不正确也能保持无偏
  • D.样本量超过两倍时估计无偏

答案:B。双重稳健性意味着处理模型与结果模型只要有一个被正确设定,估计量就保持一致性(偏差可控)。A 要求过强,C 过于乐观,D 与样本量翻倍无关。

Q8. 关于交互系数 β₂ 的统计推断,下列说法正确的是?

多选题 · mid

  • A.原假设通常设为交互系数为零← 正确答案
  • B.置信区间不含零时拒绝原假设← 正确答案
  • C.p 值越小说明交互效应越弱
  • D.显著性检验能证明交互效应大小

答案:AB。检验交互是否存在,原假设通常是 H₀: β₂=0;置信区间不包含 0 意味着在给定水平下拒绝原假设。C 说反了,p 值越小证据越强;D 错误,显著性只说明“是否为零”,不度量效应大小。

Q9. 关于 Double ML 估计量的理论性质,下列说法正确的是?

单选题 · extreme

  • A.只要处理模型足够准,结果模型可随意
  • B.正交性与交叉拟合共同压低偏差与方差← 正确答案
  • C.样本量必须大于特征数量的平方
  • D.估计值与样本选择机制完全无关

答案:B。DML 的偏差来自扰动模型误差与样本分块的交互:Neyman 正交性消除一阶偏差,交叉拟合控制高阶残差项,两者配合使估计以接近参数的速率收敛。A 错,两个扰动模型都需要合理结构;D 错,选择机制必须被 W 充分捕捉,否则仍会偏差。

Q10. 敏感性分析主要考察什么?

单选题 · easy

  • A.结果对未观测混杂的稳健程度← 正确答案
  • B.模型对界面配色的敏感程度
  • C.特征对物理单位的敏感程度
  • D.数据对存储格式的敏感程度

答案:A。敏感性分析回答“若存在未观测混杂,结论会反转吗”,用来评估因果估计的可信边界。B、C、D 分别涉及界面、单位、格式,均与因果识别的稳健性无关。