海边浴场的数据记录员阿伟,每天做着同一件事:记录卖出的冰淇淋数量,以及当天溺水游客的人数。三个月后,他把两组数字画成散点图,发现它们几乎沿着一条上升直线排布——冰淇淋卖得越多,溺水的人就越多,相关系数高达 0.85。阿伟激动地贴出海报:“冰淇淋是溺水元凶,请勿食用!”幸好,一位路过的统计学家拦住了他:“阿伟,你只看到了'手拉手',却没问是谁在拉谁。” 故事里的阿伟,像极了初学数据分析的我们:看到两条一起升高的曲线,就忍不住说“因为”。但冰淇淋销量与溺水人数共享一个真正的幕后推手——炎热的天气。天热,人既想吃冰淇淋,也想下水游泳,两个数字便同步上升。这种被共同原因制造出来的“亲密关系”,统计学上称为虚假相关。本文将带你走进因果推断的世界:用潜在结果框架定义因果、用随机化实验验证因果、用 do 演算和工具变量在观察数据中逼近因果,最后用反事实回答“如果当初没有……会怎样”。读完你就能像侦探一样,拆穿数据背后的谎言,分清“相关”与“因果”。

岗位关联

对 AI 从业者而言,因果推断是从“预测”走向“决策”的必修课:无论是推荐系统评估、广告增量分析,还是算法策略的 A/B 测试,掌握因果思维能让你严谨地回答“这个模型真的带来了改变吗”。

目录
  1. 可视化演示
  2. 相关与因果
  3. 潜在结果框架
  4. 随机化实验
  5. 混杂因素
  6. do演算
  7. 工具变量
  8. 反事实推断
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

可视化因果DAG中混杂变量Z对X→Y因果效应的影响,通过do(X)干预切断混杂路径,对比观察效应与因果效应。

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

观察分布模式 混杂变量Z同时影响X和Y,导致观察效应被高估 X→Y的直接因果路径被混杂路径污染,相关性≠因果性 P(Y|X) ≠ P(Y|do(X)) 观察分布下X与Y的关联包含因果效应与混杂偏倚,需要通过干预分离真实因果效应。

相关与因果

海边浴场的数据记录员阿伟每天记录两行数字:卖出的冰淇淋数量,和当天溺水的游客人数。三个月后,他画出的散点图显示两者几乎沿着一条直线上升——冰淇淋卖得越多,溺水的人就越多。阿伟兴奋地算出相关系数高达 0.85,并张贴海报:“冰淇淋是溺水元凶,请勿食用!”幸好,统计学家拦住他:“相关只是两手相牵,不等于一人拉另一人。”

相关系数衡量的是两个变量在数据中“同步变化”的程度,却无法说明谁在影响谁。冰淇淋与溺水的“亲密关系”其实源于一个共同推手——炎热天气。天热,人们既想吃冰淇淋,也想下水游泳,于是两个数字一起升高。这种由第三变量制造的关联,就是典型的虚假相关。统计学用皮尔逊相关系数 r 来量化线性相关的强弱:

回到浴场,阿伟真正需要做的是记录“天气”这个第三只手。当他按高低温把数据分成两组后,组内冰淇淋与溺水的相关几乎消失。他恍然大悟:冰淇淋与溺水的“亲密关系”,不过是温度导演的一场戏。相关系数可以是一个线索,但它远不足以成为证据。

