假设今天是家庭聚会,七位好友各做一道菜,最后凑成一桌年夜饭。每道菜的口味,一半来自公开的“菜谱”——你知道的配料和步骤,另一半来自厨师当天不可见的“手气”:盐放多了,火候偏了,甚至连他自己都说不清。我们把菜谱叫作“机制”,把这份神秘的“手气”叫作“外生噪声”。结构因果模型(SCM)给出的最核心约定是:每位厨师的手气彼此独立——你不小心烧糊了锅,并不会让隔壁的汤变咸;大家手气之间没有任何“暗线”联通。 正是这条看似简单的约定,让一个旁观者可以在不动手的情况下,准确预言“如果把某道菜的菜谱换掉,整桌菜会变成什么样”,也能回答“那天要是没放辣椒会怎样”这类假设性问题。一旦约定被打破——比如所有厨师都在偷偷看同一份天气预报来决定咸淡——整个预测体系就会崩塌。这就是噪声模型假设:因果推断大厦最底层的承重墙。

岗位关联

噪声模型假设是SCM的“承重墙”,理解它就能理解因果效应为何可识别、反事实为何有唯一答案——这是每个想用因果推断落地模型的工程师必须打牢的地基。

目录
  1. 可视化演示
  2. 噪声概念溯源
  3. 独立性假设
  4. 干预操作基础
  5. 因果效应识别
  6. 反事实推断
  7. 噪声模型分类
  8. 假设违背检测
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

三模式展示结构因果模型噪声独立性:SCM结构与外生噪声独立、do干预切割入边与后门调整、反事实推断共享噪声比较潜在结果。

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

SCM结构:外生噪声独立性 Xi=fi(Pa(Xi),Ui),Ui相互独立 P(U1,U2,U3)=P(U1)P(U2)P(U3) P(U) = Π P(Ui) 噪声独立性是因果效应可识别性的数学基石,确保干预操作正确分解。

噪声概念溯源

年夜饭桌上,每道菜的味道都可以拆成“菜谱”和“手气”两半。菜谱写在明处,手气藏在暗处——你没法提前测量它,但每次成品都受它影响。SCM 的第一课就是学会这种拆解:把每个变量看成“看得见的配方结果 + 看不见的个人运气”。

在这个框架里,被模型内部解释的变量叫“内生变量”(比如最终端上桌的菜),它的值由模型内的“父变量”(直接影响它的其他菜或配料)和它自己的“外生噪声”U 共同决定。外生噪声 U 是模型外部因素的汇总——天气、心情、手抖了一下……它不一定是“错误”,而是模型诚实地承认“有些事情我没观测到”。这种“未知因素的诚实存档”正是噪声的双重角色:既是随机性的来源,也是模型不完整性的标记。

结构因果模型用一组结构方程刻画世界。每个内生变量 X 都有形如下式的方程,其中 PA_X 是 X 在因果图上的父变量集合,U_X 是与 X 对应的外生噪声:

就像一道菜的味道等于菜谱加手气,SCM 从不假装手气不存在,而是把它显式写成噪声项 U。搞清楚 U 从哪里来、和谁独立,是后面所有因果推理的前提。

X=fX(PAX,UX)\displaystyle X = f_X(PA_X, U_X)
  1. X(左端内生变量)被解释的对象,比如“最终菜品的咸度”,它的值由右边的一切决定。
    X\displaystyle X
  2. f_X(机制或配方)一个确定性的函数,描述父变量和噪声如何“烹饪”出 X,好比菜谱上的每一步操作。
    fX\displaystyle f_X
  3. PA_X(父变量)因果图中直接指向 X 的所有变量,是“看得见的配料”,在方程里作为输入出现。
    PAX\displaystyle PA_X
  4. U_X(外生噪声)未观测因素与随机性的集合体,是“当天的手气”,看不见但始终在起作用。
    UX\displaystyle U_X

独立性假设

