深夜的“蓝宝石夜总会”灯火通明,刑警老陈盯着两样东西出神:服务生小林的出入记录,和不断短款的收银账本。两者几乎形影不离——小林一上班,账本就少钱。换作普通侦探,早就盖章定案了。可老陈心里总有个疙瘩:会不会存在一个谁都没注意到的“第三人”?比如老板偶尔深夜查账——这个动作同时把小林叫走、把账本挪动。没人记录到这位查账人,但它同时操纵了双方的动向。在因果发现的世界里,这个“隐身第三人”就是未观测混杂,它最擅长的事,就是让毫无因果关系的两件事看起来铁证如山。 这篇文章跟着老陈的破案思路走:先看清混杂如何伪造关联,再用条件独立性“隔离审问”剔掉假线索,用“案情重演”检验结论稳不稳,用敏感性分析追问“要有多强的同谋才能翻案”,最后认识 FCI 与 LiNGAM 两套专门对付隐藏同谋的算法。读完你会明白:真正可信的因果结论,从来不是“找出来的”,而是“扛得住层层质疑后剩下的”。

岗位关联

学会混杂鲁棒性分析,你就能在只有观察数据的环境里分辨“真因果”与“假相关”,让因果结论经得起审稿人和业务方的挑战,这是 AI 从业者从“会跑模型”走向“会下结论”的关键一跃。

目录
  1. 可视化演示
  2. 混杂问题本质
  3. 因果骨架发现
  4. 鲁棒性评估
  5. 敏感性分析
  6. 抗混杂算法
  7. LiNGAM识别
  8. 实践应用检验
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示因果发现的鲁棒性的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。

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

因果发现的鲁棒性:未观测混 未观测混杂对因果发现的威胁 敏感性分析量化混杂影响程度 核心机制可视化 因果发现的鲁棒性整体架构与关键组件

混杂问题本质

老陈的第一课,来自一次冤枉。他曾经凭“形影不离”抓过一个小偷,结果几天后真凶落网——那位小偷只是恰好总在失窃时段出现在附近。他从此明白:两条线索同时出现,很可能是因为第三条线在背后同时拉动它们。办案的第一原则,就是永远怀疑有个看不见的“共谋者”。

因果发现算法面对的数据也是这样:我们只观测到变量 X 和 Y 的取值,却不知道背后是否有个未观测变量 U 同时在推高 X、推高 Y。U 不进入数据集,只在影子里发力,但它制造的“虚假关联”足以让任何朴素的相关分析得出错误因果。

把“误判程度”量化,就是混杂偏倚:它等于观测到的组间差异减去真实因果效应。真实效应要用潜在结果记号 \(Y(1), Y(0)\) 表达——同一个体在两种干预下的假想状态。两者之差不为零,就说明有未观测混杂在偷走因果真相。

Bias=(E[Y∣X=1]−E[Y∣X=0])−(E[Y(1)]−E[Y(0)])\displaystyle \text{Bias} = \left(E[Y \mid X=1] - E[Y \mid X=0]\right) - \left(E[Y(1)] - E[Y(0)]\right)

1. 观测端差异:\(E[Y \mid X=1]\) 表示 X 取 1 时 Y 的期望,减去 X 取 0 时的期望,得到肉眼可见的组间差。

E[Y∣X=1]−E[Y∣X=0]E[Y \mid X=1] - E[Y \mid X=0]

2. 因果效应:\(E[Y(1)] - E[Y(0)]\) 比较“同一批人分别在 X=1 与 X=0 假想世界里表现如何”,这才是因果。

E[Y(1)]−E[Y(0)]E[Y(1)] - E[Y(0)]

3. 偏倚差距:两者相减得出偏倚,若不为零,说明观测差异里混入了未观测混杂的干扰。

Bias=观测差异−因果效应\text{Bias} = \text{观测差异} - \text{因果效应}

老陈从此在案卷第一页画“人物关系图”:凡是能同时连到嫌疑人和现场的角色,哪怕暂时没证据,也打上红圈。因果发现的第一步同样如此——画出变量间的因果图,标注哪些路径可能藏着未观测节点。

因果骨架发现

知道了可能有共谋者,老陈的审讯方法也变了:他不问“你和小林是否有关”,而是问“在当晚值班表完全一致的情况下,你的证词和账本还敢说有关吗?”——把可能的共同原因固定住,再检查两件事还联不联。