rXY=∑i=1n(Xi−Xˉ)(Yi−Yˉ)∑i=1n(Xi−Xˉ)2⋅∑i=1n(Yi−Yˉ)2\displaystyle r_{XY} = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2} \cdot \sqrt{\sum_{i=1}^{n}(Y_i - \bar{Y})^2}}
这个公式把“两个变量是否一起偏离各自的平均水平”标准化到 -1 到 1 之间的一个数,用来描述线性关联的强度和方向。
  1. 中心化(去均值)把每一天的冰淇淋销量减去这段时间的平均销量,得到“偏高或偏低了多少”。
    Xi−XˉX_i - \bar{X}
  2. 同步偏离的乘积把同一日期的两个“偏离量”相乘再求和,如果两者总是一起高或一起低,乘积和为正。
    ∑i=1n(Xi−Xˉ)(Yi−Yˉ)\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})
  3. 标准化分母除以两个变量各自波动幅度的乘积,消除量纲和尺度的影响。
    ∑i=1n(Xi−Xˉ)2⋅∑i=1n(Yi−Yˉ)2\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2} \cdot \sqrt{\sum_{i=1}^{n}(Y_i - \bar{Y})^2}
  4. 相关系数 r取值越接近 1 或 -1,线性关系越强;接近 0 则几乎没有线性关联。
    rXY=∑i=1n(Xi−Xˉ)(Yi−Yˉ)∑i=1n(Xi−Xˉ)2⋅∑i=1n(Yi−Yˉ)2\displaystyle r_{XY} = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2} \cdot \sqrt{\sum_{i=1}^{n}(Y_i - \bar{Y})^2}}

潜在结果框架

要严谨地证明“冰淇淋导致溺水”,阿伟脑海中浮现一个思想实验:让同一个孩子分裂成两个平行世界的分身——一个世界的他吃了冰淇淋,另一个世界的他没吃。比较这两个世界的溺水概率,就能得到“冰淇淋对这个人”的因果效应。可惜,现实世界只允许我们看到其中一个分身,另一个永远活在假设里。

经济学家鲁宾把这种思想实验数学化,提出了潜在结果框架。对每个个体 i,我们定义两个潜在结果:\(Y_i(1)\) 表示“吃冰淇淋”状态下的结果,\(Y_i(0)\) 表示“不吃冰淇淋”状态下的结果。因果效应就是这两个潜在结果的差异。群体层面的平均因果效应(ACE)公式如下:

潜在结果框架揭示了一个残酷现实:每个个体只有一个世界可观测,\(Y(1)\) 与 \(Y(0)\) 至少有一个永远缺失。这就是因果推断的基本问题。但阿伟没有沮丧——框架给出了“理想中的因果定义”,下一步要找到在现实中逼近它的方法。

ACE=E[Y(1)]−E[Y(0)]\displaystyle \text{ACE} = \mathbb{E}[Y(1)] - \mathbb{E}[Y(0)]
这个公式在说:把全世界所有人“都吃冰淇淋”的平均结果,减去“都不吃冰淇淋”的平均结果,差距就是冰淇淋的平均因果效应——这是定义因果的金标准。
  1. 潜在结果同一群体在“吃”与“不吃”两种干预下的假想结果,分别记为 Y(1) 和 Y(0)。
    Y(1),Y(0)Y(1), \quad Y(0)
  2. 期望运算\(\mathbb{E}[\cdot]\) 表示对所有个体的结果取平均,抵消个体差异。
    E[Y(1)],E[Y(0)]\mathbb{E}[Y(1)], \quad \mathbb{E}[Y(0)]
  3. 双世界期望之差两个世界平均结果的差值,消除个体噪声后,只剩干预带来的平均影响。
    ACE=E[Y(1)]−E[Y(0)]\text{ACE} = \mathbb{E}[Y(1)] - \mathbb{E}[Y(0)]

随机化实验

镇长听说了阿伟的困惑,决定做一个大胆的实验:明天起,游客抵达浴场时随机抽签,抽到红签的人必须吃一支冰淇淋才能下水,抽到蓝签的人今天禁止购买冰淇淋。一周后比较两组的溺水率。阿伟问:“这样就能说明因果吗?”统计学家回答:“随机化让两组除了冰淇淋之外,其他一切都'平均相等'。”

随机分组的力量在于:它让处理分配 X(是否吃冰淇淋)与所有潜在结果独立。两组人群在身高、体重、游泳水平、甚至“那天是否想下水”的分布上都基本一致。因此,两组的溺水率差异只能归因于冰淇淋——这正是潜在结果框架中理想条件的实现。数学上记为:

一周后结果揭晓:红签组和蓝签组的溺水率几乎相同。冰淇淋无罪!这种设计在互联网行业被广泛使用,叫做 A/B 测试:随机把用户分到新策略组和旧策略组,比较两组指标,就能判断新策略的因果效果。阿伟感慨:“原来因果不能说'看出',要说'试出'。”

(Y(1),Y(0))⊥ ⁣ ⁣ ⁣⊥X\displaystyle (Y(1), Y(0)) \perp\!\!\!\perp X
这个公式是随机化实验的基石:处理分配与潜在结果独立,意味着吃不吃冰淇淋完全不受个人特征影响,组间差异就是因果效应。
  1. 独立性标记\(\perp\!\!\!\perp\) 表示“统计独立”,即一个变量的信息不会提供另一个变量的任何线索。
    ⊥ ⁣ ⁣ ⁣⊥\perp\!\!\!\perp
  2. 潜在结果向量每个个体的两个潜在结果放在一起,构成一个整体。
    (Y(1),Y(0))(Y(1), Y(0))
  3. 随机分配保障X 表示是否吃冰淇淋,随机抽签使 X 与潜在结果独立,两组可比。
    (Y(1),Y(0))⊥ ⁣ ⁣ ⁣⊥X(Y(1), Y(0)) \perp\!\!\!\perp X

混杂因素

但现实中,我们不可能对所有问题都做随机实验——既不能随机强迫人们吃几十年冰淇淋,也不能随机安排用户使用某个 App。大多数时候,我们只有一堆观察数据。阿伟又困惑了:为什么观察数据会骗人?统计学家画了一张图:三个圆圈“温度”“销量”“溺水”,温度用两条箭头分别指向销量和溺水。

这张图就是结构因果图(DAG),它用箭头表示变量间的因果方向。温度指向销量与溺水,而销量与溺水之间没有箭头——任何观测到的关联都是“背锅”。这个躲在背后的共同原因,就是混杂因素。因为它的存在,简单比较“吃冰淇淋组”和“不吃组”的溺水率,会混入温度的影响,产生混淆偏差:

找到混杂因素后,一个自然的想法是分层控制:把数据按温度分成“高温日”和“低温日”,在每一层内比较,因为层内的温度相同,冰淇淋与溺水的“幕后导演”就被隔离了。阿伟的散点图动画正是这样做的——组内相关性消失,虚假相关现出原形。

Bias=P(Y∣X=1)−P(Y∣do(X=1))\displaystyle \text{Bias} = P(Y \mid X=1) - P(Y \mid \text{do}(X=1))
这个公式说明:观察到的两组差异(条件概率)与干预状态下的真实差异(do 概率)之间的差值,正是混杂因素制造的偏差。
  1. 观察层概率在数据中,吃冰淇淋那一组的结果分布——里面既包含冰淇淋的作用,也包含温度的影响。
    P(Y∣X=1)P(Y \mid X=1)
  2. 干预层概率强制所有人都吃冰淇淋之后,整个群体的结果分布——这是真正的因果。
    P(Y∣do(X=1))P(Y \mid \text{do}(X=1))
  3. 偏差度量两者相减,偏离的幅度就是混杂造成的假象。
    Bias=P(Y∣X=1)−P(Y∣do(X=1))\text{Bias} = P(Y \mid X=1) - P(Y \mid \text{do}(X=1))

do演算

阿伟追问:“有没有办法只用观察数据,不靠分层,也能算出 do(X) 的效果?”统计学家点点头:“这就是 do 演算的用武之地。它把'看到'和'做到'严格区分——观察是'我看见你吃了冰淇淋',干预是'我强制你吃冰淇淋'。”

在数学上,\(P(Y \mid X=x)\) 表示“当看到 X=x 时 Y 的分布”,而 \(P(Y \mid \text{do}(X=x))\) 表示“当我强制执行 X=x 时 Y 的分布”。do 算子像一个剪刀,剪断所有指向 X 的混杂箭头。若存在一组可观测的混杂变量 Z(如温度)阻断了所有后门路径,则可用后门调整公式从观察数据中恢复因果效应:

do 演算是 Pearl 因果推断的核心工具。它告诉我们:只要你能识别出所有混杂因素并测量它们,观察数据也能“算”出因果。阿伟用它重新分析浴场记录,得到冰淇淋对溺水的效应约等于零——与随机实验结论一致。观察与干预之间,差的不是数据量,而是那把剪断混淆的剪刀。

P(Y=y∣do(X=x))=∑zP(Y=y∣X=x,Z=z) P(Z=z)\displaystyle P(Y=y \mid \text{do}(X=x)) = \sum_{z} P(Y=y \mid X=x, Z=z) \, P(Z=z)
这个公式的含义是:在每个温度层内观察冰淇淋与溺水的关系,再按各温度层的人数比例加权平均,就等效于做了一次“强制所有人吃冰淇淋”的干预实验。
  1. do 算子操作强制将 X 设为 x,切断其他变量对 X 的影响。
    P(Y=y∣do(X=x))P(Y=y \mid \text{do}(X=x))
  2. 层内条件分布在给定温度 Z=z 的层里,X 与 Y 的关系不再受温度干扰。
    P(Y=y∣X=x,Z=z)P(Y=y \mid X=x, Z=z)
  3. 按 Z 加权求和乘上 Z 的边际概率并求和,把各层结果合并为整体因果效应。
    ∑zP(Y=y∣X=x,Z=z) P(Z=z)\sum_{z} P(Y=y \mid X=x, Z=z) \, P(Z=z)

工具变量

然而,现实往往更苛刻:有些混杂因素根本测不到,甚至想不到。阿伟皱眉:“温度还能记录,如果有一个'神秘因素'隐藏在暗处,后门调整不就失效了吗?”统计学家笑了:“这时需要工具变量——一个被大自然随机化了的'助推器'。”

回到浴场:镇上每周二随机给部分游客发一张“冰淇淋半价券”,发放与否完全不受游客特征影响。半价券 Z 只会通过“让你更愿意买冰淇淋”这条路径影响销量 X,而不会直接改变你的游泳水平或溺水风险。更重要的是,Z 的发放与任何混杂因素无关。由此可得工具变量的估计公式:

工具变量需要在实践中反复验证:相关性(Z 必须影响 X)、排他性(Z 只能通过 X 影响 Y)、无混杂性(Z 与隐藏因素独立)。满足这三条,即使混杂因素不可观测,也能“借力打力”。在计量经济学和因果推断中,它常通过自然实验或政策冲击来实现。

βIV=Cov(Z,Y)Cov(Z,X)\displaystyle \beta_{IV} = \frac{\text{Cov}(Z, Y)}{\text{Cov}(Z, X)}
这个比率的思想是:先看半价券对冰淇淋销量的推动力有多大(分母),再看半价券对溺水率的整体影响(分子),两者相除,就消掉了混杂因素,还原出销量对溺水的真实因果效应。
  1. 协方差定义协方差衡量两个变量是否同步偏离各自的均值,正值代表同向变化。
    Cov(Z,Y),Cov(Z,X)\text{Cov}(Z, Y), \quad \text{Cov}(Z, X)
  2. 分子含义半价券对溺水率的总影响——因为半价券与混杂因素无关,这个影响只能通过冰淇淋销量传导。
    Cov(Z,Y)\text{Cov}(Z, Y)
  3. 分母含义半价券“推动”冰淇淋销量增加的强度,相当于第一阶段回归的斜率。
    Cov(Z,X)\text{Cov}(Z, X)
  4. 比值还原效应用“Z 对 Y 的影响”除以“Z 对 X 的推动”,单位推动对应的结果变化即真实因果效应。
    βIV=Cov(Z,Y)Cov(Z,X)\beta_{IV} = \frac{\text{Cov}(Z, Y)}{\text{Cov}(Z, X)}

反事实推断

故事尾声,阿伟面对一个沉痛的问题:若那个溺水的孩子当时没有吃冰淇淋,他是否还会溺水?这个问题无法通过重复实验回答——同一个时间线上,我们只拥有一个现实。统计学家告诉阿伟:这正是因果的本质,任何因果判断都必须依赖反事实——“如果当时选择了另一条路,结果会怎样”。

