小王在市中心经营一家街角咖啡店,每天打烊后,他对着销量曲线陷入沉思:为什么忽高忽低?他的记账本上列着两类信息。一类让他无能为力——明天是否下雨、何时突然降温、门口何时修路;另一类完全由他决定——要不要打折、上不上新品、招牌摆在哪里。前者像“天意”,从店外掉进来;后者是“手笔”,由店里的决策产生。这家咖啡店的故事,正是因果推断中一个核心问题的缩影:怎样区分外生变量与内生变量?如果把咖啡店看成一个系统,画一张由箭头组成的因果地图,就会发现——没有箭头指进来的节点是外生的“天意”,被箭头接连击中的节点是内生的“手笔”。分清它们,你才能回答一个关键问题:我做的一切,到底改变了什么?

岗位关联

学习这一节,你将学会在因果图中快速定位每个变量的角色。这是算法工程师、数据科学家做因果推断、AI可解释分析和反事实推理的第一块基石,直接决定你能否从观测数据中挖出真正可信的“因果”。

目录
  1. 可视化演示
  2. 基本定义——分清两类变量
  3. 结构因果模型——三件套搭建系统
  4. 外生变量特性——不受管制的输入
  5. 内生变量特性——系统内生的果
  6. 混杂与伪相关——被外生变量欺骗
  7. 因果识别方法——后门准则与工具变量
  8. 工程实践应用——从因果图到代码
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示结构因果模型SCM中外生变量与内生变量的划分,外生变量由模型外部决定无父节点,内生变量由结构函数与父节点决定,直观理解因果图的变量类型。

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

外生与内生变量 外生变量:模型外部决定,无父节点,代表噪声与未建模因素 内生变量:由结构函数fi(Pai,Ui)决定,父节点与噪声共同确定取值 独立假设:外生变量相互统计独立,P(U)=∏P(Ui) Xi = fi(Pa_i, U_i), U_i ⊥ U_j SCM通过外生内生划分构建因果图

基本定义——分清两类变量

小王把影响销量的因素分成两栏:左边写“天气、季节、市政修路”,右边写“促销、新品、客单价”。每当他试图解释销量,左边的变量像天气预报一样凭空出现,右边的变量则来自店里的决策链条。他感慨,左边是写进剧本的“天意”,右边是自己书写的“手笔”。

在因果推断里,这两种角色有准确的名字。外生变量(exogenous variable)指成因在系统之外、不由模型解释的变量;内生变量(endogenous variable)指由系统内部其他变量生成、能够被模型解释的变量。名字听着高深,判断方法却非常直观:看这个节点有没有“入边”。

把系统画成有向无环图(DAG),每个变量是一个节点,每条箭头代表直接因果。如果一个节点没有任何箭头指向它——没有父节点——它一定是外生变量;一旦有至少一条箭头指向它,它就是内生变量。箭头指向,意味着它的取值有一部分由系统内部决定。判断时不用关心变量在回归方程左边还是右边,只看它在因果图中的位置。

小王找来一张纸,把所有变量画成带箭头的因果图。他先圈出没有任何箭头指入的“季节”和“天气”——它们从系统外空降而来;再圈出被箭头命中的“促销”和“销量”。这趟“圈点”让他第一次拥有了清晰的因果地图,也让他意识到:之前把促销当“完全由自己控制”的变量,实在太小看系统的复杂性了。

结构因果模型——三件套搭建系统

想让预测更可靠,只画箭头还不够。小王还需要知道:这些箭头背后究竟藏着什么规律。就像一份菜谱写明了“步骤”和“用量”,因果结构也要明确“谁被谁生成”。结构因果模型(Structural Causal Model, SCM)就是这套“系统菜谱”。

SCM 用三元组 \( M=(U,V,F) \) 描述一个系统。\( U \) 是所有外生变量的集合,\( V \) 是所有内生变量的集合,\( F \) 是结构方程的集合——每个方程描述一个内生变量如何由它的父节点和外生扰动生成。给定外生变量的分布 \( P(U) \) 和结构方程 \( F \),系统会像多米诺骨牌一样依次生成所有内生变量的取值。