这招在因果发现里叫条件独立性检验,也是 PC 算法的核心动作。算法先假设所有变量两两相连,然后对每一对变量尝试各种条件集 Z,一旦发现控制 Z 之后 X 与 Y 相互独立,就把这条边删掉。被删掉的边意味着“没有直接因果,只是被共同背景牵连”。

数学上写作 \(X \perp\!\!\!\perp Y \mid Z\)。“独立”是统计上的无关联,“给定 Z”强调把 Z 当成已知条件。注意:删除边只是暂时排除直接因果,方向尚未确定,方向要靠撞向 V 结构(对撞子)等额外规则来定。

X⊥ ⁣ ⁣ ⁣⊥Y∣Z\displaystyle X \perp\!\!\!\perp Y \mid Z

1. 独立符号:\(X \perp\!\!\!\perp Y\) 表示在统计意义上两变量相互独立,线索彼此无关联。

X⊥ ⁣ ⁣ ⁣⊥YX \perp\!\!\!\perp Y

2. 条件控制:竖线后的 \(Z\) 表示把 Z 固定在某个值上再观察,如同先固定“值班表”再审问。

∣Z\mid Z

3. 判定逻辑:给定 Z 后仍独立,就把 X 与 Y 之间那条边从骨架里删除。

X⊥ ⁣ ⁣ ⁣⊥Y∣ZX \perp\!\!\!\perp Y \mid Z

老陈把这一套总结为“隔离审问”:先控制所有能想到的共同背景,再判定两条线索是否还有私交。留下来的边组成嫌疑骨架,接下来要拷问骨架本身站不站得住。

鲁棒性评估

骨架出来了,老陈却不敢直接结案。他有个老习惯:把证词打乱顺序、换一批证人重听一遍,如果每次重新审问结论都变,说明这套说辞是“豆腐渣”。反之,反复重演依然咬定不放的线索,才值得写进报告。

数据科学家把这套“案情重演”叫做自举重采样:从原始样本里有放回地抽出一批新样本,重复多次,每次重新跑一遍因果发现算法,统计每条边出现的频率。这就是因果发现的鲁棒性评估——检验结论对数据扰动是否敏感。

稳定性分数 \(S_e\) 定义为边 e 在 K 次重采样中被重新发现的比例。接近 1,说明结论经得起“换一批证人”;明显低于 0.5,说明这条边只是运气好才出现。

Se=1K∑k=1K1{e∈G^k}\displaystyle S_e = \frac{1}{K}\sum_{k=1}^{K} \mathbb{1}\{e \in \hat{G}_k\}

1. 重采样图:\(\hat{G}_k\) 是第 k 次有放回抽样后重新学到的因果图。

G^k\hat{G}_k

2. 指示函数:\(\mathbb{1}\{e \in \hat{G}_k\}\) 在边 e 出现时记 1,不出现记 0。

1{e∈G^k}\mathbb{1}\{e \in \hat{G}_k\}

3. 平均频率:对 K 次重演求平均,得到边 e 被反复确认的概率。

Se=1K∑k=1K1{e∈G^k}S_e = \frac{1}{K}\sum_{k=1}^{K} \mathbb{1}\{e \in \hat{G}_k\}

老陈的结案标准是“三重陈述”:结论是什么、证据重演了几次、每次都稳不稳。因果发现报告同样应该报告稳定性分数,只报一张图、不报稳定性的结论,等于只给结论不给档案。

敏感性分析

重演解决“数据抖动”,但还剩下一个更阴险的问题:万一那个共谋者真实存在,只是我们没看到呢?老陈的追问方式是:如果真有一个看不见的同谋 U,他至少要有“多大的分量”才能把我现在的结论完全推翻?

敏感性分析就是回答这个问题的方法。它不假设 U 是否存在,而是计算一个阈值:要让观测到的关联全部变成假象,U 对 X 和 Y 的联合影响强度至少要达到多少。这个阈值由 E 值给出,E 值越大,结论越难被推翻。

E 值的计算以风险比 RR 为输入。直觉上,RR 本身代表关联强度,而根号项代表“要解释掉这么强的关联,混杂得有多逆天”。两者相加,得到结论从“显著”跌到“无效”所需的最小混杂强度。

E=RR+RR×(RR−1)\displaystyle E = RR + \sqrt{RR \times (RR - 1)}

1. 风险比:RR 是暴露组风险除以对照组风险,代表观测到的关联强度。

RR=P(Y=1∣X=1)P(Y=1∣X=0)RR = \frac{P(Y=1 \mid X=1)}{P(Y=1 \mid X=0)}