在潜在结果框架中,个体 i 的因果效应定义为 \(Y_i(1) - Y_i(0)\),但这两个结果永远不可能同时被观测。我们能做的是:在随机分组、可忽略性等假设下,用观察到的数据估计群体的平均因果效应。公式如下:

由于反事实无法直接观测,所有因果推断都必须依赖可检验的假设。敏感性分析就是回答:“如果违反了这些假设,结论会翻盘吗?”——比如引入一个虚拟的隐藏混杂变量,看结论的稳健程度。阿伟最终明白:因果推断不是给过去开药方,而是用严谨的假设和方法,在残缺的证据中刻画一个可信的平行世界。这,正是“科学地追问因果”的意义。

ATE=1n∑i=1n(Yi(1)−Yi(0))\displaystyle \text{ATE} = \frac{1}{n} \sum_{i=1}^{n} \left( Y_i(1) - Y_i(0) \right)
这个公式列出了“理想的平均因果效应”:如果每个个体都能在两个平行世界中各活一次,把每个个体的差异求和取平均,就是全体人群的平均处理效应。
  1. 个体反事实差第 i 个孩子在“吃冰淇淋世界”与“不吃冰淇淋世界”的结果差异。
    Yi(1)−Yi(0)Y_i(1) - Y_i(0)
  2. 平均处理效应把所有个体的反事实差求和再除以人数,得到群体的平均因果效应。
    1n∑i=1n(Yi(1)−Yi(0))\frac{1}{n} \sum_{i=1}^{n} \left( Y_i(1) - Y_i(0) \right)

AI 应用场景

推荐系统的增量效果评估

阶段:策略评估与 A/B 测试

解决的问题:短视频平台推荐算法团队常被问“新模型提升了多少播放时长”。直接比较用新模型的用户和不用新模型的用户,会发现活跃用户本来就更爱刷视频——这是混杂因素。传统做法只看历史相关性,容易高估模型效果;用随机化实验把用户随机分到新旧两版算法,两组唯一差异是算法版本,播放时长之差就是模型的真实增量因果效应。

具体案例:某短视频平台为验证“新增的收藏按钮是否提升次日留存”,将 100 万用户随机分为两组,实验组展示收藏按钮,对照组不展示。一周后实验组留存率提升 0.3%,置信区间不含 0,团队据此决定全量上线。

广告投放的增量价值度量

阶段:因果效应估计(工具变量)

解决的问题:电商平台想知道“展示品牌广告是否带来额外购买”。观察数据中,常看广告的用户本身购物意愿强(混杂因素:购物意愿),导致广告效果严重高估。而平台无法对真实用户强制不看广告。此时可利用“广告系统的随机竞价波动”作为工具变量:广告展示本身有随机噪声,这个噪声只影响曝光、不直接影响购买,恰好满足工具变量条件。

具体案例:某电商平台利用广告系统“竞拍价格抖动”作为曝光工具变量,对该品牌广告做 2SLS 分析,发现名义 ROI(广告带来的销售额/广告费)为 4.2,但增量 ROI 仅为 1.8——修正后的数据直接改变了客户的预算分配决策。

智能风控策略的政策评估

阶段:策略上线后的因果归因(do 演算)

解决的问题:银行风控团队引入新的授信模型后,需要知道“模型拦截的客户中,有多少是真正会逾期的”。直接比较被拒客户与通过客户的逾期率,会混入二者本身的信用差异。利用 do 演算的后门调整,将历史征信变量作为混杂因素分层加权,可算出模型带来的真实逾期率降低幅度,为合规审计提供因果证据。

具体案例:某消费金融公司在监管审计中,用 do 演算量化“新模型上线后逾期率下降 1.2 个百分点中,模型自身贡献了 0.7 个百分点,其余来自市场环境变化”,顺利通过监管解释。

Python 演示