聚会上大家有个不成文的默契:手气不串门。你的盐放多了,不会让我的汤变咸;我的手一抖,也不会让你的烤鸡变焦。这种“互不干扰”就是独立性假设的生活原型。

形式化地说,SCM 要求所有外生噪声项两两独立:U_X ⊥ U_Y(对任意不同的变量 X、Y)。注意“独立”比“不相关”更强——不相关只说明没有线性联系,独立则说明两者之间完全无法互相推断,这才是“手气不串门”的严格版本。

这个假设的直接收获是:整个系统的联合分布可以被干净地“拆包”。因为每个变量只由父变量和自己的噪声决定,而噪声又互不相通,所以联合分布可以分解成一个个条件分布的乘积:

正因为手气互不串门,“整桌菜的联合状态”才能由每道菜的“条件剧本”直接相乘拼出来。这一“拆包”能力,是后面干预计算中乘法分解的数学地基。

P(V1,V2,…,Vn)=∏i=1nP(Vi∣PAi)\displaystyle P(V_1, V_2, \ldots, V_n) = \prod_{i=1}^{n} P(V_i \mid PA_i)
  1. 左侧联合分布所有变量一起出现的概率,好比整桌年夜饭“一起端上来的完整状态”。
    P(V1,V2,…,Vn)\displaystyle P(V_1, V_2, \ldots, V_n)
  2. 乘积号 Π把每个变量的“个人剧本”相乘,表示大家互不牵连、各自成戏——这正是独立性带来的“拆包”。
    ∏i=1n\displaystyle \prod_{i=1}^{n}
  3. P(V_i | PA_i)每个变量的条件概率——给定父变量后它自己的分布,相当于“给定菜谱后这道菜的口味分布”。
    P(Vi∣PAi)\displaystyle P(V_i \mid PA_i)

干预操作基础

现在你想做个实验:把某位厨师的菜谱强行改掉,换成“少放一半盐”。这跟“在旁边看着”(只观察)完全不同——你不是希望他保持原样然后碰巧用了新配方,而是直接夺过锅铲,强制执行新配方,同时他当天的手气照旧发挥。

在 SCM 里,这个“夺过锅铲”的动作写作 do(X = x)。它与条件概率 P(Y | X = x) 的本质区别是:条件只是“筛出”那些恰好 X = x 的样本,因果路径仍然存在;而干预是“动手术”——删除所有指向 X 的箭头,让 X 不再听父变量的话。

干预后的世界仍由原机制支配,只是 X 的方程被常量替换。在噪声独立性保证下,干预后的分布可以用“截断乘积公式”计算:把被干预变量的因子从联合分布乘积中删掉,其余因子保持不变:

干预像外科手术:切掉旧配方与上游的联系,保留每道菜自身的“条件剧本”,手气(噪声)照常工作。没有独立性假设,这个“切得干净”的世界根本不存在。

P(v∣do(X=x))=∏Vi∉XP(vi∣pai)\displaystyle P\big(\mathbf{v} \mid do(X = x)\big) = \prod_{V_i \notin X} P(v_i \mid pa_i)
  1. do(X = x)(干预记号)表示“强制令 X 等于 x”,对应夺过锅铲的行为,而不是被动观察。
    do(X=x)\displaystyle do(X = x)
  2. 条件 V_i ∉ X(跳过被干预者)乘积中跳过所有被干预的变量,表示它们的因子被“切除”。
    Vi∉X\displaystyle V_i \notin X
  3. 剩余因子 P(v_i | pa_i)其余变量的条件概率保持原样——菜谱没被改的菜,口味分布照旧。
    ∏Vi∉XP(vi∣pai)\displaystyle \prod_{V_i \notin X} P(v_i \mid pa_i)

因果效应识别

我们的目标很实际:不动手做实验,只凭观察往日聚会的记录,能不能准确算出“把菜谱改成少盐版之后,咸度平均会变成多少”?能在观测数据里把干预效果“认出来”,这就是识别。