小王把咖啡店的规律写成方程:“销量 = 促销系数 × 促销 + 季节系数 × 季节 + 随机扰动”。这一下,他把“天意”的输入和“手笔”的输出组织成了一条清晰的因果流水线,也明白了模型并不是“一堆数据的拟合”,而是一份关于世界如何运转的假设。

M=(U,V,F),Vi=fi(PAi,Ui),i=1,…,n\displaystyle M=(U,V,F),\qquad V_i = f_i(\mathrm{PA}_i, U_i),\quad i=1,\dots,n
这个公式把“画因果地图”升级成“写生成规则”:只要外部输入和外生扰动给定,系统内部每个变量就能被一步步算出来。
  1. 三件套模型由外生集合、内生集合、函数集合三部分构成,缺一不可
    M=(U,V,F)\displaystyle M=(U,V,F)
  2. 内生生成每个内生变量 \( V_i \) 都由一个结构方程生成,不是凭空出现的
    Vi\displaystyle V_i
  3. 父节点集合\( \mathrm{PA}_i \) 是直接决定 \( V_i \) 的原因集合,对应图中的入边来源
    PAi\displaystyle \mathrm{PA}_i
  4. 外生扰动\( U_i \) 是独立作用于 \( V_i \) 的外部噪声源,比如突然降临的暴雨
    Ui\displaystyle U_i

外生变量特性——不受管制的输入

想象你把一颗石子投进池塘,涟漪会一圈圈散开,但涟漪不会反过来改变你投石的手。外生变量就好比“投石的手”——它影响系统,却不受系统影响。在因果图中,外生变量是没有入边的节点,是因果链条的起点。

外生变量有两个重要特性:第一,它在模型中不可解释,系统不会生成它;第二,它的分布是模型的输入,不是模型的输出。哪怕你观测到的是“雨天”,模型也无需解释为什么下雨。这一点看似简单,却在因果推断中极其关键——因为不受系统内部反向因果影响的变量,才能充当识别因果效应的“锚点”。

特别提醒:外生变量不一定是可观测的。\( U \) 常用来代表不可观测的噪声与潜变量,而“天气”是可观测外生变量的例子。小王在图上标出“季节”和“天气”后,意识到它们像两盏永不熄灭的探照灯:从外部照进店里,把每个角落都照亮,而店里无论怎么摆弄,都无法照向它们。

U∼P(U),PA(U)=∅\displaystyle U\sim P(U),\qquad \mathrm{PA}(U)=\varnothing
外生变量的数学签名:它从某个外部分布中抽取出来,而且没有一个父亲节点。这两条合起来,就是“系统入口”的身份证。
  1. 外部分布\( U \) 按系统外部的某个概率分布随机出现,系统不解释它为什么变
    U∼P(U)\displaystyle U\sim P(U)
  2. 无父节点\( \mathrm{PA}(U)=\varnothing \) 表示没有箭头指向 \( U \),它没有任何父节点
    PA(U)=∅\displaystyle \mathrm{PA}(U)=\varnothing
  3. 入口签名外生性意味着“来自外部、不被系统管制”,这正是工具变量的根基
    PA(U)=∅  ⟺  U 外生\displaystyle \mathrm{PA}(U)=\varnothing \iff U \text{ 外生}

内生变量特性——系统内生的果

与探照灯相对的,是店里那台咖啡机的出液管——只要按下按钮,咖啡就从机器内部流出来;但出液管从不决定按钮按不按。内生变量就是这台咖啡机的出液管:它由系统内部因果生成,是“被解释”的那一方。

内生变量的定义是:至少有一个父节点,取值由结构方程生成。值得注意的是,内生变量绝不只是“最终结果 \( Y \)”。中间变量、处理变量 \( X \) 也往往是内生的。只要一个变量在系统内被其他变量影响,它就是内生变量。这一点常被初学者忽略,却恰恰是因果推断最难也最有趣的地方。