python31 行
import numpy as np np.random.seed(42)n = 3000 # 混杂变量 U:天气炎热程度(不可观测的隐藏因素)u = np.random.uniform(0, 1, n) # 工具变量 Z:是否随机收到冰淇淋半价券(只通过吃冰淇淋影响溺水)z = np.random.binomial(1, 0.5, n) # 处理 X:吃冰淇淋数量(同时受 U 和 Z 影响,U 是混杂)x = 1.5 + 2.0 * z + 2.0 * u + np.random.normal(0, 0.5, n) # 结果 Y:溺水风险(只受 U 影响,X 的真实因果效应为 0)y = 0.3 + 1.5 * u + np.random.normal(0, 0.3, n) # 天真回归:直接用 X 预测 Y,受混杂因素污染beta_naive = np.cov(x, y)[0, 1] / np.var(x) # 两阶段最小二乘(2SLS)# 第一阶段:Z 对 X 回归,提取 X 中由 Z 驱动的干净变异beta_fs = np.cov(z, x)[0, 1] / np.var(z)x_hat = np.mean(x) + beta_fs * (z - np.mean(z)) # 第二阶段:用 X_hat 对 Y 回归,得到无偏的因果效应估计beta_iv = np.cov(x_hat, y)[0, 1] / np.var(x_hat) print(f"天真回归估计的效应: {beta_naive:.3f}")print(f"工具变量估计的效应: {beta_iv:.3f}")print(f"真实因果效应: 0.000")
目的:模拟“冰淇淋销量与溺水”混杂场景,对比天真回归与工具变量 2SLS 的估计结果,直观展示工具变量如何剥离混杂因素。
  1. u = np.random.uniform(0, 1, n)生成隐藏混杂变量“天气炎热程度”,它同时影响 X 和 Y。
  2. z = np.random.binomial(1, 0.5, n)随机发放半价券,这是天然的“随机实验”工具。
  3. x = 1.5 + 2.0 * z + 2.0 * u + ...吃冰淇淋数量被工具变量和混杂变量共同驱动。
  4. y = 0.3 + 1.5 * u + ...溺水风险只受混杂变量影响,X 的真实因果系数为 0。
  5. beta_naive = np.cov(x, y)[0, 1] / np.var(x)天真回归直接用协方差与方差之比,忽略混杂。
  6. beta_fs = np.cov(z, x)[0, 1] / np.var(z)2SLS 第一阶段:半价券对冰淇淋销量的推动力。
  7. x_hat = np.mean(x) + beta_fs * (z - np.mean(z))用第一阶段拟合值替代原始 X,过滤掉混杂污染部分。
  8. beta_iv = np.cov(x_hat, y)[0, 1] / np.var(x_hat)第二阶段回归,得到接近 0 的真实因果效应。

常见误区

误区“冰淇淋销量和溺水人数相关系数 0.85,肯定是因为吃冰淇淋导致溺水!数据都摆在这儿了,还能有假?”

正解相关系数只说明两个变量在线性尺度上“同步运动”,并不能确定运动的方向,更不能排除第三者。就像冰淇淋与溺水,真正的推手是天气温度。判断因果需要满足更严格的条件:排除混杂、确定时序、有机制解释,最好有随机化实验或准实验设计。

为何常见:人的大脑天生擅长发现模式并自动编造因果故事,这是进化带来的“叙事本能”。看到强相关时,直觉会先于理性给出结论。

误区“我在回归里加了年龄、性别、收入、天气等十几个变量,控制了所有能想到的因素,那 X 的系数就是因果效应了吧?”

正解控制变量并不等于消除混杂。首先,你只能控制“可观测到”的变量,未观测混杂依然存在;其次,如果控制了不该控制的变量(如中介变量、对撞变量),反而会打开新的偏差路径。正确的做法是先用结构因果图明确混杂结构与后门路径,再决定控制哪些变量。

为何常见:“控制得越多越干净”符合直觉,让人误以为回归是一个自动净化的黑箱,而忽略了不可观测变量和结构风险。

误区“新推荐算法 A/B 测试 P 值 = 0.001,远小于 0.05,说明这个算法效果特别棒,可以全量上线!”