2. 修正因子:\(\sqrt{RR \times (RR-1)}\) 来自把关联全部归于混杂的反事实推导。

RR×(RR−1)\sqrt{RR \times (RR-1)}

3. 合并得 E 值:两段相加,得到推翻结论所需的最小混杂强度。

E=RR+RR×(RR−1)E = RR + \sqrt{RR \times (RR-1)}

老陈在结案报告里写:“就算真存在查账的神秘人,他也得同时掌握所有部门的管理权限,才可能制造出这样的报表差距。”当现实中的共谋者显然没这么大能量时,结论就站得住。这就是 E 值的用法。

抗混杂算法

有些案子,老陈一开始就确定“神秘人”一定存在——比如被调包过的监控,缺失的关键时段。这时候不能假装所有角色都在视线里。他的对策是换一套审讯流程:凡是方向拿不准的线索,一律标上小圆圈“∘“,意思是”这条边上可能藏着没落网的角色”。

在因果发现里,这套流程对应 FCI 算法。PC 算法假设没有潜变量,FCI 则明确允许未观测混杂存在。它不再输出确定的箭头,而是输出部分祖先图(PAG):边的端点可能是箭头、可能是否定号、也可能是圆圈,圆圈表示“此处可能被未观测混杂干扰,方向无法确定”。

FCI 判定边是否保留的核心条件是“无分离”:在所有已观测变量的任意子集 S 中,都找不到一组能让 X 与 Y 条件独立的 S,那么 X 与 Y 之间必然存在直连或诱发路径,这条边就保留下来。

X∈adj(Y)  ⟺  ∄S⊆O∖{X,Y}:X⊥ ⁣ ⁣ ⁣⊥Y∣S\displaystyle X \in adj(Y) \iff \nexists S \subseteq O \setminus \{X, Y\} : X \perp\!\!\!\perp Y \mid S

1. 邻接集合:\(adj(Y)\) 表示骨架中 Y 的直接邻居集合,也就是可能相连的线索。

X∈adj(Y)X \in adj(Y)

2. 候选分离集:\(S \subseteq O \setminus \{X, Y\}\) 表示从观测变量集合中刨掉 X、Y 后任选一组变量。

S⊆O∖{X,Y}S \subseteq O \setminus \{X, Y\}

3. 无分离判定:若对所有可能的 S 都无法让 X 与 Y 条件独立,边的说法就保留。

∄S:X⊥ ⁣ ⁣ ⁣⊥Y∣S\nexists S: X \perp\!\!\!\perp Y \mid S

老陈的流程图从此多了一行注释:“此处存在未观测角色,箭头方向存疑。”虽然结论不再那么干脆,但恰恰是这种不干脆,让结论变得诚实。

LiNGAM识别

如果证据都是连续测得的数值型线索(监控里的时间戳、账本的金额),老陈还有一门绝活——笔迹鉴定:每个人的陈述里,都混着“自己独有的语气”和“复述别人的内容”。把独有部分分离出来,谁先开口、谁在复述,就一目了然。

因果发现对应的方法是 LiNGAM(线性非高斯无环模型)。它假设变量之间是线性关系、因果图无环、每个误差项独立且至多一个服从高斯分布。在这些假设下,仅凭观测数据的联合分布就能唯一恢复因果次序和路径系数。

模型写作 \(x_i = \sum b_{ij} x_j + e_i\):每个变量等于其父节点(直接原因)的线性组合,加上自己独特的噪声项。ICA(独立成分分析)等工具可以把混合信号分解回独立的误差成分,从而排出因果先后。

xi=∑j∈PA(i)bijxj+ei\displaystyle x_i = \sum_{j \in PA(i)} b_{ij} x_j + e_i

1. 父节点集:\(PA(i)\) 是变量 \(x_i\) 的直接原因集合,即“谁影响了 i”。

j∈PA(i)j \in PA(i)

2. 路径系数:\(b_{ij}\) 表示原因 \(x_j\) 到结果 \(x_i\) 的影响强度,是笔迹的传染力度。

bijxjb_{ij} x_j

3. 独立误差:\(e_i\) 是每个变量独有的噪声,互相独立且非高斯,是识别次序的签名。

ei⊥ ⁣ ⁣ ⁣⊥ej(i≠j)e_i \perp\!\!\!\perp e_j \quad (i \neq j)

老陈靠笔迹鉴定揪出过好几个“复述者”——表面滔滔不绝,内里全是别人的观点。LiNGAM 做的正是这种事:用误差独立性把“原创”与“复述”分开,从而定位真正的因果源头。