小王突然明白,自己常以为“销量才是内生变量”其实只说对了一半——促销、陈列、定价全都在系统之内互相牵动。理解了这点,他才明白为什么不能把促销当“免费的解释变量”:它本身也被季节推着走。内生变量不是一种身份,而是一种处境。

Y=βX+γZ+ε\displaystyle Y=\beta X+\gamma Z+\varepsilon
这是小王的咖啡销量方程:一杯咖啡的销量,由促销力度、天气以及随机波动共同决定。其中天气是外生变量,促销与销量都是内生变量。
  1. 结果变量\( Y \) 是销量,代表我们最想解释的系统输出
    Y\displaystyle Y
  2. 处理变量\( X \) 是促销力度,它虽然由小王决策,但本身也受季节影响,因此是内生的
    X\displaystyle X
  3. 外生输入\( Z \) 是天气,作为外生变量从方程外部进入,只影响别人,不受别人影响
    Z\displaystyle Z
  4. 效应系数\( \beta \) 与 \( \gamma \) 分别表示促销和天气对销量的路径强度
    β, γ\displaystyle \beta,\ \gamma
  5. 外生噪声\( \varepsilon \) 表示不可观测的随机扰动,是外生变量中的“隐形人”
    ε\displaystyle \varepsilon

混杂与伪相关——被外生变量欺骗

小王把一年的数据拉出来,发现“促销力度越大,当月销量反而越低”。他吓得差点撤掉所有活动。直到他把季节拆开看才发现:夏天人们本来就不爱喝热咖啡,而他又偏偏在夏天疯狂促销。两件事恰好撞在一起,让他误以为促销有害。

这正是典型的混淆现象。季节 \( Z \) 同时影响促销 \( X \) 和销量 \( Y \),构成了一条从 \( X \) 到 \( Y \) 的后门路径 \( X \leftarrow Z \rightarrow Y \)。即使 \( X \) 对 \( Y \) 没有任何因果作用,只要 \( Z \) 存在,观测数据里也会出现 \( X \) 与 \( Y \) 的相关。这个被 \( Z \) “绑架”出来的相关,就是伪相关。

小王后来学会了“分层看数据”:先按季节分组,再比较促销效果。结果发现,在每个季节内部,促销其实稳稳地提升了销量。他笑着说:差点被外生变量联手带偏。原来数据不会说谎,但混淆会。

P(Y∣X=x)≠P(Y∣do(X=x))\displaystyle P(Y\mid X=x)\neq P(Y\mid \mathrm{do}(X=x))
左边是“看到”促销力度为 \( x \) 时的销量分布,右边是“手动把促销调成 \( x \)”时的销量分布。两者不相等,差值正是后门路径制造的幻觉。
  1. 观测关联\( P(Y\mid X=x) \) 仅“看到” \( X \) 为 \( x \) 时 \( Y \) 的条件分布,混入了 \( Z \) 的影响
    P(Y∣X=x)\displaystyle P(Y\mid X=x)
  2. 干预效应\( P(Y\mid \mathrm{do}(X=x)) \) 是“强制”把 \( X \) 设为 \( x \) 后 \( Y \) 的分布,切断了指向 \( X \) 的箭头
    P(Y∣do(X=x))\displaystyle P(Y\mid \mathrm{do}(X=x))
  3. 不等号含义两者之差来自 \( X \leftarrow Z \rightarrow Y \) 这条后门路径,它是伪相关的来源
    P(Y∣X=x)≠P(Y∣do(X=x))\displaystyle P(Y\mid X=x)\neq P(Y\mid \mathrm{do}(X=x))

因果识别方法——后门准则与工具变量

如果我们想知道“按下按钮,咖啡机到底出多少咖啡”,最直接的办法是随机按按钮、排除其他因素干扰。但现实中我们不一定总能做随机实验,这时就需要一条数学版的“分身法”:通过控制混淆变量,模拟出做实验的效果。后门准则(backdoor criterion)就是这种分身法。