因果效应 P(Y | do(X = x)) 可识别,是指它能被观测分布 P(V) 唯一地决定,而不管真实世界背后是哪套 SCM。独立性假设在此刻登场:它保证观察世界中“每道菜的剧本互不牵连”,于是我们可以把混淆因素带来的偏差用后门调整公式拆掉。

当存在既影响处理 X 又影响结果 Y 的混淆集合 Z 时,只要 Z 满足后门准则,干预分布就等于按 Z 加权平均的条件分布:

后门调整就像“分组对比再汇总”:把客人按底料口味分成小组,组内比较菜谱差异,最后按各组人数加权。独立性假设保证了“底料与手气不串门”,这种分组汇总才成立,因果效应才真正被识别出来。

P(Y=y∣do(X=x))=∑zP(y∣x,z) P(z)\displaystyle P\big(Y = y \mid do(X = x)\big) = \sum_{z} P(y \mid x, z)\, P(z)
  1. 目标 P(Y = y | do(X = x))即“干预后的效果”,对应想知道换菜谱后的结果分布。
    P(Y=y∣do(X=x))\displaystyle P\big(Y = y \mid do(X = x)\big)
  2. 求和 Σ_z(按混淆分组)对混淆变量 Z 的所有取值做加权平均,好比把不同“底料状态”的场次拼在一起看。
    ∑z\displaystyle \sum_{z}
  3. P(y | x, z)·P(z)逐层条件概率与混淆先验相乘——每个子人群里的用餐习惯已固定,不受这次干预影响。
    P(y∣x,z) P(z)\displaystyle P(y \mid x, z)\, P(z)

反事实推断

聚会结束后,有人问:“那天要是老王没放辣椒,我的汤会不会就不那么辣?”这就是反事实。它不是在问“下次不放辣椒会怎样”,而是在问“在保持那天所有手气不变的前提下,把菜谱改掉,结局会怎么变”。

SCM 给出了反事实的标准算法:回到产生数据的世界,把每个个体不可见的外生噪声 U 固定下来(那是它当天的“手气档案”),然后只替换被干预变量的方程,再重放一遍因果机制。这个操作记作 Y_{X=x}(u)。

对变量 Y,给定个体噪声 u(即 U_Y = u_Y),反事实值的定义是:

反事实的“唯一答案”全靠独立性假设撑腰:只有当手气互不串门,我们才敢说“那份手气档案在原世界和反事实世界都是同一份”。一旦手气暗中相关,平行世界就像沙堡——答案随你怎么拼都不唯一。

YX=x(u)=fY(x, UY=uY)\displaystyle Y_{X=x}(u) = f_Y\big(x,\, U_Y = u_Y\big)
  1. 下标 X = x(干预剧本)表示“把 X 的方程换成常量 x”——在平行世界里强制改用新菜谱。
    YX=x\displaystyle Y_{X=x}
  2. (u)(固定手气)括号里携带原世界的手气档案,反事实世界里手气原封不动地跟随个体。
    (u)\displaystyle (u)
  3. f_Y(x, U_Y = u_Y)Y 的机制不变,只是把新菜谱 x 和旧手气 u_Y 一起代入,重放烹饪过程。
    fY(x, UY=uY)\displaystyle f_Y\big(x,\, U_Y = u_Y\big)

噪声模型分类

手气与菜谱的混合方式不止一种。有的人是“最后一步加盐”——手气只是叠加在成品上;有的人是“火候整体放大”——手气把整个味道等比放大。不同的混合方式,对应不同的噪声模型。

最常见的是加性噪声模型(Additive Noise Model, ANM):X = f(PA_X) + U_X,噪声在函数输出上叠加。另一种是乘性模型:X = f(PA_X) × U_X(或写成 exp 形式),噪声对机制做缩放。研究还发现,噪声的分布形态不必是高斯——独立才是关键,形状不重要。

两类模型分别写成:

不管手气是“撒盐”还是“改火”,只要它不和别人串门,独立性假设就照样成立。噪声模型的分类,只是让我们更精确地刻画“手气到底怎么起作用”,好为因果方向识别选择合适的算法。