实践应用检验

案子终于要结了。但老陈的结案报告有个规矩:绝不写“凶手必是某某”,而是写“在某某前提成立的情况下,某某实施了犯罪”。他会把假设、证据强度、盲区范围三样东西并列排出,让看报告的人自己判断可信度。

因果发现在实际场景中同样遵循这套规矩。观察性研究无法随机分组,医疗数据里患者的病情严重程度、经济数据里的宏观周期,都是潜在的未观测混杂。实践的标准工序是:主分析得出因果图,再叠加鲁棒性评估、敏感性分析阈值、算法假设清单,最后按要求导出结论。

混杂偏倚的“路径乘积”视角为检验提供抓手:偏倚沿 \(X \leftarrow U \rightarrow Y\) 这条双箭头路径传播,大小约等于两段系数的乘积。因此,只要你能为 U 对 X、U 对 Y 的影响分别设定一个合理上界,就能圈定偏倚范围,判断结论稳不稳。

Bias=γU×λU\displaystyle \text{Bias} = \gamma_U \times \lambda_U

1. 混杂到处置:\(\gamma_U\) 是未观测混杂 U 对 X 的作用强度,即共谋者对嫌疑人的操控力。

γU:U→X\gamma_U: U \rightarrow X

2. 混杂到结果:\(\lambda_U\) 是 U 对 Y 的作用强度,即共谋者对现场的操控力。

λU:U→Y\lambda_U: U \rightarrow Y

3. 乘积偏倚:沿路径 \(X \leftarrow U \rightarrow Y\) 流入的偏倚等于两段系数乘积。

Bias=γU×λU\text{Bias} = \gamma_U \times \lambda_U

刑警的结案报告只有三页:结论、证据链、疑点清单。因果发现的实践报告也应该有三件套:发现的图、支撑它的检验、以及未观测混杂可能颠覆它的边界。学会坦诚地标注不确定,正是“鲁棒性”最后也最重要的一课。

AI 应用场景

医疗数据分析:真实世界药物疗效评估

阶段:因果验证与模型评估

解决的问题:电子病历数据存在大量未观测混杂(病情严重程度、生活方式、依从性),传统“服药组 vs 未服药组直接对比”会严重高估药效。现代做法是:先做倾向评分与因果发现,再对主结论做敏感性分析,用 E 值向审稿人证明“要推翻这个结论需要多强的隐藏偏倚”。

具体案例:某医院团队评估降糖药对心血管事件的保护作用,主分析得到风险比 RR=1.6,进一步计算 E 值得 2.5。团队查阅文献发现已知最强混杂(吸烟)的效应强度约 1.8,低于 E 值,于是结论被评审接受。

经济因果推断:政策效应评估

阶段:假设检验与因果识别

解决的问题:评估“最低工资上调是否减少就业”时,经济周期、区域产业结构都是未观测混杂。用 FCI 输出部分祖先图,避免强设方向;配合重采样稳定性分数,检验结论在不同样本、不同时间段下是否反复出现。

具体案例:某智库用 30 年省级面板数据运行抗混杂因果发现,发现“政策→就业”的边在 80% 的重采样下稳定存在,但方向端点带圆圈。最终报告写“存在稳健关联,方向受潜在区域因素影响”,成功通过外部评审。

电商运营决策:促销与复购的因果判断

阶段:效果归因与特征归因

解决的问题:“发优惠券是否真提升复购”会被季节、用户活跃度等隐藏变量干扰。用 LiNGAM 在连续行为数据上排出因果次序,发现“优惠券→复购”的路径系数远小于“活跃度→复购”,说明观测相关大多来自共谋者。

具体案例:某电商平台对 50 万用户的行为序列应用 LiNGAM 分析后发现,观测到的“发券→复购”相关大部分来自用户活跃度这个隐藏混杂。调整投放策略后 ROI 提升 18%,且因果结论在重采样检验中保持稳定。

Python 演示