后门准则告诉我们:如果存在一个变量集合 \( Z \),它阻断了 \( X \) 到 \( Y \) 的所有后门路径,并且 \( Z \) 不包含 \( X \) 的后代节点,那么可以用下面的调整公式估计因果效应:

除了后门调整,还有两条常用的识别策略。其一是工具变量法:找一个外生变量 \( Z \),它只通过 \( X \) 影响 \( Y \),用它充当“自然实验”的开关;其二是随机实验:直接切断所有指向 \( X \) 的箭头,让干预分布退化为普通条件分布。这两条路都深深依赖“外生性”这一假设——没有外生变量做支点,就很难撬动因果。小王没有真的给顾客做实验,但他用“按季节分组比较”的办法打开了后门,让真相走进来。

P(Y∣do(X=x))=∑zP(Y∣X=x,Z=z) P(Z=z)\displaystyle P(Y\mid \mathrm{do}(X=x))=\sum_z P(Y\mid X=x,Z=z)\,P(Z=z)
这个公式的意思是:在每个季节层内分别考察“促销对销量的影响”,再按各季节的占比做加权平均。相当于把全年数据切成了很多小实验。
  1. do 干预把处理变量 \( X \) 强行固定为 \( x \),同时切断所有指向 \( X \) 的箭头
    do(X=x)\displaystyle \mathrm{do}(X=x)
  2. 分层观察在 \( Z=z \) 这一层内,观察 \( Y \) 对 \( X \) 的条件分布
    P(Y∣X=x,Z=z)\displaystyle P(Y\mid X=x,Z=z)
  3. 加权汇总按 \( Z \) 的分布 \( P(Z=z) \) 对所有层求加权平均
    ∑zP(Z=z)⋅P(Y∣X=x,Z=z)\displaystyle \sum_z P(Z=z)\cdot P(Y\mid X=x,Z=z)
  4. 因果效应左边是干预后的分布,右边是分层加权的观察结果,两者相等时后门被打通
    P(Y∣do(X=x))\displaystyle P(Y\mid \mathrm{do}(X=x))

工程实践应用——从因果图到代码

图纸画得再漂亮,也得落到货架上。小王决定把因果地图变成日常分析流水线:画图、确定内外、找后门、做分层、复查。每一步都不难,但缺一不可。这也是算法工程师在真实项目中落地因果推断的标准动作。

工程上,第一步先和业务方一起把假设画成 DAG,标注哪些是外生、哪些是内生;第二步收集外生变量数据,比如天气、节假日、宏观指标;第三步用分层或回归估计因果效应;第四步做敏感性分析——如果遗漏了某个不可观测的混淆变量,结论会不会翻转?

这套流程后来成了小王每周的固定动作。他欣慰地说:分清天意与手笔,不是为了认命,而是为了在因果的灯塔里,做出真正有效的决策。对数据科学家而言,这就是从“描述现象”跨越到“指导行动”的关键一步。

E[Y∣X=x,Z=z]=α+βx+γz\displaystyle \mathbb{E}[Y\mid X=x,Z=z]=\alpha+\beta x+\gamma z
这是最朴素的“后门调整落地版”:在回归方程里加入混淆变量 \( Z \),让 \( \beta \) 从“伪相关系数”变成“因果效应估计值”。
  1. 条件期望给定促销力度 \( x \) 和季节 \( z \),预期销量是多少
    E[Y∣X=x,Z=z]\displaystyle \mathbb{E}[Y\mid X=x,Z=z]
  2. 线性拟合用截距 \( \alpha \) 和系数 \( \beta \)、\( \gamma \) 逼近这个条件期望
    α+βx+γz\displaystyle \alpha+\beta x+\gamma z
  3. 系数含义\( \beta \) 表示控制 \( Z \) 之后,\( X \) 每增加一单位带来的销量变化,即我们想要的因果效应
    β=β^X→Y\displaystyle \beta=\hat{\beta}_{X\to Y}

AI 应用场景

电商平台的营销增量评估

阶段:因果推断 / 数据可信层