X=f(PAX)+UX和X=f(PAX)×UX\displaystyle X = f(PA_X) + U_X \qquad\text{和}\qquad X = f(PA_X) \times U_X
  1. 加性合成 +U_X噪声以“绝对偏移”附着在机制输出上,对应调料撒多撒少的绝对误差。
    X=f(PAX)+UX\displaystyle X = f(PA_X) + U_X
  2. 乘性合成 ×U_X噪声以“比例因子”缩放机制输出,对应火候对整锅菜的等比放大。
    X=f(PAX)×UX\displaystyle X = f(PA_X) \times U_X

假设违背检测

如果所有厨师其实都在偷偷看同一份天气预报来决定咸淡,那么“手气不串门”就破产了——菜与菜的“意外”会同步涨落。如何发现这种暗线?答案是检查“残差”:把每道菜按菜谱预测的口味减掉,剩下的“意料之外”如果还和别人有关联,说明手气在串门。

实际做法分两步:先用观测数据拟合每个机制 f_X,得到残差 Û_X = X − f̂_X(PA_X);然后检验残差是否与父变量以及其他残差独立。如果残差之间仍存在相关性,说明有隐藏的混淆因素被漏掉了——它们让 U_X 和 U_Y 暗中相关。

残差估计与独立性检验可写成:

除了残差检验,还可以做敏感性分析:问“如果手气相关系数达到某个水平,结论会翻盘吗”——就像问“如果大家真的都在看天气预报,咸淡结论还靠得住吗”。独立性假设不是免费的午餐,它必须接受数据的审判。

U^X=X−f^X(PAX),U^X⊥ ⁣ ⁣ ⁣⊥PAX\displaystyle \hat{U}_X = X - \hat{f}_X(PA_X), \qquad \hat{U}_X \perp\!\!\!\perp PA_X
  1. 残差 Û_X(手气的猜测值)用学到的配方预测 X,实际值与预测值之差就是手气的“脚印”。
    U^X=X−f^X(PAX)\displaystyle \hat{U}_X = X - \hat{f}_X(PA_X)
  2. 独立符号 ⊥⊥(检验环节)检验这个脚印与父变量不再有关联——若有关联,说明配方没学全、有隐藏变量在暗处影响双方。
    U^X⊥ ⁣ ⁣ ⁣⊥PAX\displaystyle \hat{U}_X \perp\!\!\!\perp PA_X

AI 应用场景

推荐系统的因果纠偏

阶段:因果推断与离线评估

解决的问题:电商平台想评估“发放满减券”对购买率的真实因果效应。传统做法直接比较领券与未领券用户的转化率,但领券用户本身更爱买(混淆变量),回归估计被偏差污染。基于 SCM 的噪声独立性假设,用后门调整对用户活跃度等混淆进行分组加权,就能从观测日志中识别出 P(购买 | do(发券))。

具体案例:某电商团队从历史日志中提取用户活跃度 Z、是否发券 X、购买金额 Y,建立结构方程并用后门公式计算发券的边际效应,发现真实提升比朴素对比低约 30%,据此重新规划发券预算。这就像“按底料口味分组后再比较菜谱差异”。

电子病历中的治疗效果估计

阶段:观测数据的因果效应估计

解决的问题:医院只有观测病历,没有随机试验。病情严重度同时决定用药 X 和康复 Y(混淆)。若噪声独立假设成立,可用后门调整与倾向性得分加权还原药物真实疗效,避免重症患者被误判为“药效差”。

具体案例:数据分析师对 5 万份病历做 SCM 建模,用倾向性得分加权估计某降压药对心血管事件的影响,发现校正混淆后药效显著为正,支持了原方案的推广。这正是“独立性假设让截断乘积公式得以成立”的工程落地。

反事实可解释 AI

阶段:模型解释与反事实分析

解决的问题:银行用 AI 拒绝贷款,客户想知道“如果我当时收入更高一点,结果会怎样”。反事实解释借助 SCM 噪声独立性假设,固定个体的外生噪声,替换收入变量的机制,给出“最少改动、结果唯一”的可行动建议。