正解统计显著只说明“观察到差异的概率不是偶然”,并不说明差异有多大。样本量越大,极小的效应也能显著。A/B 测试保证了内部效度,但实际收益还要看效应量(如提升 0.01% 的点击率)和外部效度(测试人群是否代表全局用户)。

为何常见:许多入门者把 P 值当作“效果强度的度量”,其实 P 值依赖样本量,是“证据强度”而非“效果大小”。

误区“我找到一个和新算法使用率高度相关的变量,拿它当工具变量估计因果效应,应该没问题吧?”

正解工具变量必须同时满足三个条件:与处理 X 强相关(相关性)、对结果 Y 无间接路径外的直接影响(排他性)、与所有混杂因素独立(无混杂性)。只满足第一条,工具变量的估计依然是有偏的。半价券能当工具变量,关键不是它影响销量,而是它不直接改变游泳行为。

为何常见:初学者容易把“两变量相关”当成“合格工具”的充分条件,忽略了排他性和无混杂这两个更难验证的条件。

误区“Y(0) 和 Y(1) 永远只能看到一个,反事实是纯哲学想象,我们怎么可能科学地研究不存在的东西?”

正解反事实确实无法逐个观测,但在合理的假设下(随机化、可忽略性、工具变量条件),群体的平均反事实差可以被严谨识别。这正是现代因果推断的出发点:不追求每个个体的完美反事实,而是借助设计或假设,估计出平均因果效应并给出不确定性范围。

为何常见:把“个体层面的不可观测”误解为“群体层面的不可估计”,忽略了统计方法利用随机性和大数定律逼近真相的能力。

面试题

Q1. 关于皮尔逊相关系数 r,下列说法正确的是?

单选题 · easy

  • A.r 的绝对值越接近 1,线性关系越强← 正确答案
  • B.r=0 意味着两个变量必然没有因果关系
  • C.r 的数值大小不受样本量多少的影响
  • D.r 为正说明前一个变量导致后一个变量

答案:A。r 的绝对值衡量线性相关的强与弱,越接近 1 线性关系越强。r=0 只说明没有线性相关,非线性因果依然可能存在;r 的稳定性受样本量影响;正相关也不代表方向性的因果。就像冰淇淋与溺水 r=0.85,却毫无因果关系。

Q2. 冰淇淋销量与溺水人数高度正相关,最合理的解释是?

单选题 · mid

  • A.冰淇淋热量高导致体力不支溺水
  • B.溺水者减少导致冰淇淋需求下降
  • C.天气炎热同时推高销量与溺水← 正确答案
  • D.小镇人口增多造成两种现象同升

答案:C。经典的虚假相关范例:天气炎热是一个混杂因素,既提升冰淇淋需求,也增加人们下水游泳的概率,从而抬升溺水人数。A 是虚构的因果机制,B 方向反了,D 尽管可能但不如 C 直击要害且缺乏语境支持。

Q3. 在潜在结果框架中,下列哪些说法是正确的?

多选题 · mid

  • A.Y(1) 表示个体接受处理时的潜在结果← 正确答案
  • B.Y(0) 表示个体处于控制状态的潜在结果← 正确答案
  • C.个体因果效应 Y(1)-Y(0) 可以直接被观测
  • D.ACE 等于 Y(1) 期望减去 Y(0) 的期望← 正确答案

答案:ABD。Y(1) 和 Y(0) 分别对应处理与控制状态的潜在结果。但每个个体只能观测到其中一个世界,因此个体因果效应 Y(1)-Y(0) 永远无法直接观测,C 错误。ACE = E[Y(1)]-E[Y(0)] 是群体平均因果效应的定义。

Q4. 随机化实验最核心的优势在于?

单选题 · mid

  • A.样本量自动增大且无需抽样设计
  • B.使处理分配与潜在结果相互独立← 正确答案
  • C.消除所有测量误差和数据噪音
  • D.保证实验结果一定统计显著