解决的问题:运营团队想评估“发优惠券 \( X \) 对复购率 \( Y \) 的增量效果”,但大促季节 \( Z \) 同时影响发券决策和用户复购意愿,形成混淆。传统做法直接对比发券与未发券用户的复购差,把“季节红利”误算成优惠券的功劳,导致预算浪费。

具体案例:某电商平台用 DAG 梳理出“季节 \( Z \to \) 发券 \( X \to \) 复购 \( Y \)”的后门路径,采集季节、品类热度等外生变量,用分层回归做后门调整。结果发现优惠券的真实增量只有原先估计的六成,团队据此重新分配预算,ROI 提升约 20%。

医疗健康领域的药物效果回顾性分析

阶段:可解释 AI / 因果推断

解决的问题:医院积累了海量电子病历,想评估某药物对住院时长 \( Y \) 的效果,但病情严重程度 \( Z \) 同时影响“是否开药 \( X \)”和“住院时长 \( Y \)”。随机对照试验成本高、周期长,需要从观测数据中做因果调整。

具体案例:研究团队以年龄、基础疾病等外生变量构建 SCM,标定 \( Z \) 为混淆因素,使用后门准则调整后,得到的药物效应估计与后续小型 RCT 结果高度一致,为临床决策提供了可信证据。

经济学政策评估中的工具变量

阶段:因果识别 / 观测数据分析

解决的问题:评估“职业培训补贴 \( X \to \) 就业率 \( Y \)”时,学员是否参加培训往往是自我选择的,造成 \( X \) 内生。此时需要一个外生变量 \( Z \) 作为工具:它只通过影响参训行为而影响就业。

具体案例:某政策评估团队使用“学员居住地距培训中心距离”作为工具变量,因为距离是外部给定的、不受就业状态反向影响,又确实影响参训概率。两阶段回归后,他们识别出培训的真实就业提升效果,避免了自选择偏差。

Python 演示

python24 行
import numpy as np rng = np.random.default_rng(42)n = 4000 # 结构因果模型: Z(外生) -> X(内生), Z -> Y, X -> YZ = rng.normal(0, 1, n)                # 季节强度(外生变量)X = 0.8 * Z + rng.normal(0, 0.8, n)    # 促销力度(内生变量, 受季节影响)Y = 2.0 * X + 1.2 * Z + rng.normal(0, 1.0, n)  # 销量(内生变量, 真实效应=2.0) def ols(y, xs):    """最小二乘回归, 返回系数(第一个是截距)"""    A = np.column_stack([np.ones_like(y)] + xs)    beta, _, _, _ = np.linalg.lstsq(A, y, rcond=None)    return beta # 看错: 只拿促销解释销量(忽略季节)b1 = ols(Y, [X])[1]print(f"未控制混杂: 促销系数 = {b1:.3f}") # 看对: 用后门准则控制外生的季节变量b2 = ols(Y, [X, Z])[1]print(f"控制季节后: 促销系数 = {b2:.3f}")print("真实因果效应 = 2.000")
目的:用合成数据复现“混合 vs 后门调整”——先在不控制季节时得到有偏的促销效应,再控制外生变量 \( Z \) 后还原真实因果系数,直观演示混淆如何误导分析。
  1. Z = rng.normal(0, 1, n)生成外生的季节强度,完全由系统外分布决定,没有任何父节点
  2. X = 0.8 * Z + rng.normal(0, 0.8, n)促销力度受季节影响,因此它是有入边的内生变量
  3. Y = 2.0 * X + 1.2 * Z + rng.normal(0, 1.0, n)结构方程:销量由父节点促销和季节及外生噪声共同生成
  4. def ols(y, xs):封装最小二乘回归,返回包含截距的系数向量
  5. b1 = ols(Y, [X])[1]只看促销与销量,忽略季节这个共同父节点,得到有偏的“伪因果”
  6. b2 = ols(Y, [X, Z])[1]把外生变量季节放入回归,阻断后门路径,估计值接近真实的 2.0

常见误区

误区“我在回归里看到的 `ε` 不就是外生变量吗?只要把自变量放在方程右边,回归就是因果的。”