具体案例:反事实解释引擎为被拒客户生成“收入提高 15% 即可通过”的可行动建议,且每次推理结果稳定唯一。若噪声独立性被违背,解释系统会给出互相矛盾的答案,这正是该场景要避免的。

Python 演示

python44 行
import numpy as np  class NoisySCM:    """小型结构因果模型:Z -> X -> Y,Z -> Y(Z 为混淆变量)"""     def __init__(self, seed=42):        self.rng = np.random.default_rng(seed)        self.causal_effect = 3.0  # X 对 Y 的真实因果效应     def sample(self, n=5000, do_x=None):        u_z = self.rng.normal(0.0, 1.0, n)        u_x = self.rng.normal(0.0, 1.0, n)        u_y = self.rng.normal(0.0, 1.0, n)        z = u_z  # 混淆变量的取值来自外生噪声        if do_x is None:            x = 2.0 * z + u_x       # 观测模式:X 受 Z 影响        else:            x = do_x + u_x          # 干预模式:切断 Z -> X 的边        y = self.causal_effect * x + 1.0 * z + u_y        return x, y     @staticmethod    def ols_slope(x, y):        return np.polyfit(x, y, 1)[0]  def main():    model = NoisySCM()    x_obs, y_obs = model.sample(do_x=None)    slope_obs = model.ols_slope(x_obs, y_obs)    print("观测回归斜率(含混淆偏差): %.3f" % slope_obs)     x_do, y_do = model.sample(do_x=5.0)    slope_do = model.ols_slope(x_do, y_do)    print("干预后回归斜率(因果效应): %.3f" % slope_do)     print("真实因果效应: %.3f" % model.causal_effect)    diff = abs(slope_do - model.causal_effect)    print("独立性假设成立: %s" % ("是" if diff < 0.1 else "否"))  if __name__ == "__main__":    main()
目的:构造一个带混淆变量的线性 SCM,对比“观测回归”与“干预后回归”的斜率,演示噪声独立性假设如何支撑因果效应的准确识别。
  1. x = 2.0 * z + u_x观测模式下 X 同时受混淆变量 Z 影响,回归斜率会混入 Z 的“功劳”。
  2. x = do_x + u_x干预模式下 Z→X 的边被切断,X 只剩设定值与自身噪声,这正是“夺过锅铲”。
  3. y = self.causal_effect * x + 1.0 * z + u_yY 的机制方程:真实效应、混淆影响与噪声三者相加,独立性保证 U_X 与 U_Y 互不相关。
  4. np.polyfit(x, y, 1)[0]最小二乘回归返回斜率,作为对“每增加一单位 X,Y 平均变化多少”的估计。
  5. if __name__ == "__main__":保证模块被导入时不会执行演示,只有直接运行时才启动主流程。

常见误区

误区“噪声项就是仪器测量误差或者数据噪声,数据清洗做得越干净,SCM 就越准确,噪声最好能被消除掉。”

正解外生噪声 U 是模型对“所有未观测原因的汇总”,包括遗失变量、天气、心情等真实存在的因果力量,而不是测量误差。消除它等于假装世界没有未知因素。好比年夜饭里“手气”不是称重误差,而是真实存在的火候与手感;清洗数据只会让记录更准,但手气依然在。SCM 把 U 显式写进方程,正是为了在推理时对它做诚实的处理。

为何常见:很多入门教材先讲线性回归,回归里的“误差项”常被理解为测量噪声,初学者很自然把同样的直觉搬进 SCM。

误区“既然 SCM 这么厉害,那直接假设噪声相互独立就能用了,反正论文里都这么写。”

正解独立性是“假设”而非“事实”,它需要数据证据支撑。实践中用残差检验、敏感性分析来判断假设是否合理。好比你不能默认所有厨师的运气天然不相关——如果大家都看同一份天气预报,手气就悄悄串门了。不检验假设,算出的“因果效应”可能只是幻觉。