python47 行
import numpy as np  def simulate_data(n=1000, confounder_strength=1.5):    """生成含未观测混杂的观察数据."""    rng = np.random.default_rng(42)    U = rng.normal(size=n)    X = 0.8 * U + confounder_strength * rng.normal(size=n)    Y = 0.7 * X + 1.2 * U + rng.normal(size=n)    return X, Y  def naive_effect(X, Y):    """用一元回归估计观测关联效应."""    return np.cov(X, Y, ddof=1)[0, 1] / np.var(X, ddof=1)  def sensitivity_e_value(rr):    """E值: 推翻结论所需的最小混杂强度."""    if rr <= 1:        return 1.0    return rr + np.sqrt(rr * (rr - 1))  def stability_score(X, Y, n_boot=50, seed=7):    """自举重采样: 关联效应方向的稳定性."""    rng = np.random.default_rng(seed)    n = len(X)    positive = 0    for _ in range(n_boot):        idx = rng.choice(n, size=n, replace=True)        if naive_effect(X[idx], Y[idx]) > 0:            positive += 1    return positive / n_boot  def main():    X, Y = simulate_data()    eff = naive_effect(X, Y)    print("观测关联效应:", round(eff, 3))    print("方向稳定比例:", round(stability_score(X, Y), 3))    rr = abs(eff) / 0.7    print("E值(需多强混杂):", round(sensitivity_e_value(rr), 3))  if __name__ == "__main__":    main()
目的:模拟一份被未观测混杂污染的观察数据,演示“观测关联效应”如何偏离真实因果效应(0.7),并计算 E 值与自举稳定性分数,完成一次完整的鲁棒性体检。
  1. U = rng.normal(size=n)生成看不见的“共谋者”,它同时影响 X 与 Y。
  2. X = 0.8 * U + confounder_strength * rng.normal(size=n)处置变量 X 受混杂和自身噪声共同驱动。
  3. Y = 0.7 * X + 1.2 * U + rng.normal(size=n)结果变量 Y 既受真实原因 X 影响,也被混杂 U 拉动。
  4. np.cov(X, Y, ddof=1)[0, 1] / np.var(X, ddof=1)用一元回归斜率估计观测关联,这就是“肉眼看到的差异”。
  5. def sensitivity_e_value(rr)把 E 值公式代码化,回答“要多强的隐藏混杂才能推翻结论”。
  6. idx = rng.choice(n, size=n, replace=True)有放回抽样,相当于把案情换一批证人重演。
  7. if __name__ == "__main__":标准可执行入口,运行脚本即可看到完整输出。

常见误区

误区“我算了一下,X 和 Y 的相关系数高达 0.9,那 X 肯定强烈导致 Y!”

正解未观测混杂能让毫无因果的变量同步起舞。就像老板查账同时拉动小林和账本,相关系数只说明“一起变”,不说明“谁导致谁”。必须先做条件独立性检验、排除共谋者路径,才能谈因果强度。

为何常见:学习时常用已标注的合成数据,数据生成过程里没有隐藏变量,导致忽略了观察数据中无处不在的混杂。

误区“FCI 能处理潜变量,所以跑完 FCI 输出的就是真实因果图。”

正解FCI 的输出是带圆圈的部分祖先图,很多边的方向仍然存疑。它只是“诚实标注不确定”,而不是“把不确定变成确定”。圆圈端意味着可能存在未观测混杂,结论的表达必须保留这个模糊点。

为何常见:把“能容忍缺失信息”误读为“能凭空补全真相”,混淆了算法的保守与算法的全能。

误区“敏感性分析算出 E 值只有 1.3,肯定说明我的因果结论不成立。”

正解E 值衡量“推翻结论所需的最小混杂强度”,不是结论错误的概率。判断依据是:现实中最强的潜在混杂是否达到这个强度。如果已知最强混杂也只有 1.2,那么 1.3 的 E 值反而说明结论相当稳。

为何常见:把敏感性分析的阈值错误类比成 p 值,混淆了“需要的证据强度”与“出错的概率”。

误区“bootstrap 反复跑都稳定,敏感性分析也过关,那因果就一定成立了。”

正解鲁棒性检验只说明结论“在数据扰动下稳定”,不等于排除了所有混杂。一个稳定的错误结论依然是错误。必须把重采样稳定性、E 值阈值、算法假设(如无环、线性)和领域知识组合起来,才能给出可信因果判断。

为何常见:人们天然偏好确定性答案,希望一个数字或一次检验就能“盖章”,忽略了因果推断是多重证据的交叉验证。

面试题

Q1. 存在未观测混杂时,观测到 X 与 Y 相关,最稳妥的结论是?

单选题 · easy

  • A.X 必为 Y 的原因
  • B.Y 必为 X 的原因
  • C.相关不证明因果← 正确答案
  • D.数据必然有噪声

答案:C。未观测混杂能让毫不相关的 X 与 Y 同步变化,就像老板查账同时拉动小林和账本。仅凭相关只能说明“两者有关”,因果方向与真假都需要额外假设与检验,故选 C。A、B 都偷换了“相关”与“因果”,D 与题干无关。