正解外生变量是一个更广的概念,包含所有“成因在系统外”的变量——既包括可观测的天气 \( Z \),也包括不可观测的随机扰动 \( U \)。误差项 \( \varepsilon \) 只是不可观测外生噪声的一种。更关键的是,回归方程中的 \( X \) 也常常是内生的(受 \( Z \) 影响),所以“放在方程右边就等于外生”是非常危险的直觉。判断外生性必须回到因果图:有没有父节点。

为何常见:初学者往往从线性回归的写法 \( Y=\beta X+\varepsilon \) 出发,把 \( \varepsilon \) 当作唯一的外生代表,却忽略了系统中更结构性的、可观测的外生变量。

误区“\( Y \) 是被解释变量,所以只有 \( Y \) 是内生的;\( X \) 在我方程右边解释 \( Y \),所以 \( X \) 一定是外生的。”

正解内生性的判断标准是“有没有父节点”,而不是“在方程左边还是右边”。促销力度 \( X \) 受季节 \( Z \) 影响,它就有入边,就是内生变量。因果推断的很多任务恰恰是为了应对“\( X \) 内生”这一核心困难,比如自选择偏差、反向因果。如果你把内生的 \( X \) 当成外生直接回归,估计出的系数既不是因果效应,也不一定是真实的关联。

为何常见:教科书线性回归常把 \( X \) 当成固定设计矩阵,这种简化让初学者误以为自变量天然外生,忽略变量间的因果结构。

误区“只要把所有能想到的变量都放进回归,得到的结果就会更接近因果效应。”

正解后门准则要求控制“能阻断所有后门路径的变量集合 \( Z \)”,但绝不意味着变量越多越好。控制 \( X \) 的后代节点(中介变量)会遮挡 \( X \) 对 \( Y \) 的真实因果作用;控制“对撞变量”甚至会打开新的偏差路径。这就好比在因果地图上乱放路障:有些路障挡住了伪相关,有些路障却把本来通畅的因果路径也堵死了。

为何常见:工程经验中“多控几个变量总没错”的说法很普遍,但在因果推断里,控制集合的选择必须由 DAG 结构决定,而不是凭数据相关性。

误区“销量数据和促销高度负相关,所以促销就是销量下降的原因。”

正解观测到的关联是因果路径与后门路径的混合产物。在咖啡店的例子里,季节把促销和销量“牵连”到一起,即使促销毫无作用,数据也能显示强相关。要得到因果结论,必须用后门准则、工具变量等识别策略拆解路径。记住一个原则:相关是对称的、混杂的;因果是有方向的、需要识别的。

为何常见:人类大脑天然擅长从数据中寻找相关模式,而“相关不等于因果”是需要刻意训练才能内化的思维习惯,尤其在数据量很大时更容易让人误判。

面试题

Q1. 因果图中,没有“入边”的节点对应下列哪类变量?

单选题 · easy

  • A.内生变量
  • B.外生变量← 正确答案
  • C.中介变量
  • D.结果变量

答案:B。没有入边意味着没有箭头指向该节点,它不是被系统内部生成的,成因在系统之外,这正是外生变量的定义。内生变量、中介变量和结果变量在多变量因果图中通常至少有一条入边。

Q2. 小王咖啡店案例中,以下哪项最适合视为外生变量?

单选题 · easy

  • A.当日天气状况← 正确答案
  • B.新品咖啡定价
  • C.门店促销力度
  • D.员工排班表

答案:A。天气由大气系统决定,不受咖啡店的经营决策影响,也没有父节点,是典型的外生变量。新品定价、促销力度和排班表都来自店内的决策链条,属于系统内部生成的变量。

Q3. 促销力度与当月销量同时受“季节”影响,“季节”在因果图中被称作?

单选题 · easy

  • A.工具变量
  • B.中介变量
  • C.混淆因素变量← 正确答案
  • D.对撞变量