为何常见:教科书先讲理想情形,把假设当作公理;工程里没人提醒,容易把“建模假设”误当“数据事实”。

误区“我用历史数据做回归,X 的系数就是 X 对 Y 的因果效应,不用搞什么 do 算子。”

正解回归估计的是条件期望 E[Y | X],包含混淆偏差。只有当噪声独立且无混淆(如随机试验)时,回归斜率才等于因果效应。宴会里“看见老王吃辣就皱眉”的统计关联,不等于“让老王吃辣会导致皱眉”。要得到因果效应,必须用 do 算子或后门调整显式切断混淆路径。

为何常见:统计课程强调“相关不等于因果”,但实操时很多人仍把回归系数直接解读为因果,因为对数据生成机制缺少 SCM 视角。

误区“外生噪声一定是加性的、而且服从高斯分布;不是高斯分布的噪声就得先改造成高斯。”

正解独立性假设只约束 U 之间的依赖关系,不约束 U 的分布形态与组合方式。噪声可以是加性、乘性,也可以是非高斯;非高斯甚至是有意保留的——线性非高斯模型恰恰利用非高斯性来识别因果方向。好比手气可以是“撒盐”式叠加,也可以是“火候”式缩放,关键不是手气长什么样,而是它跟别人有没有暗线。

为何常见:高斯分布是统计学默认配置,加上中心极限定理的普及,大家默认“噪声=高斯+加性”,忽略了 SCM 真正的核心假设是独立性。

面试题

Q1. 在结构因果模型 SCM 中,每个内生变量的外生噪声项最关键的基本假设是什么?

单选题 · easy

  • A.噪声服从某种特定的概率分布
  • B.所有外生噪声项相互独立← 正确答案
  • C.噪声项可以直接被测量记录
  • D.噪声项的标准差必须足够小

答案:B。独立性假设是 SCM 的基石,它保证联合分布可分解、干预可识别。A 错在 SCM 并不限定噪声分布形态;C 错在外生噪声本质不可观测;D 明显不合理。好比各位厨师的手气互不串门才是关键,手气长什么样反倒无所谓。

Q2. 在 SCM 中,外生噪声项 U 的主要含义是什么?

单选题 · easy

  • A.数据采集过程中产生的仪器随机误差
  • B.模型未观测原因与固有随机性的汇总← 正确答案
  • C.模型预测结果与真实标签之间的残差
  • D.需要人工标注才能消除的理论缺陷

答案:B。U 代表所有没被模型显式观测到的原因(天气、心情、遗漏变量等)以及固有随机性的集合体,是“手气档案”。A 只是测量层面的误差,范围太小;C 是拟合残差,是事后计算量而非模型设定;D 更是误解——U 不是缺陷,而是模型对未知的诚实表示。

Q3. 噪声相互独立的假设,是下列哪项结论的数学基石?

单选题 · easy

  • A.联合分布可分解为条件分布乘积← 正确答案
  • B.变量之间必然存在线性相关关系
  • C.每个变量方差必然完全相同
  • D.因果图必须是一棵有向树结构

答案:A。因为每个变量只由父变量和自身噪声决定,且噪声互不相通,联合分布才能写成各条件分布的乘积。B、C、D 都是附加的强约束,SCM 从不要求变量线性相关、方差相同或图必须是树,它们与独立性假设无关。

Q4. 关于 do(X=x) 与给定 X=x 的区别,下列说法正确的是?

单选题 · mid

  • A.两者在数学语义上没有任何本质区别
  • B.do 算子会删除指向 X 的机制与箭头← 正确答案
  • C.条件概率也会删除指向 X 的箭头
  • D.do 算子会增加一个新维度的外生噪声

答案:B。do(X=x) 是干预,好比夺过锅铲强制换菜谱,会切除所有指向 X 的因果箭头;而“给定 X=x”只是被动筛选出 X 恰好等于 x 的样本,因果路径原样保留。A 混淆两者;C 说反了;D 中干预并不新增噪声维度。