Q2. 条件独立性 \(X \perp\!\!\!\perp Y \mid Z\) 成立,说明什么?

单选题 · easy

  • A.X 与 Z 互为因果
  • B.控制 Z 后 X 与 Y 无关← 正确答案
  • C.X 与 Y 必然直接相连
  • D.Z 是 X 的唯一原因

答案:B。条件独立的意思是:把 Z 固定后,X 与 Y 不再有统计关联,正如控制值班表后证词与账本对不上号。B 正确。A 颠倒了角色,C 与条件独立矛盾,D 属于过度断言。

Q3. 敏感性分析中的 E 值表示什么?

单选题 · mid

  • A.样本中混杂的数量
  • B.推翻结论所需最小混杂强度← 正确答案
  • C.因果效应估计的方差
  • D.模型参数的数量总和

答案:B。E 值回答“要多强的未观测混杂才能把关联解释成零”,即推翻结论的最小强度,选 B。A、D 是无关量,C 混淆了方差估计与敏感性阈值。

Q4. FCI 算法相对 PC 算法的核心改进是?

单选题 · mid

  • A.允许未观测混杂存在← 正确答案
  • B.大幅提高数据采集速度
  • C.彻底消除全部因果偏差
  • D.自动生成干预实验方案

答案:A。FCI 明确允许潜变量存在,用圆圈标注方向不确定的端点,这是相对 PC 的核心改进,选 A。B、D 与算法无关,C 的“彻底消除”违背统计学常识。

Q5. 自举重采样在鲁棒性评估中的作用是?

单选题 · mid

  • A.增大样本量并消除系统误差
  • B.模拟新数据以检验结论稳定← 正确答案
  • C.提升算法速度并降低内存
  • D.将缺失值填充为总体均值

答案:B。自举重采样用有放回抽样构造新样本,反复重跑算法观察结论稳定性,相当于案情重演,选 B。A 中的“消除系统误差”做不到,C、D 与评估目的无关。

Q6. LiNGAM 识别因果方向依赖哪一关键假设?

单选题 · hard

  • A.所有变量均服从正态分布
  • B.误差项相互独立且非高斯← 正确答案
  • C.变量之间不存在任何噪声
  • D.样本量必须达到百万级

答案:B。LiNGAM 要求误差相互独立且至多一个服从高斯分布,靠非高斯性实现方向识别,选 B。A 若全部高斯则模型不可识别,C、D 均不是其假设。

Q7. 混杂偏倚等于 \(\gamma_U \times \lambda_U\) 强调的核心是?

单选题 · hard

  • A.偏倚沿 X←U→Y 路径传播← 正确答案
  • B.偏倚与样本量成反比
  • C.偏倚只来源于测量误差
  • D.偏倚可通过加权完全消除

答案:A。偏倚沿“X←U→Y“这条双箭头路径传播,大小等于两段系数的乘积,选 A。B 混淆了抽样误差与系统偏倚,C 忽略了混杂,D 的”完全消除”通常不现实。

Q8. 以下哪些属于应对未观测混杂的常见手段?

多选题 · easy

  • A.开展敏感性分析← 正确答案
  • B.使用抗混杂算法← 正确答案
  • C.删除全部缺失值
  • D.增加数据维度

答案:AB。敏感性分析(如 E 值)和抗混杂算法(如 FCI)都是标准手段,选 A、B。删除缺失值与单纯增加维度无法消除未观测混杂,C、D 反而可能引入新偏倚。

Q9. 关于鲁棒性评估,下列说法正确的有?

多选题 · mid

  • A.重采样可检验结论稳定性← 正确答案
  • B.结论易翻转说明不稳健← 正确答案
  • C.评估无法发现任何问题
  • D.必须使用 FCI 才能评估

答案:AB。重采样能检验结论稳定性,结论易翻转就说明不稳健,选 A、B。C 低估了评估的价值,D 把 FCI 说成必要条件,均错误。

Q10. 支撑“X 是 Y 的原因”需要哪些证据?

多选题 · hard

  • A.统计关联显著存在← 正确答案
  • B.排除混杂与反向因果← 正确答案
  • C.方向经过识别确认← 正确答案
  • D.样本量恰好等于一百

答案:ABC。因果成立需要三步证据:关联显著(A)、排除混杂与反向因果(B)、方向经识别确认(C)。D 是无关的样本量梗,不能作为因果证据,故 A、B、C 全选。