答案:C。季节是促销 \( X \) 和销量 \( Y \) 的共同父节点,它打开了一条后门路径 \( X\leftarrow Z\rightarrow Y \),导致促销与销量出现伪相关,这正是混淆因素(confounder)的定义。工具变量和中介变量的结构特征与此不同。

Q4. 结构因果模型 \( M=(U,V,F) \) 中,字母 \( V \) 代表哪个集合?

单选题 · mid

  • A.外生变量集合
  • B.内生变量集合← 正确答案
  • C.结构方程集合
  • D.观测样本集合

答案:B。SCM 三元组中,\( U \) 是外生变量集合,\( V \) 是内生变量集合,\( F \) 是结构方程集合。只要记住“U 来自外部、V 由方程生成”就能快速定位答案,和观测样本无关。

Q5. 关于“外生变量在因果图中的特征”,下列哪一项是正确的?

单选题 · mid

  • A.至少有一条入边
  • B.必然是可观测变量
  • C.没有入边且是根节点← 正确答案
  • D.必须是回归中的 Y

答案:C。外生变量没有父节点,是 DAG 的根节点;但外生变量不一定可观测,比如不可观测的噪声 \( U \) 也是外生的。它通常出现在因果链的起点,而不是作为被解释变量。

Q6. 下列哪些关于“内生变量”的说法是正确的?

多选题 · mid

  • A.取值由结构方程决定← 正确答案
  • B.至少有一个父节点← 正确答案
  • C.一定不能作为处理变量
  • D.可能受外生变量影响← 正确答案

答案:ABD。内生变量由系统内生成,至少有一个入边,所以 A、B 正确。处理变量 \( X \) 也常常是内生的(如促销受季节影响),因此 C 错。内生变量完全可能受外生变量影响,比如促销力度受天气影响,D 正确。

Q7. 小王发现“促销越猛销量越低”,最可能的因果解释是?

单选题 · mid

  • A.促销直接压低了销量
  • B.天气忽然异常倒挂
  • C.季节同时影响促销与销量造成混淆← 正确答案
  • D.数据抽样误差导致

答案:C。这是典型的混淆现象:夏季人们少喝热咖啡(销量低),小王又恰好在夏季加大促销(促销高),于是促销与销量在观测数据中呈现负相关。真正的原因是共同父节点“季节”在作祟,而不是促销本身有害。

Q8. 后门准则要求用于调整的变量集合 \( Z \) 满足哪些条件?

多选题 · hard

  • A.阻断 \( X \) 与 \( Y \) 之间全部后门路径← 正确答案
  • B.不包含 \( X \) 的后代节点← 正确答案
  • C.包含 \( X \) 的所有后代节点
  • D.必须是全部外生变量

答案:AB。后门准则的核心是“阻断所有后门路径”且“不包含 \( X \) 的后代”,因为后代节点会遮挡 \( X \) 对 \( Y \) 的因果作用。D 没有必然性——只要集合能阻断对应路径即可,不需要穷尽所有外生变量。

Q9. 关于工具变量需要满足的条件,下列哪一项不属于其必须满足的性质?

单选题 · hard

  • A.与处理变量 \( X \) 强相关
  • B.与混淆因素独立
  • C.只通过 \( X \) 影响 \( Y \)
  • D.必须是内生变量← 正确答案

答案:D。工具变量必须外生,而不是内生。它的三个经典条件是:与处理变量相关、独立于混淆因素、对结果的作用完全经由处理变量。D 把“内生性”当成工具变量的要求,方向完全反了。

Q10. 在因果推断实践中,下列哪些控制策略是正确的?

多选题 · extreme

  • A.控制所有混淆变量以阻断后门路径← 正确答案
  • B.不控制对撞变量以防打开偏差路径← 正确答案
  • C.不控制中介变量以防遮挡因果路径← 正确答案
  • D.控制越多的变量结果越准确

答案:ABC。控制混淆变量是后门调整的核心;对撞变量和中介变量如果被盲目控制,会分别打开偏差路径或遮挡真实因果路径,所以 B、C 正确。D“多多益善”是典型误区,控制集合必须由因果结构决定,而非数量。