Q5. 反事实推断需要独立性假设的根本原因是什么?

单选题 · mid

  • A.保证反事实概率拥有唯一语义与取值← 正确答案
  • B.让模型在训练时减少计算资源占用
  • C.使反事实结果可以绕过数据直接手算
  • D.让干预变量在反事实中保持随机波动

答案:A。反事实要求“把原世界的手气档案原封不动搬进平行世界”。独立性保证每个人的噪声不受别人噪声影响,这个搬运才是良定义的,反事实概率才有唯一语义。B、C、D 都与计算效率、手算或随机波动无关。

Q6. 在加性噪声模型中,独立性假设对因果方向识别的作用是什么?

单选题 · hard

  • A.保证噪声项服从正态对称分布
  • B.使输入与噪声独立以排除反向解释← 正确答案
  • C.使结构函数在所有点上都可微分
  • D.保证观测样本足以支撑假设检验

答案:B。加性噪声模型识别方向的关键是:若 X→Y 成立且 U_X 与 X 独立,则拟合残差与输入独立;若反向模型也满足这种独立性,则方向不唯一,独立性检验负责排除“镜像模型”。A 错在模型不要求正态;C 错在可微与独立性无关;D 是样本量问题,不是独立性。

Q7. 观测数据的回归斜率偏离真实因果效应的典型原因是?

单选题 · hard

  • A.数据集的样本量还不够大到充分收敛
  • B.混淆变量同时影响处理与结果变量← 正确答案
  • C.处理变量的取值范围设置过于狭小
  • D.结果变量自身的方差数值相对偏大

答案:B。混淆变量 Z 同时影响 X 和 Y,观测回归会把 Z 的效应混入 X 的系数中,造成系统性偏差。样本量大、取值范围大都不会消除这种偏差;噪声方差大小影响精度却不改变期望。好比“吃辣”与“皱眉”的关联可能来自“平时爱皱眉的人更爱吃辣”这一混淆。

Q8. 下列哪些手段可以用来检验噪声独立性假设是否合理?

多选题 · mid

  • A.对拟合残差与输入变量做独立性检验← 正确答案
  • B.对模型结论进行敏感性分析← 正确答案
  • C.检查不同噪声间是否存在剩余相关性← 正确答案
  • D.直接让优化算法收敛到更低损失值

答案:ABC。残差检验(A)看“手气脚印”是否还跟父变量纠缠,敏感性分析(B)问“假设被违背到多严重结论才翻盘”,噪声间相关性检查(C)直接探测暗线。D 是训练收敛问题,只能说明拟合得好,不能说明手气之间没有串门。

Q9. 关于外生噪声与内生变量的关系,下列表述正确的是?

多选题 · hard

  • A.内生变量由父变量与外生噪声共同决定← 正确答案
  • B.外生噪声汇总所有未观测的潜在原因← 正确答案
  • C.内生变量永远不能充当其他变量父节点
  • D.噪声独立使联合分布可分解为乘积← 正确答案

答案:ABD。SCM 中内生变量满足 X=f(PA_X,U_X),所以 A 对;U 是未观测原因汇总,B 对;内生变量完全可以充当其他变量的父变量(如 X 是 Y 的父变量),C 错;噪声独立带来联合分布的条件乘积分解,D 对。

Q10. 当噪声独立性假设被违背(噪声暗中相关)时,可能出现哪些后果?

多选题 · hard

  • A.干预效应估计产生系统性偏差← 正确答案
  • B.反事实推断结果不再具备唯一性← 正确答案
  • C.后门调整公式的测算结果逐渐失效← 正确答案
  • D.观测数据将完全无法进行任何拟合

答案:ABC。独立性是截断乘积公式、后门调整与反事实唯一性的共同前提,假设被违背后三者都会出问题。D 过于极端——假设违背不等于数据不可拟合,模型照样能跑出数字,但那些数字不再可信,就像手气串门时“换菜谱预测咸淡”的结论全是空中楼阁。