答案:B。随机化通过抽签式分配,使处理 X 不受任何个体特征影响,从而让 (Y(1),Y(0)) 与 X 独立,组间差异可归因于处理。它不改变样本量、不消除测量误差、更不保证显著,B 是唯一正确的理解。

Q5. 关于混杂因素 Z,下列说法正确的是?

多选题 · hard

  • A.Z 同时影响处理 X 和结果 Y 两个变量← 正确答案
  • B.Z 不位于 X 到 Y 的因果路径之上← 正确答案
  • C.控制 Z 后可能减少混淆造成的偏差← 正确答案
  • D.Z 一定是可观测且可度量的变量

答案:ABC。混杂因素的定义是“既是 X 的原因又是 Y 的原因”,且不在 X→Y 的因果路径上,因此 A、B 正确。通过分层或回归控制 Z 可以阻断后门路径、减少偏差,C 正确。但 Z 可以是不可观测的,这正是工具变量方法的用武之地,D 错误。

Q6. do(X=x) 在因果推断中的含义是?

单选题 · easy

  • A.表示在数据中条件于 X 等于 x 取值
  • B.表示强制干预令 X 统一处于 x 状态← 正确答案
  • C.表示 X 与 Y 之间存在统计相关关系
  • D.表示用 X 的当前值预测未来变化

答案:B。do 算子表示主动干预:人为把 X 一律设为 x,切断其他变量对 X 的影响。它与“观察到 X=x”(条件)有本质区别——观察中包含混杂因素影响,干预中则没有。这正是 P(Y|do(X)) 与 P(Y|X) 不同的原因。

Q7. 工具变量 Z 有效的必要条件不包括下列哪项?

单选题 · hard

  • A.Z 必须与处理 X 存在强相关关系
  • B.Z 还通过直接路径严重影响结果 Y← 正确答案
  • C.Z 与所有隐藏混杂因素皆相互独立
  • D.Z 的分配近似于完全随机的外生状态

答案:B。工具变量三条件为:相关性(Z 影响 X)、排他性(Z 不直接影响 Y)、无混杂性(Z 与混杂因素独立)。B 恰恰违反了排他性要求——Z 若直接作用于 Y,则 Cov(Z,Y) 包含非因果路径,IV 估计失效。A、C、D 都是必要条件。

Q8. 反事实推断的核心思想是?

单选题 · easy

  • A.通过改变历史事件来改变当前结果
  • B.比较同一世界的观测与模型预测
  • C.比较同一对象现实与假设的结果差异← 正确答案
  • D.用海量数据预测未来的结果走向

答案:C。反事实回答“如果没有接受处理会怎样”——比较同一人在现实世界与假设世界的差异。其本质是因果推断的基本问题:潜在结果无法同时观测,需要通过设计或假设来估计。A 是时间旅行而非推断,B、D 属于预测范畴。

Q9. 关于“相关不等于因果”的完整理解,哪些选项正确?

多选题 · extreme

  • A.相关关系可以完全是虚假的产物← 正确答案
  • B.相关可以由共同混杂原因产生← 正确答案
  • C.因果关系必然导致某种相关表现← 正确答案
  • D.随机实验中的相关可直接解释为因果

答案:ABC。虚假相关(A)与混杂驱动的相关(B)都是观察数据中的常见陷阱。若 X 真导致 Y,二者通常会在数据中呈现某种关联,故 C 正确。但随机实验中相关可以直接解释为因果,是因为随机化已排除混杂,D 的表述过于绝对——随机实验之外的“相关”仍需谨慎解读。

Q10. 后门调整公式的核心目的是?

单选题 · mid

  • A.消除 X 对 Y 的直接因果影响效应
  • B.控制混杂因素后估计 do(X) 的真实效应← 正确答案
  • C.增大样本容量以提升统计估计显著性
  • D.使所有变量的分布转为正态分布形态

答案:B。后门调整公式通过对混杂变量 Z 分层加权:先在各 Z 层内计算 X 与 Y 的条件关系,再按 Z 的分布加权平均。它模拟了干预效果,从而用观察数据逼近 do(X) 的因果效应。A 说的是调停中介,C、D 与公式目的无关。