欢迎光临
我们一直在努力

万字长文详解因果推断:从SCM/PO 双框架、后门 / 前门 / IV 识别、ATE 估计算法到 DoWhy、NOTEARS、LLM 因果融合

文章目录

    • 因果推断:
      • 因果推断的发展起源与理论体系
      • 因果关系的验证逻辑与局限
      • 传统统计框架的局限:辛普森悖论
      • 图中的关联因果流动
        • 传统联合分布建模的缺陷
        • 局部马尔可夫假设
        • 最小性假设
        • 三大基础结构与关联传播规则
        • D-分离 (d-separation practice)
    • 结构因果模型(SCM)与潜在结果框架(PO)
    • DoWhy、NOTERAS 与 LLM × 因果
      • DoWhy 因果推理的“工程脚手架”
        • Model(建模)
        • Identify(识别)
          • 后门准则(Backdoor Criterion)
          • 前门准则(Frontdoor Criterion)—— 应对【有隐藏混杂,但存在中介】
          • 边界分析
          • 工具变量准则(Instrumental Variable, IV)—— 高混杂场景补充方案
        • Estimate(估计)
          • S-Learner(标准 COM 估计器)
          • T-Learner(GCOM,分组 COM 估计)
          • 混合架构改进:TARNET
          • X-Learner(高效分组学习)
        • Refute(反驳 / 验证)
      • NOTEARS:因果发现(学 DAG)的 “里程碑算法”
      • LLM× 因果:当前最火的 “缝合怪” 方向
        • LLM 做因果发现(替代 / 辅助 NOTEARS、PC 算法)
        • LLM 辅助因果效应估计(搭配 DoWhy、EconML)
        • LLM 做反事实推理(结合 SCM 结构因果模型)
      • 额外补充:双重差分法

因果推断:

传统机器学习方法,如决策树、支持向量机、XGBoost等,都是独立、具体的算法工具,对应固定的建模方法。但因果推断并非单一算法或模型,而是一套通用的完整统计分析框架。

因果推断的核心是推断一个变量、干预措施或政策对另一变量的真实影响,用于量化各类行为、政策、疗法的实际效果。

因果推断的发展起源与理论体系

相较于成熟的统计学、机器学习学科,因果推断是一门新兴学科,整套标准化的理论与数学描述体系,仅在近30余年才逐步成型。在此之前,学界研究数据、机器学习问题时,甚至没有一套规范的数学语言来定义和描述因果问题。

20世纪80年代末至90年代初,三位学者奠定了因果推断的核心理论基础,三人基于不同研究领域搭建了差异化又相互关联的因果框架:

  • Rubin:流行病学家,从流行病学研究场景出发,构建了适配医学、公共卫生领域的因果分析框架;
  • Judea Pearl:计算机科学家,依托图模型、图网络的计算机思维,搭建了因果推断的图形化理论体系;
  • Donald Rubin:统计学家,聚焦计量经济学问题,以估计方程、等式估计为核心,形成了专属的因果描述体系。

在这里插入图片描述

理论诞生初期,因果推断并未受到学界重视,研究热度极低,直至近十几年,才逐步成为人工智能、数据分析领域的核心研究热点。

因果推断的爆火,与机器学习的迭代升级密不可分。早期机器学习的核心任务是模式识别,属于人工智能的基础阶段。如今人脸识别、手写识别等基础识别任务的算法精度已全面超越人类,模式识别技术基本成熟、趋于饱和。

机器学习由此进入全新发展阶段:不再局限于“识别已知模式”,开始追求逻辑推理、因果溯源。而因果推断正是支撑这一进阶研究的核心工具。

目前因果推断学科发展尚未成熟,没有统一的工业标准,但凭借不可替代的分析价值,已快速从科研领域落地到工业场景,是当下极具潜力的前沿研究方向。

比如大数据时代的到来,让因果推断的价值被彻底激活。

互联网平台(微信、淘宝等)积累的海量数据均为观测数据,是平台无干预、被动记录的用户行为数据。

这类数据仅能体现变量的表面关联,无法直接反映内在逻辑,传统统计方法和机器学习模型,只能挖掘数据相关性,无法区分虚假关联、真实关联与因果关系。而因果推断框架可以突破这一局限,从复杂的观测数据中拆解多变量之间的真实因果逻辑,解决传统统计方法无法攻克的难题。

因果推断并非颠覆传统统计与概率理论,而是对其的拓展与包容,两套体系可以兼容互补。


相关性 ≠ 因果性

统计学最重要的核心结论之一:数据的相关性,完全不等同于因果性。传统机器学习模型大多基于相关性建模,用于预测任务效果优异,但一旦用于决策判断,极易产生荒谬的结论。我们可通过多个真实案例直观理解:

预测不等于因果,因果关联更像是一种有向的路径,我们观察到的关联(总体关联)实际上是多种关联的混合体(包含了因果关联和混杂关联)。 —- 相关性只是关联性的一种类型,相关性衡量的是线性统计依赖性,而额外的混杂关联导致相关性不等于因果性。

  • 美国航空航天科研经费支出与人群窒息、上吊死亡人数高度逐年正相关,但二者无任何因果关系,减少科研经费无法降低死亡人数;

在这里插入图片描述

  • 尼古拉斯·凯奇主演电影数量与泳池溺水死亡人数高度相关,仅为数据巧合,无内在逻辑;

在这里插入图片描述

  • 国民奶酪消耗量与床单窒息死亡人数高度相关,属于虚假关联;

在这里插入图片描述


因果关系的验证逻辑与局限

判断变量间是否存在因果关系,最直接的方式是施加外部干预:人为改变某一变量,观察另一变量是否随之发生对应变化。

但现实中,大量场景无法开展干预实验,存在伦理、成本、可行性等诸多限制。例如,无法通过让孕妇主动吸烟的实验,验证吸烟对孕妇健康的影响。

因果推断的核心研究价值,正是在无法人为干预的场景下,依托观测数据,科学挖掘变量间的真实因果关系。

相关性模型的适用边界 . 基于相关性的传统模型并非无用,它有明确的适用边界:仅面向纯预测任务时,相关模型完全可用,不需要区分变量间因果方向。

举例:发电量与经济 GDP 高度相关,真实因果是经济活跃带动用电需求、推高发电量;但我们无需探明因果,仅凭发电量就能反向预测经济走势,该用法在预测场景合理。

但一旦跳出预测、落地到干预决策,直接依靠相关性指导行动,极易产生决策谬误。例如不能仅凭二者正相关,就通过强行加大发电量来拉动经济。

传统统计框架的局限:辛普森悖论

传统统计仅能分析数据间的相关性,无法识别变量间的真实因果关系,辛普森悖论就是该缺陷的典型体现。

辛普森悖论指:同一组数据中,整体汇总数据得出的变量关联结论,与按维度拆分后的分组结论完全相反。面对这类矛盾,传统统计方法无法判断哪一组结论有效,也就无法挖掘背后的因果逻辑。

案例 1:伯克利大学招生争议 1973 年,加州大学伯克利分校被指控研究生招生存在性别歧视。

  • 整体数据:男性申请者约 8000 人,录取率 44%;女性申请者约 4000 人,录取率 35%。单看整体,容易判定学校偏袒男性。
  • 按院系分组:拆分到各个院系后,绝大多数院系的女性录取率高于男性,仅少数院系男性录取率略高。

不同院系的报考热度、录取门槛差异很大,女性更倾向报考竞争激烈的专业。传统统计忽略了院系这一关键干扰因素,仅凭整体数据得出错误结论,无法判断是否存在真实歧视。

在这里插入图片描述

在这里插入图片描述

案例 2:锻炼量与胆固醇含量 研究锻炼量和人体胆固醇含量的关系,以年龄作为分组依据:

  • 整体数据:不区分年龄时,锻炼量越大,胆固醇含量越高,二者呈正相关。
  • 按年龄分组:固定年龄后,所有年龄段均表现为锻炼量越大,胆固醇含量越低,二者呈负相关。

造成结论反转的核心是年龄:年龄会同时影响锻炼习惯与胆固醇水平。高龄人群本身胆固醇基线更高,且普遍锻炼更多;低龄人群胆固醇偏低、锻炼也更少。传统统计无法剥离年龄的干扰,自然无法得出 “锻炼可以降低胆固醇” 的真实因果关系。

在这里插入图片描述

在这里插入图片描述

量化案例:药物疗效验证 研究某药物对疾病恢复的作用,以性别分组,是解释悖论原理的典型量化场景。

  • 分组数据(按性别划分)
    • 男性:87 人服药,恢复率 93%;270 人未服药,恢复率 87%。服药恢复率更高。
    • 女性:263 人服药,恢复率 73%;80 人未服药,恢复率 69%。服药恢复率同样更高。 分组结论:无论男女,该药物均可提升恢复概率,药物有效。
  • 整体数据(合并性别) 合并后服药、未服药各 350 人:服药人群恢复率 78%,未服药人群恢复率 83%。
  • 整体结论:不服药恢复效果更好,药物无效。 两组结论完全相悖,传统统计无法解释这一矛盾。

    在这里插入图片描述

    悖论原理分析

    变量设定—-设:

    X

    X

    X= 性别(1 = 男性,0 = 女性),

    Y

    Y

    Y= 是否恢复(1 = 恢复,0 = 未恢复),

    Z

    Z

    Z= 是否服药(1 = 服药,0 = 未服药)。

    定义:

    • A

      A

      A:全体服药人群恢复率,

      B

      B

      B:全体未服药人群恢复率

    • 1

      1

      1:男性服药恢复率,

      2

      2

      2:男性未服药恢复率

    • 3

      3

      3:女性服药恢复率,

      4

      4

      4:女性未服药恢复率 数据可总结为不等式:

      1

      >

      2

      3

      >

      4

      1>2、3>4

      1>23>4(分组服药有效),但

      A

      <

      B

      A<B

      A<B(整体服药无效)。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    概率本质 整体恢复率是分组概率的凸组合(线性加权),权重由各组样本占比决定:

    • A

      =

      Q

      1

      +

      (

      1

      Q

      )

      3

      A = Q\\cdot1 + (1-Q)\\cdot3

      A=Q1+(1Q)3

      Q

      Q

      Q 代表服药人群中男性的占比,取值范围

      [

      0

      ,

      1

      ]

      [0,1]

      [0,1]

    • B

      =

      Q

      2

      +

      (

      1

      Q

      )

      4

      B = Q'\\cdot2 + (1-Q')\\cdot4

      B=Q2+(1Q)4

      Q

      Q'

      Q 代表未服药人群中男性的占比。

    A

    A

    A 的数值落在

    1

    1

    1

    3

    3

    3 之间,

    B

    B

    B 的数值落在

    2

    2

    2

    4

    4

    4 之间。当权重分布发生变化,整体结果就可能和分组结果相反。

    本案例中,性别是典型的混淆变量,它同时影响两个关键环节:

    • 样本分布:服药人群里女性占比极高(

      Q

      Q

      Q 趋近于 0),使得整体服药恢复率

      A

      A

      A 更贴近女性服药恢复率

      3

      3

      3

    • 基线差异:无论是否服药,女性整体恢复能力天然弱于男性(

      3

      <

      1

      4

      <

      2

      3<1、4<2

      3<14<2)。

    大量恢复能力偏弱的女性集中在服药组,直接拉低了整体服药恢复率,掩盖了药物本身的效果。

    在这里插入图片描述

    总结

    解决思路:想要判断因果关系,必须对混淆变量进行控制(如按维度分组)。而系统识别混杂因子、校正数据偏差、推导因果机制,正是因果推断的核心任务。


    并非所有场景都能采信分组数据

    通过前文药物与性别的案例,我们得出结论:存在混淆变量时,需要通过分组子数据(subpopulation data)剔除干扰,才能得到真实因果关系。但这并不代表“分组数据永远正确、整体数据永远错误”。

    辛普森悖论的判定核心,不取决于数据形式,而取决于变量间的因果结构。同样是三变量结构,只要因果箭头关系改变,最终采信的数据维度就会完全反转,这也是传统统计框架最大的盲区。

    新案例:药物的双重作用机制

    本次案例包含三个核心变量:服药、血压、疾病恢复,变量的因果结构发生了本质变化: 药物对疾病恢复存在双重双向作用:

  • 直接负向作用(副作用):药物自带毒性,会直接阻碍患者身体恢复;
  • 间接正向作用:药物可降低患者血压,通过改善血压指标,间接促进疾病恢复(适配心血管类疾病)。
  • 简单来说:服药既伤身体,又能通过降压治病,最终疗效是两种作用的叠加结果。

    在这里插入图片描述 在这里插入图片描述

    我们按血压高低对人群分组,对比两组数据结论:

    按血压分组数据(细分样本)

    • 低血压人群:服药恢复率87%,未服药恢复率93%,服药效果更差;
    • 高血压人群:服药恢复率69%,未服药恢复率73%,服药效果更差。

    分组结论:无论高血压、低血压人群,服药均不利于病情恢复,药物无效且有害。

    整体汇总数据(全量样本) 整体数据样本均衡:服药、未服药患者各350人。服药群体恢复率更高,未服药群体恢复率更低。

    整体结论:服药可提升疾病恢复概率,药物整体有效。

    两组结论再次完全相悖,但本次场景中,正确结论为采信整体数据、舍弃分组数据,与前文性别混淆案例完全相反。

    本案例中,血压不是混淆变量,而是中介变量,这是和上一案例的本质区别:

    之前的案例中,性别是前置混淆变量,同时干预服药行为与恢复能力,分组可剔除干扰、还原真实因果;

    本案例中,血压是药物起效的中间传导路径:药物 → 降低血压 → 促进恢复。若强行按血压分组、固定血压值,会产生严重误差:

    分组后同组人群血压趋于一致,药物“降低血压、促进恢复”的正向间接作用被完全屏蔽,数据中仅剩余药物的毒性副作用。此时分组数据只体现了药物的单一负面影响,完全抹杀了药物的核心治疗价值,结论彻底失真。

    而整体数据保留了完整的因果链路,同时包含药物的副作用与降压治病的正向作用,还原了药物的真实综合疗效。

    结合两组正反辛普森悖论案例,可彻底暴露传统统计与传统概率计算的核心问题: 传统统计只看数据相关性、不看因果结构,无法区分变量是混淆变量还是中介变量,没有统一的判定标准:什么时候该分组、什么时候该看整体。 仅三个变量的简单场景,传统统计就会出现判定混乱、结论失真的问题,一旦变量数量增多、因果链路复杂化,传统方法将完全无法分析。

    因果推断的核心价值:跳出数据表象,通过标准化的因果框架识别变量角色、梳理因果链路,精准判断数据取舍规则,解决传统统计无法破解的悖论问题。


    图中的关联因果流动

    在尚未引入因果逻辑时,概率图模型的纯统计框架,核心是解决高维联合分布建模时参数爆炸的问题,并通过两套核心假设(局部马尔可夫假设、最小性假设)建立 图结构 与 变量概率分布、独立性 / 依赖性 的对应关系。

    传统联合分布建模的缺陷

    概率链式法则对于任意一组随机变量

    X

    1

    ,

    X

    2

    ,

    .

    .

    .

    ,

    X

    N

    X_1,X_2,…,X_N

    X1,X2,,XN,联合概率分布都可以通过概率链式法则无条件分解,这是概率论的基础公式:

    P

    (

    X

    1

    ,

    X

    2

    ,

    ,

    X

    N

    )

    =

    P

    (

    X

    1

    )

    P

    (

    X

    2

    X

    1

    )

    P

    (

    X

    3

    X

    1

    ,

    X

    2

    )

    P

    (

    X

    N

    X

    1

    ,

    X

    2

    ,

    ,

    X

    N

    1

    )

    P(X_1,X_2,\\dots,X_N) = P(X_1) \\cdot P(X_2|X_1) \\cdot P(X_3|X_1,X_2) \\cdots P(X_N|X_1,X_2,\\dots,X_{N-1})

    P(X1,X2,,XN)=P(X1)P(X2X1)P(X3X1,X2)P(XNX1,X2,,XN1)

    从第一个变量开始,后一个变量依次对前面所有变量做条件概率。以 4 个二元变量(变量仅取 0、1 两个值,现实中分类变量最常见形式)为例,分解式为:

    P

    (

    X

    1

    ,

    X

    2

    ,

    X

    3

    ,

    X

    4

    )

    =

    P

    (

    X

    1

    )

    P

    (

    X

    2

    X

    1

    )

    P

    (

    X

    3

    X

    2

    ,

    X

    1

    )

    P

    (

    X

    4

    X

    3

    ,

    X

    2

    ,

    X

    1

    )

    P(X_1,X_2,X_3,X_4)=P(X_1)P(X_2|X_1)P(X_3|X_2,X_1)P(X_4|X_3,X_2,X_1)

    P(X1,X2,X3,X4)=P(X1)P(X2X1)P(X3X2,X1)P(X4X3,X2,X1)

    核心问题:参数数量指数级增长

    概率模型的本质是学习分布中的未知参数,我们通过计算二元变量场景下的参数数量,直观理解缺陷:

    我们逐段计算 4 个二元变量对应的参数总量:

    P

    (

    X

    1

    )

    P(X_1)

    P(X1):仅 1 个变量,参数数 =

    1

    \\boldsymbol{1}

    1

    P

    (

    X

    2

    X

    1

    P(X_2|X_1

    P(X2X1):

    X

    1

    X_1

    X1 有 2 种取值,每种取值下对应一组

    X

    2

    X_2

    X2 的概率,参数数 =

    2

    ×

    1

    =

    2

    2 \\times 1 = \\boldsymbol{2}

    2×1=2

    P

    (

    X

    3

    X

    1

    ,

    X

    2

    )

    P(X_3|X_1,X_2)

    P(X3X1,X2)

    X

    1

    ,

    X

    2

    X_1,X_2

    X1,X2 组合共

    2

    2

    =

    4

    2^2=4

    22=4 种,参数数 =

    4

    ×

    1

    =

    4

    4 \\times 1 = \\boldsymbol{4}

    4×1=4

    P

    (

    X

    4

    X

    1

    ,

    X

    2

    ,

    X

    3

    )

    P(X_4|X_1,X_2,X_3)

    P(X4X1,X2,X3)

    X

    1

    ,

    X

    2

    ,

    X

    3

    X_1,X_2,X_3

    X1,X2,X3 组合共

    2

    3

    =

    8

    2^3=8

    23=8 种,参数数 =

    8

    ×

    1

    =

    8

    8 \\times 1 = \\boldsymbol{8}

    8×1=8 总参数数:

    1

    +

    2

    +

    4

    +

    8

    =

    15

    1+2+4+8 = \\boldsymbol{15}

    1+2+4+8=15

    推广到 N 个二元变量:

    最后一项

    P

    (

    X

    N

    X

    1

    ,

    ,

    X

    N

    1

    )

    P(X_N|X_1,\\dots,X_{N-1})

    P(XNX1,,XN1) 的参数数为

    2

    N

    1

    2^{N-1}

    2N1; 整体参数总数为

    2

    N

    1

    2^N -1

    2N1,属于指数增长。

    在现实场景(医疗指标、用户特征、图像像素等)中,变量数量常常达到几十、上百个,传统链式分解会导致:

    • 参数数量爆炸,无法存储、训练、估计;
    • 高维条件概率表极度稀疏,样本不足时模型完全失效。

    这就是传统联合分布建模的致命缺陷,也是贝叶斯网络被提出的核心动因:利用变量间的依赖结构,简化概率分解、减少参数。


    局部马尔可夫假设

    贝叶斯网络用有向无环图(DAG) 编码变量之间的依赖关系:图中节点 = 随机变量,有向边 = 直接依赖关系。而局部马尔可夫假设是连接 图结构 和 变量独立性 的核心规则。

    局部马尔可夫假设:在有向无环图(DAG)中,给定一个节点的所有父节点,该节点与自身所有非后代节点相互条件独立。

    在这里插入图片描述

    沿用 4 变量场景,假设 DAG 结构为:

    X

    1

    X

    2

    X

    3

    X

    4

    X_1 \\to X_2 \\to X_3 \\to X_4

    X1X2X3X4

    • X

      4

      X_4

      X4 的父节点只有

      X

      3

      X_3

      X3

    • X

      1

      X

      2

      X_1、X_2

      X1X2

      X

      4

      X_4

      X4 的非后代节点(

      X

      4

      X_4

      X4 没有子节点,无后代)。

    根据局部马尔可夫假设:给定父节点

    X

    3

    X_3

    X3

    X

    4

    X_4

    X4

    X

    1

    X

    2

    X_1、X_2

    X1X2 条件独立。因此原条件概率可直接简化:

    P

    (

    X

    4

    X

    1

    ,

    X

    2

    ,

    X

    3

    )

    =

    P

    (

    X

    4

    X

    3

    )

    P(X_4|X_1,X_2,X_3) = P(X_4|X_3)

    P(X4X1,X2,X3)=P(X4X3)

    局部马尔可夫假设的本质:用人工定义的图结构(先验知识),剔除变量间冗余的依赖关系,把高维条件概率降为低维,从根源上缓解参数爆炸问题。

    贝叶斯网络因子分解

    在局部马尔可夫假设的基础上,我们可以推导出贝叶斯网络专属的概率分解规则,这是贝叶斯网络进行概率计算的核心公式。

    贝叶斯网络因子分解:有向无环图(DAG)对应的变量联合分布,可分解为所有节点的条件概率乘积;每个节点的概率仅以其在图中的父节点为条件。

    通用公式:

    P

    (

    X

    1

    ,

    X

    2

    ,

    ,

    X

    N

    )

    =

    i

    =

    1

    N

    P

    (

    X

    i

      


      

    Pa

    (

    X

    i

    )

    )

    P(X_1,X_2,\\dots,X_N) = \\prod_{i=1}^N P\\big(X_i \\;\\big|\\; \\text{Pa}(X_i)\\big)

    P(X1,X2,,XN)=i=1NP(Xi

    Pa(Xi))

    Pa

    (

    X

    i

    )

    \\text{Pa}(X_i)

    Pa(Xi) 依旧表示节点

    X

    i

    X_i

    Xi 的全部父节点。

    案例对比(链式 DAG:

    X

    1

    X

    2

    X

    3

    X

    4

    X_1 \\to X_2 \\to X_3 \\to X_4

    X1X2X3X4

    • 原始链式分解(无结构约束):

    P

    =

    P

    (

    X

    1

    )

    P

    (

    X

    2

    X

    1

    )

    P

    (

    X

    3

    X

    1

    ,

    X

    2

    )

    P

    (

    X

    4

    X

    1

    ,

    X

    2

    ,

    X

    3

    )

    P=P(X_1)P(X_2|X_1)P(X_3|X_1,X_2)P(X_4|X_1,X_2,X_3)

    P=P(X1)P(X2X1)P(X3X1,X2)P(X4X1,X2,X3)

    • 贝叶斯网络分解(受 DAG 约束):

    P

    =

    P

    (

    X

    1

    )

    P

    (

    X

    2

    X

    1

    )

    P

    (

    X

    3

    X

    2

    )

    P

    (

    X

    4

    X

    3

    )

    P=P(X_1)P(X_2|X_1)P(X_3|X_2)P(X_4|X_3)

    P=P(X1)P(X2X1)P(X3X2)P(X4X3)

    计算参数数量:

    1

    +

    2

    +

    2

    +

    2

    =

    7

    1+2+2+2 = \\boldsymbol{7}

    1+2+2+2=7,远小于传统建模的 15 个参数,再次验证降参效果。

    局部马尔可夫假设

      


      

    \\iff

    贝叶斯网络因子分解

    这是贝叶斯网络的理论基石,两层含义:

  • 正向推导:若一个概率分布满足 DAG 的局部马尔可夫假设 → 该分布一定可以按照 父节点条件 做因子分解;
  • 反向推导:若一个分布可以按贝叶斯规则分解 → 该分布必然满足局部马尔可夫假设。
  • 二者是同一套规则的两种表达形式 局部马尔可夫假设:从变量独立性角度描述规则; 贝叶斯因子分解:从概率计算公式角度描述规则。 二者可以互相推导,完整数学证明可参考《Probabilistic Graphical Models》(Koller & Friedman)第三章。

    最小性假设

    局部马尔可夫假设解决了 参数化简、独立性判断 的问题,但存在模型歧义:同一个概率分布,可以对应多张不同的 DAG,且部分图的边失去实际意义。为了解决这个问题,学界补充了最小性假设。

    最小性假设的两部分构成

  • 第一部分(基础前提):分布必须满足局部马尔可夫假设;
  • 第二部分(核心约束):DAG 中直接相邻的节点(有边相连),必然存在统计依赖性。
  • 结合两部分约束,最小性假设从两个维度规范图与分布的匹配关系:

    • 约束边的语义:

    强制要求 有边 = 存在直接统计依赖 ,直接淘汰

    X

    Y

    X\\to Y

    XY

    X

    Y

    X、Y

    XY 独立 这类不合理情况,让图中的边具备实际意义。

    • 唯一选择最优图(最小边原则):

    对于同一个概率分布,在所有满足马尔可夫假设的 DAG 中,优先选择边数量最少的图。

    总结: 马尔可夫假设:负责解读统计独立性 —- 从 DAG 结构中快速判断:哪些变量无条件独立、哪些变量条件独立,服务于概率推理、计算化简。 最小性假设:负责解读统计依赖性 —- 保证 图上的边 对应真实的变量依赖,同时实现 一个分布尽可能对应唯一一张图,提升模型可解释性。

    补充:因果边假设

    因果的定义:若变量X发生变化,会主动引起变量Y随之发生变化,则称 X 是 Y 的原因。

    因果定义中的 “引起”,是一种机制层面的作用关系,不是单纯的数据同步。统计模型只能从数据中观测到 “同步变化”,而因果模型旨在挖掘背后的作用机制。 —— 统计相关性仅描述两两个变量同步变化,是双向,无方向的关系。因果性描述变量间主动改的干预影响,是单向有明确方向的关系。 —– 例:吸烟量增加(X)会导致肺病风险上升(Y),X 是Y的原因;但肺病发作不会反向导致人增加吸烟量(常规场景下),因果方向不可逆。

    因果图依然使用有向无环图(DAG) 作为载体,节点依旧对应随机变量,但我们需要为图中的有向边(箭头) 赋予全新的因果含义,这一规则就是因果边假设。

    因果边假设是整个因果图体系的灵魂:没有它,DAG 就只是普通的概率图;

    因果图建模的标准框架:

    DAG

    +

    马尔可夫假设

    +

    因果边假设

    \\boldsymbol{\\text{DAG} + \\text{马尔可夫假设} + \\text{因果边假设}}

    DAG+马尔可夫假设+因果边假设

  • 有向无环图(DAG)
  • 因果图的载体:节点存储研究变量,有向边承载变量间的作用关系;

    强制无环:现实世界不存在逻辑自洽的 “因果循环”(比如 “结果反过来成为原因” 会形成逻辑悖论),因此因果模型必须规避环路。

  • 马尔可夫假设(局部马尔可夫假设)
  • 完全继承自贝叶斯网络(统计层规则)。 作用:编码变量之间的统计独立性 / 关联性,简化联合概率分解、判断关联传播路径。

    因果作用一定会产生统计关联,因此统计层的独立性规则在因果模型中依然完全生效,无需抛弃。

  • 因果边假设
  • 因果层的核心新增规则。

    为有向边赋予单向因果语义,明确 “原因→结果” 的流向,实现从 “统计关联” 到 “因果推断” 的升级。

    最小性假设无需单独使用

    结合因果边假设,可推导出:因果边假设天然蕴含最小性假设的第二部分,同时,因果图框架本身已经包含马尔可夫假设(最小性假设第一部分)。

    根据因果边假设:有向边

    父节点

    子节点

    \\text{父节点} \\to \\text{子节点}

    父节点子节点代表 父节点是子节点的直接原因; 根据因果的定义:原因发生变化,必然会引起结果发生变化; 变量 “一者变化带动另一者变化”,在统计学上就等价于两个变量存在统计依赖性; 由此可得:只要 DAG 中存在有向边(存在直接因果),相邻节点就一定存在统计依赖。

    综上:最小性假设的两条约束,全部被因果图的基础假设覆盖,因此在因果建模中,不需要再单独引入、使用最小性假设。

    三大基础结构与关联传播规则

    所有复杂有向图均可拆解为三类三节点基础结构,关联性(统计依赖性)的传播规则是本节重点。

  • 链状结构:

    X

    1

    X

    2

    X

    3

    X_1 \\to X_2 \\to X_3

    X1X2X3

  • 通过因果边假设我们知道

    X

    1

    X_1

    X1

    X

    2

    X_2

    X2是相关的,而

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3通常也是相关的(统计依赖性,对称),关联性沿路径双向流动;

    以中间节点

    X

    2

    X_2

    X2为条件:路径被阻断,

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3条件独立;

    在这里插入图片描述

  • 分叉结构(共因结构):

    X

    1

    X

    2

    X

    3

    X_1 \\leftarrow X_2 \\to X_3

    X1X2X3

  • X

    1

    X_1

    X1

    X

    3

    X_3

    X3因共享共同原因

    X

    2

    X_2

    X2产生关联;

    以中间节点

    X

    2

    X_2

    X2为条件:路径被阻断,

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3条件独立;

    在这里插入图片描述

  • 不道德结构(对撞结构):

    X

    1

    X

    2

    X

    3

    X_1 \\to X_2 \\leftarrow X_3

    X1X2X3节点

    X

    2

    X_2

    X2称为对撞节点,该结构规则与前两者完全相反:

  • 对撞节点天然阻断路径,

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3相互独立;

    以对撞节点

    X

    2

    X_2

    X2(或其后代节点)为条件:路径被打通,诱导出新的关联性;

    实例解释: 设

    X

    1

    X_1

    X1= 外貌帅气、

    X

    3

    X_3

    X3= 性格善良、

    X

    2

    X_2

    X2= 处于恋爱状态。总体人群中,外貌与性格相互独立;若限定 “单身人群”(对

    X

    2

    X_2

    X2条件化),帅气的人大概率性格不友善,二者出现明显负相关。这是典型的选择偏误。

    如果对一个对撞节点的后代进行条件化会发生什么?

    在这里插入图片描述 当我们对一个对撞节点进行条件化时,他会在其父节点之间诱导出关联,这里

    X

    2

    X_2

    X2是一个对撞节点,而

    X

    4

    X_4

    X4是一个后代,这通常会在

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3之间诱导出关联

    X

    4

    X_4

    X4进行条件化,很可能会提供关于

    X

    2

    X_2

    X2的信息,等同于对

    X

    2

    X_2

    X2进行条件化的一个代理,而当我们对

    X

    2

    X_2

    X2进行条件化的时候,就会在

    X

    1

    X_1

    X1

    X

    3

    X_3

    X3之间诱导出关联。

    根据上面的内容,我们如何在三种不同的三节点图中,阻断路径?

    路径阻断判定规则(给定条件集Z)

    一条路径被Z阻断,满足以下任一条件:

    • 路径中存在链 / 分叉结构的中间节点,且该节点属于条件集Z;
    • 路径中存在对撞节点,且该节点及其所有后代均不属于条件集Z。

    不满足上述条件的路径,即为未阻断路径,关联性可自由传播。

    D-分离 (d-separation practice)

    若节点集X与节点集Y之间的所有路径都被条件集Z阻断,则称X和Y被Z D 分离。

    在这里插入图片描述

    D 分离典型例题(判断T与Y是否被 D 分离)

    以条件集(灰色节点)为判断依据,结论汇总:

  • 条件集为空集:T与Y未被分离,存在多条未阻断路径;
  • 仅以

    M

    1

    M_1

    M1为条件:仍存在其他未阻断路径,未被分离;

  • W

    2

    W_2

    W2 /

    W

    3

    W_3

    W3为条件:对应路径被阻断,被分离;

  • 同时以

    M

    1

    W

    2

    W

    3

    M_1、W_2、W_3

    M1W2W3为条件:被分离;

  • 仅以对撞节点

    X

    2

    X_2

    X2为条件:打通原阻断路径,未被分离;

  • 同时以

    X

    1

    X

    2

    X_1、X_2

    X1X2为条件:重新阻断路径,被分离;

  • 以W和对撞节点后代

    X

    2

    X_2

    X2为条件:

    X

    2

    X_2

    X2打通对撞路径,未被分离;

  • 仅以W为条件:对撞节点天然阻断路径,被分离。
  • 结构因果模型(SCM)与潜在结果框架(PO)

    SCM是一套从 “因果结构” 出发的理论,核心是回答 “为什么会发生”,以及 “如果主动干预,结果会怎么变”。

    普通数学等式具备对称性,无法表达因果方向;结构方程专门刻画因果关系,标准形式:

    X

    :

    =

    f

    (

    p

    a

    (

    X

    )

    ,

    U

    )

    X := f(pa(X), U)

    X:=f(pa(X),U)

    • p

      a

      (

      X

      )

      pa(X)

      pa(X):X 的直接原因(因果图中的父节点);

    • U:未观测随机噪声(外生变量),因果图中常用虚线节点表示;

    等式右侧为诱因、左侧为结果,明确单向因果关系。

    在这里插入图片描述

    图模型用于直观刻画因果结构,而结构因果模型通过严谨的数学函数,精准定义变量间的因果生成机制,二者一一对应,是因果推断的核心基础工具。

    现实世界的真实因果机制往往是复杂的物理、生化、社会过程,无法直接用于研究分析。因此我们需要对真实因果关系进行抽象简化,通过数学变量+函数关系刻画变量间的因果生成规则,这套简化的抽象模型,即为结构因果模型。

    SCM的核心价值:剥离复杂的真实物理过程,保留核心因果逻辑,实现因果关系的量化分析与可视化。

    包含三个核心概念:因果图(用箭头画出变量之间的因果关系),do算子(区分“观察到的关联”和“主动干预的因果效应”),以及 反事实 counterfactuals(如果当初不一样,现在会怎样)。

    如何理解观察到的关联和主动干预的因果效应之间的区别?

    不写 do 算的是观察到的相关性(被混杂变量污染,假因果)。 —— 写 do 算的是主动干预后的因果效应(消除混杂,真因果)。

    符号名称含义本质
    P(Y∣X=1) 条件概率(观察) 看到 X=1 时,Y 发生的概率 被动观察,包含混杂偏差
    P(Y∣do(X=1)) do 算子(干预) 强行让 X=1 时,Y 发生的概率 主动干预,消除混杂

    当你写

    d

    o

    (

    X

    )

    do(X)

    do(X) 时,强制切断所有指向 X 的箭头,让 X 不受任何其他变量影响!


    可以把SCM看成理论层,负责因果图、因果识别、能不能算因果。 后面PO可以看成统计层,负责效应计算、怎么算数值、ATE、后面详细展开。

    适用场景:当你需要理解变量间的因果链条、分析干预的长期影响、或者做反事实假设时,SCM 是更直观的框架。比如研究 “教育水平对收入的影响”,可以用因果图画出教育、家庭背景、能力、收入之间的关系,再用 do 算子消除混杂偏差。

    混杂变量与中介变量的区别是什么?

    简单来说,混杂变量(Confounder):是 第三者 ,同时影响原因和结果,让两者产生虚假的相关性,不是因果链条里的一环。中介变量(Mediator):是 中间环节,原因通过它影响结果,是因果链条里的必经之路。

    通过下面的图来详细展示两者之间的区别:

    在这里插入图片描述

    怎么在实际数据中理清它们?

    • 控制 Z 后,X 和 Y 的相关性消失:Z 大概率是混杂变量(消除了虚假关联)。
    • 控制 Z 后,X 和 Y 的相关性减弱但未消失:Z 大概率是中介变量(部分因果效应被切断了)。
    • 控制 Z 后,X 和 Y 的相关性完全消失:Z 是完全中介变量(X 对 Y 的影响全部通过 Z 传递)。

    潜在结果框架(PO)是一套从 “个体处理效应” 出发的统计框架,核心是回答 “这个干预到底有没有效果”,尤其擅长处理实验数据。

    它也包含三个核心概念:潜在结果(对每个个体,定义两个可能的结果),处理效应 treatment effect(计算两个结果的差值,代表干预对个体的真实影响),随机对照实验RCT与倾向得分(消除混杂偏差)

    观察类研究最大痛点就是 无法排除未观测混杂因子,而随机实验从根源上规避混杂。 协变量平衡:

    • 定义:所有协变量X在治疗组、对照组的条件分布一致,即

      P

      (

      X

      T

      =

      1

      )

      =

      P

      (

      X

      T

      =

      0

      )

      P(X|T=1)=P(X|T=0)

      P(XT=1)=P(XT=0)

    • 推导:随机化使治疗 T 与所有协变量 X 相互独立,两组协变量分布等价于边缘分布,自然达成平衡。
    • 结论:协变量平衡后,观测关联 = 因果效应,可用组间结果差异直接代表治疗的因果作用。

    在这里插入图片描述

    适用场景:当你需要量化干预的效果、做 A/B 测试、评估政策或药物的有效性时,PO 框架更直接。比如互联网公司的 A/B 测试,本质就是用 PO 框架计算新功能(处理)和旧功能(对照)对用户留存的平均处理效应。

    DoWhy、NOTERAS 与 LLM × 因果

    DoWhy 因果推理的“工程脚手架”

    DoWhy 是因果推理的“工程脚手架”,它把 Pearl 和 Rubin 两套框架包装好的 “因果分析流水线”,帮你从数据直接跑出因果效应,不用自己写复杂公式。

    包含四个步骤:(Model → Identify → Estimate → Refute)

    Model(建模)
    • Model(建模):把业务问题转化成因果模型,定义:Treatment 处理变量 T(你要研究的干预 / 动作(是否投放广告:1 = 投,0 = 不投))、Outcome 结果变量 Y、Confounders 混杂变量 X。

    比如下面这个因果图结构(Pearl框架)

    年龄/收入/季节(W) → 投放广告(T):
    年龄/收入/季节(W) → 销售额(Y)
    投放广告(T) → 销售额(Y)

    你只需要告诉代码:T/Y/W 是哪些列,它自动构建因果图;也可以手动画图,保证符合业务逻辑。

    Identify(识别)
    • Identify(识别):用后门 / 前门 / 工具变量准则,判断 “能不能从观测数据算出因果效应”,输出待估的因果量。

    日常拿到的表格数据,只能统计,比如【看到投放广告时销售额是多少】,对应普通条件概率

    P

    (

    Y

    T

    )

    P(Y|T)

    P(YT);但我们真正想要的是干预结果:

    P

    (

    Y

    d

    o

    (

    T

    )

    )

    P(Y\\mid do(T))

    P(Ydo(T))(强行控制广告投放后,销售额的分布)。

    P

    (

    Y

    d

    o

    (

    T

    )

    )

    P(Y\\mid do(T))

    P(Ydo(T)) 是因果层面的量,原始统计软件 / 常规回归算不出来,do 算子无法直接用观测数据计算。

    识别(Identify)的本质 就是依靠因果图 + Pearl 的规则,把带 do 算子的因果表达式,等价转换成只含普通条件概率的表达式。

    model 阶段只定义了变量和因果图结构;Identify 也还在理论阶段,没有碰数据,它只分析变量之间的连接关系,路径类型,不需要读取数据表,也不需要计算均值和方差。

    在识别这部分,需要补充模块化假设这个概念

    因果机制定义:在下图中,我们可以把因果图中某个特定变量

    X

    i

    X_i

    Xi 的因果机制看作是该变量所有父节点以及它们指向该变量的箭头。

    在这里插入图片描述 模块化假设的直观理解:

    对一组变量 S 执行干预时,仅改变集合 S 内变量的因果机制,其余所有变量的生成规则、条件分布保持不变,干预具有局部性。

    所以说因果机制是模块化的,改变一个变量的因果机制,不会改变任何其他变量的因果机制.

    在这里插入图片描述 假设观测数据是由左图生成的,右图是某个干预分布的图,挑选一个想要干预的变量,把这个变量设定为一个特定值。 —– 当我们查看干预数据时,它在因果图中将不再有父节点。 —– 在这个干预分布中,唯一发生变化的因子就是干预的那个变量的因子。(此外,称这个删除了指向被干预变量T的边的图为 操纵图)

    在这里插入图片描述

    这里需要补充关于后门,前门准则相关的概念帮助更好的理解:

    后门准则(Backdoor Criterion)

    后门准则最常用,所以这里先介绍:

    针对处理变量 T 和结果变量 Y:找到一组可观测变量集合 Z,满足两个条件:

  • Z 阻断所有 T 与 Y 之间的后门路径(混杂路径);
  • Z 不是 T 的后代节点(不会切断正向因果路径)。
  • 满足以上两条 → 后门准则成立,因果效应可识别。


    后门路径:从处理变量 T 出发、存在指向 T的入箭头、最终连通结果 Y 的路径,这类路径传递非因果的虚假关联;(

    T

    M

    Y

    T \\to M \\to Y

    TMY 是有向路径,因果关联沿着这条路径流动)。

    观测数据无法像干预一样直接删除 T 的入边,因此通过对协变量条件化阻断所有后门路径,从而分离出纯粹的因果效应。

    下图中 红色是后门路径,我们想要阻断这些路径,以便分离出因果关联。 —– 移除所有指向T的边,就相当于移除了所有这些后门路径。

    在这里插入图片描述

    在识别阶段需要进行do算子公式转换,输出【估计公式】:

    识别环节会推导出标准的后门调整公式(消去 do 算子):

    E

    [

    Y


    d

    o

    (

    T

    )

    ]

    =

    w

    E

    [

    Y


    T

    ,

    W

    =

    w

    ]

    P

    (

    W

    =

    w

    )

    \\mathbb{E}\\big[Y \\,\\big|\\, do(T)\\big] = \\sum_{w} \\mathbb{E}\\big[Y \\,\\big|\\, T, W=w\\big] \\cdot P(W=w)

    E[Y

    do(T)]=wE[Y

    T,W=w]P(W=w)

    • E

      [

      Y

      T

      ,

      W

      =

      w

      ]

      \\mathbb{E}[Y \\mid T, W=w]

      E[YT,W=w]:固定混杂变量 W(比如只看【夏季】这个分层),计算同一分层内,投放 / 不投放广告对应的平均销售额;

    • P

      (

      W

      =

      w

      )

      P(W=w)

      P(W=w):每个分层(季节 / 人群)在整体数据中的占比;

    • 最后按占比加权求和,得到纯干预效应。

    这就是识别环节最终输出的因果估计公式,下一步 Estimate 只需要把原始数据套进这个公式计算即可。

    下面举一个实际案例:钠摄入量对血压的因果效应

  • 案例设定
    • 结果 Y:收缩压(连续变量);处理 T:钠摄入量(二值化:>3.5mg 取 1,反之取 0);
    • 协变量:W(年龄,T 与 Y 的共同原因,混杂变量)、Z(尿蛋白排泄量,T 与 Y 的共同结果,碰撞节点);
    • 基准真值:模拟数据的真实平均处理效应 (ATE=1.05)。
  • 因果图结论
  • W 是需要调整的混杂变量,Z 是碰撞节点(T 的后代),绝对不能对 Z 做条件调整。

  • 不同调整策略的结果对比
    • 不做任何调整:估计值 = 5.33,误差 407%(混杂未处理,严重高估);
    • 调整全部协变量((W+Z)):估计值 = 0.85,误差 19%(碰撞偏差导致失真);
    • 仅调整混杂变量 W:估计值≈1.0502,误差 0.02%(估计无偏,微小误差仅来自抽样随机性)。

    在这里插入图片描述

    举一个反例,什么时候不满足后门准则,导致不可识别,流程终止:

    除了可观测的 W,还存在无法观测的隐藏混杂 U(比如用户天生消费偏好,数据里没有记录)。

    新因果图:

    U

    T

    ,
      

    U

    Y

    ,
      

    W

    T

    ,
      

    W

    Y

    ,
      

    T

    Y

    U\\rightarrow T,\\; U\\rightarrow Y,\\; W\\rightarrow T,\\; W\\rightarrow Y,\\; T\\rightarrow Y

    UT,UY,WT,WY,TY

    此时新增一条后门路径:

    T

    U

    Y

    T \\leftarrow U \\rightarrow Y

    TUY

    • U 观测不到,我们无法控制它;
    • 所有后门路径无法被完全阻断 → 不满足后门准则。

    ✅ 结果:DoWhy 在 Identify 阶段直接判定 不可识别,抛出提示:Cannot identify causal effect,整个分析流程提前终止,永远算不出可靠的因果效应。

    前门准则(Frontdoor Criterion)—— 应对【有隐藏混杂,但存在中介】

    当存在无法观测的隐藏混杂,后门准则失效,但 T 和 Y 之间有一条完整的中介链条(Chain 结构)时,使用前门准则。

    在这里插入图片描述

    比如研究:吸烟 (T) → 肺癌 (Y)

    • 问题:存在隐藏混杂 W(遗传体质),

      W

      T

      ,
        

      W

      Y

      W\\rightarrow T,\\;W\\rightarrow Y

      WT,WY,后门路径断不掉;

    • 但存在完整中介:吸烟 → 肺部焦油沉积 (M) → 肺癌

      (

      T

      M

      Y

      (T\\rightarrow M\\rightarrow Y

      (TMY)。

    前门准则利用中介变量 M,绕开隐藏混杂,把含 do 的表达式转换成观测可计算的公式,实现因果效应识别。

    在上面这张图中,我们有沿着有向路径

    T

    M

    Y

    T\\rightarrow M\\rightarrow Y

    TMY流动的因果关联,同时,有沿着后门路径

    T

    W

    Y

    T\\rightarrow W\\rightarrow Y

    TWY 的非因果关联。

    前门调整的直观理解是 所有因果关联都通过点M来传递,如果我们只关注M 就可以分离出因果关联。一共分成三步:

  • 识别T对M的因果效应
  • 我们想要处理

    P

    (

    m

    d

    o

    (

    t

    )

    )

    P(m\\mid do(t))

    P(mdo(t)),把它变成一个不包含do算符的表达式。从图中可以看出 T到M没有后门路径。

    在这里插入图片描述

  • 识别M对Y的因果效应
  • 在图中,可以通过对T做条件化,阻断路径

    M

    T

    W

    Y

    M\\rightarrow T\\rightarrow W\\rightarrow Y

    MTWY

    在这里插入图片描述

  • 将两者结合起来,识别T对Y的因果效应
  • 在这里插入图片描述

    前门准则使用条件如下所示:

    • 完全中介:T到Y的所有因果路径都经过M;
    • T

      M

      T \\to M

      TM 无未阻断的后门路径;

    • M

      Y

      M \\to Y

      MY 的所有后门路径,均可通过对T条件化阻断。

    在这里插入图片描述


    边界分析

    前面的内容一直是在“无混杂”的设定下进行研究的(条件可交换性,可忽略性或后门准则),下图中W是被观测的(所有的混杂因素),随后可以使用调整公式来识别因果效应,但如果我们有一些未观测的混杂因素U呢?

    在这里插入图片描述

    这样我们还需要对U进行 调整,但我们无法调整它,因为没有被观测到。所以我们只能调整观测W得到的估计值,与真实ATE(调整W+U)的差距;这部分的重点是如何量化图中两个等式的接近程度。通过弱假设缩小因果效应的可信范围,解决未观测混杂下的因果推断难题。


    下面将介绍一些前置概念:

    关于非参数边界的研究,很大程度上源于这样一个观点:无未观测混杂(No Unobserved Confounding)的假设是完全不现实的。

    Manski定义了一个非常有用的概念,叫做“可信度递减定律”:假设强度 ↑ → 识别精度 ↑ → 结论可信度 ↓

    • 强假设(完全无混杂):精准识别单点ATE,精度最高,但假设脱离现实,可信度低;
    • 弱假设(无假设/单调性假设):仅能识别ATE区间(集合识别/部分识别),精度下降,但假设更贴合现实,结论可信度更高。

    在这里插入图片描述

    无混杂是一个非常强的假设,当我们有了它就可以使用调整公式识别空间中的一个特定点。换句话说,如果我们有无混杂假设,并且我们有无限的数据,从而可以完美的估计这些期望值,那么我们就可以将平均处理效应精确地识别为空间中的一个点。

    然而,Manski认为无混杂假设太强了,所以他希望做更弱的假设,而更弱的假设不允许我们识别出那一个点是什么,但我们可以确定它位于某个点和另一个点之间,它位于哪个区间内。这与精确识别形成对比,这也称为部分识别(不依赖强无混杂假设,通过最弱假设划定ATE可信区间,假设越弱、结论越可信、精度越低;)。

    无混杂假设这样的强假设会导致结论的可信度没有那么高,所以,我们可以通过提出更弱的假设来获得更可信的结论,作为交换,需要牺牲精度,最终只能识别一个区间而不是一个点。

    观测-反事实分解

    所有边界分析的通用核心公式,基于期望线性性质,把每一项都拆成两个部分(先以某个变量为条件,将其边缘化),把

    E

    [

    Y

    (

    1

    )

    ]

    \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) }\\right\\rbrack

    E[Y(1)] 拆成

    P

    (

    T

    =

    1

    )

    E

    [

    Y

    (

    1

    )

    T

    =

    1

    ]

    +

    P

    (

    T

    =

    0

    )

    E

    [

    Y

    (

    1

    )

    T

    =

    0

    ]

    P\\left( {T = 1}\\right) \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) \\mid T = 1}\\right\\rbrack + P\\left( {T = 0}\\right) \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) \\mid T = 0}\\right\\rbrack

    P(T=1)E[Y(1)T=1]+P(T=0)E[Y(1)T=0]

    同时借助一致性假设,把

    E

    [

    Y

    (

    1

    )

    T

    =

    1

    ]

    \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) \\mid T = 1}\\right\\rbrack

    E[Y(1)T=1] 替换成

    E

    [

    Y

    T

    =

    1

    ]

    \\mathbb{E}\\left\\lbrack {Y \\mid T = 1}\\right\\rbrack

    E[YT=1] ,对于

    Y

    (

    0

    )

    {Y\\left( 0\\right) }

    Y(0)同理。

    将ATE拆解为可观测项(可直接从数据计算) + 反事实项(不可观测、需要边界约束),所有边界推导均通过约束反事实项的上下限实现。

    在这里插入图片描述

    通用设定:潜在结果 Y₀、Y₁ 有界,取值范围 [A, B]。无任何约束时:ATE ∈ [A-B, B-A],区间长度 = 2(B-A)

    无假设边界(最弱假设:仅约束潜在结果范围)

    为得到边界,对分解式中的反事实项直接取全局最值约束,因为我们无法直接观测到他们。

    E

    [

    Y

    (

    1

    )

    Y

    (

    0

    )

    ]

    =

    π

    E

    [

    Y

    T

    =

    1

    ]

    +

    (

    1

    π

    )

    E

    [

    Y

    (

    1

    )

    T

    =

    0

    ]

    \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) – Y\\left( 0\\right) }\\right\\rbrack = \\pi \\mathbb{E}\\left\\lbrack {Y \\mid T = 1}\\right\\rbrack + \\left( {1 – \\pi }\\right) {\\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) \\mid T = 0}\\right\\rbrack }

    E[Y(1)Y(0)]=πE[YT=1]+(1π)E[Y(1)T=0]

    π

    E

    [

    Y

    (

    0

    )

    T

    =

    1

    ]

    (

    1

    π

    )

    E

    [

    Y

    T

    =

    0

    ]

    ]

    \\left. {-\\left. {\\pi {\\mathbb{E}\\left\\lbrack {Y\\left( 0\\right) \\mid T = 1}\\right\\rbrack } – \\left( {1 – \\pi }\\right) \\mathbb{E}\\left\\lbrack {Y \\mid T = 0}\\right\\rbrack }\\right\\rbrack }\\right.

    πE[Y(0)T=1](1π)E[YT=0]] where

    π

    P

    (

    T

    =

    1

    )

    \\pi \\triangleq P\\left( {T = 1}\\right)

    πP(T=1)

    目标是 为平均处理效应找到一个上界和一个下界,其中,不需要对观测项做任何处理(可以直接从观测分布中计算出来)。随后,对反事实项进行上界估计,因为结果变量的上界是b,所以在下面第一个公式中可以直接把b放进去作为上界。同理,需要对负的反事实项进行上界估计,因为是一个负值,要取可能得到的最小结果值,所有结果的下界都是a,代入到公式中。

    E

    [

    Y

    (

    1

    )

    Y

    (

    0

    )

    ]

    π

    E

    [

    Y

    T

    =

    1

    ]

    +

    (

    1

    π

    )

    b

    π

    a

    (

    1

    π

    )

    E

    [

    Y

    T

    =

    0

    ]

    \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) – Y\\left( 0\\right) }\\right\\rbrack \\leq \\pi \\mathbb{E}\\left\\lbrack {Y \\mid T = 1}\\right\\rbrack + \\left( {1 – \\pi }\\right) b – {\\pi a} – \\left( {1 – \\pi }\\right) \\mathbb{E}\\left\\lbrack {Y \\mid T = 0}\\right\\rbrack

    E[Y(1)Y(0)]πE[YT=1]+(1π)bπa(1π)E[YT=0]

    E

    [

    Y

    (

    1

    )

    Y

    (

    0

    )

    ]

    π
      

    E

    [

    Y

    T

    =

    1

    ]

    +

    (

    1

    π

    )

      

    a

    π
      

    b

    (

    1

    π

    )

      

    E

    [

    Y

    T

    =

    0

    ]

    \\mathbb{E}\\left\\lbrack {Y\\left( 1\\right) – Y\\left( 0\\right) }\\right\\rbrack \\geq \\pi \\;\\mathbb{E}\\left\\lbrack {Y \\mid T = 1}\\right\\rbrack + \\left( {1 – \\pi }\\right) \\;a – \\pi \\;b – \\left( {1 – \\pi }\\right) \\;\\mathbb{E}\\left\\lbrack {Y \\mid T = 0}\\right\\rbrack

    E[Y(1)Y(0)]πE[YT=1]+(1π)aπb(1π)E[YT=0]

    接下来,如何计算边界范围?

    在上面的 观测-反事实分解 中的最后提到,ATE 必须介于b-a和a-b之间,即平凡的区间长度是2(b-a)。而将 无假设边界 中的上界和下界进行减法运算会得到区间长度为(b-a),即平凡区间长度的一半。

    所以,在不做任何额外假设的情况下,可以将平凡 ATE 区间长度减半。

    在这里插入图片描述 举一个实例:

    潜在结果被限定在 0 到 1 之间,处理概率是 0.3,处理组的y均值是0.9,对照组的y均值是0.2,将这些值代入到无假设边界后计算结果,如下图所示。

    在这里插入图片描述

    理想情况下,我们希望区间完全在正侧或者负侧,这样就会知道是否存在因果效应。如果区间包含 0 ,那么可能存在零因果效应。

    固有缺陷:无假设边界必然包含0,无法判断因果效应的正负、无法确定是否存在真实因果效应。

    我们还可以引入非正向单调治疗响应假设,MTS、OTS 系列假设及组合边界策略。完整数学推导、数值演算细节不再展开,各类假设对应的区间推导逻辑、适用场景可自行查阅因果边界分析相关资料深入学习。


    工具变量准则(Instrumental Variable, IV)—— 高混杂场景补充方案

    观察性研究中,常存在无法获取数据的未观测混杂因素

    U

    U

    U,导致后门调整等依赖观测混杂的方法失效。在此前内容中,已介绍多类处理方案:

  • 点识别方法:前门调整、无混杂子变量准则、do 演算规则。其中后门准则、前门准则都是无混杂子变量准则的特例,do 演算可以识别所有可识别的因果估计量,但都无法直接处理 “T-Y 之间存在未观测后门路径” 的典型场景。
  • 区间与敏感性方法:集合识别(给出因果效应的上下界区间,而非点估计值)、敏感性分析(基于假设的未观测混杂强度,量化估计偏差)。
  • 工具变量思路:引入工具变量

    Z

    Z

    Z,利用

    Z

    Z

    Z引发的、不受未观测混杂影响的处理

    T

    T

    T的变异,分离出

    T

    T

    T对结果

    Y

    Y

    Y的因果效应。

  • 在这里插入图片描述

    比如研究 【线上问诊时长 (T)】对【病情康复效果 (Y)】的影响

    隐藏混杂 U:患者自身基础健康水平(观测不到,同时影响问诊时长和康复效果); 选取工具变量:患者到医院的距离 (IV)

    距离只影响【愿不愿意花长时间问诊】

    (

    I

    V

    T

    (IV\\rightarrow T

    (IVT); 距离不会直接影响病情康复(和 Y 无直接关联)。

    利用工具变量的特性,同样可以完成 do 算子的公式转换,实现效应识别。

    工具变量的定义与三大核心假设

    一个变量

    Z

    Z

    Z要成为合格的工具变量,必须满足三个基础假设,对应因果图的结构约束:

  • 相关性假设(Relevance)
    • 含义:

      Z

      Z

      Z对处理变量

      T

      T

      T存在因果效应,

      Z

      Z

      Z

      T

      T

      T的直接原因。

    • 图形对应:因果图中存在

      Z

      T

      Z \\rightarrow T

      ZT的有向边。

    • 作用:保证

      Z

      Z

      Z能够带来

      T

      T

      T的有效变异,是识别成立的数值前提(避免估计时分母为 0)。

    在这里插入图片描述

  • 排除限制假设(Exclusion Restriction)
    • 含义:

      Z

      Z

      Z对结果

      Y

      Y

      Y的所有因果效应,完全通过处理

      T

      T

      T中介传导;

      Z

      Z

      Z不存在对

      Y

      Y

      Y的直接效应,也没有其他不经过

      T

      T

      T的影响路径。

    • 图形对应:不存在

      Z

      Z

      Z直接指向

      Y

      Y

      Y的边,也没有其他绕过

      T

      T

      T的从

      Z

      Z

      Z

      Y

      Y

      Y的路径。

    • 本质:将

      Z

      Z

      Z排除在

      Y

      Y

      Y的生成机制之外,

      Z

      Z

      Z的变化只能通过

      T

      T

      T传导至

      Y

      Y

      Y

    在这里插入图片描述

  • 工具变量无混杂性假设(Instrument Unconfoundedness)
    • 含义:

      Z

      Z

      Z

      Y

      Y

      Y的效应不存在未观测混杂,即不存在无法阻断的、从

      Z

      Z

      Z

      Y

      Y

      Y的后门路径。

    • 图形对应:没有未观测变量同时影响

      Z

      Z

      Z

      Y

      Y

      Y;若存在观测混杂

      W

      W

      W,可通过控制

      W

      W

      W阻断后门路径,此时

      Z

      Z

      Z称为条件工具变量。

    • 推论:该假设下,未观测混杂

      U

      U

      U与工具变量

      Z

      Z

      Z相互独立。

    在这里插入图片描述

    工具变量的核心局限:无法非参数识别平均处理效应

    在完全非参数框架下(不对变量的结构方程、因果机制形式做任何假设),工具变量无法识别总体平均处理效应(ATE)。

    因果识别的本质是:能不能只观测数据的概率分布,算出我们想要的因果量(比如 ATE)。

    非参数识别有一个必要条件:所有从处理

    T

    T

    T到结果

    Y

    Y

    Y的后门路径都必须可阻断。而工具变量的典型场景中,

    T

    T

    T

    Y

    Y

    Y之间存在经过未观测变量

    U

    U

    U的后门路径,无法阻断,因此不满足非参数识别的必要条件。

    前门准则可以实现非参数识别,而工具变量不可以,二者的图结构与识别逻辑有本质差异。

    • 前门准则的结构:

      T

      M

      Y

      T \\rightarrow M \\rightarrow Y

      TMY,同时

      T

      U

      Y

      T \\leftarrow U \\rightarrow Y

      TUY(U 未观测)。它的逻辑是:通过观测到的中介变量 M,把 T→Y 的因果路径拆成两段:T→M:没有混杂(U 不影响 M),直接识别;M→Y:混杂路径

      M

      T

      U

      Y

      M \\leftarrow T \\leftarrow U \\rightarrow Y

      MTUY可以通过控制 T 阻断,也能识别。 —— 两段相乘就得到 T 对 Y 的总 ATE,全程不需要任何函数形式假设,因此是非参数识别总体 ATE。

    • 标准工具变量的因果图是这样的:

      Z

      T

      U

      Y

      Z \\rightarrow T \\leftarrow U \\rightarrow Y

      ZTUY , Z 只碰 T,不碰 Y 的中介路径。它没有办法把 T←U→Y 这条后门路径整体消除,只能借 Z 的 “外生推力”,提取 T 中一部分干净的变异 —— 这部分变异只对应受 Z 影响的人群,覆盖不了全体,因此只能得到局部效应。

    线性假设下,为什么就能识别总体 ATE?

    既然非参数下拿不到总体 ATE,那经典计量里用 IV 估计的 “因果效应” 是什么?答案是:通过施加强假设,把 “局部效应” 强行等价于 “总体效应”。

    线性结构方程

    Y

    =

    δ

    T

    +

    α

    U

    U

    Y = \\delta T + \\alpha_U U

    Y=δT+αUU 看起来只是个函数形式假设,实则是一个极强的因果假设:

    所有人的处理效应都一模一样,T 每增加 1 单位,Y 一定增加

    δ

    \\delta

    δ,和个体特征、自身水平完全无关。

    既然所有人的因果效应都是

    δ

    \\delta

    δ,那 “局部人群的效应” 自然就等于 “总体平均效应(ATE)”。这时候工具变量估计出来的

    δ

    \\delta

    δ,就可以直接解释为总体 ATE。

    其中

    δ

    \\delta

    δ就是

    T

    T

    T

    Y

    Y

    Y的因果效应(同时也是 ATE);

    Z

    Z

    Z不出现在方程中,由排除限制假设保证。

    沃尔德估计量 / 协方差形式

    • 推导逻辑:从

      Z

      Z

      Z取不同值时

      Y

      Y

      Y的期望差出发,代入线性结构方程,利用工具变量无混杂性消去

      U

      U

      U项,最终解出因果效应

      δ

      \\delta

      δ

    • 识别公式:

      δ

      =

      E

      [

      Y

      Z

      =

      1

      ]

      E

      [

      Y

      Z

      =

      0

      ]

      E

      [

      T

      Z

      =

      1

      ]

      E

      [

      T

      Z

      =

      0

      ]

      \\delta = \\frac{E[Y|Z=1] – E[Y|Z=0]}{E[T|Z=1] – E[T|Z=0]}

      δ=E[TZ=1]E[TZ=0]E[YZ=1]E[YZ=0]

    • 直观解释:分子是

      Z

      Z

      Z

      Y

      Y

      Y的因果效应(

      Z

      Z

      Z无混杂,可直接用观测期望差表示),分母是

      Z

      Z

      Z

      T

      T

      T的因果效应;二者相除,约掉

      Z

      Z

      Z的影响,即可分离出

      T

      T

      T

      Y

      Y

      Y的因果效应。

    因为效应同质,Z 对 Y 的影响,完全是 “Z 改变了多少人的 T” × “每个人的处理效应 δ” 带来的。也就是:

    ITT

    =

    一阶段效应

    ×

    δ

    \\text{ITT} = \\text{一阶段效应} \\times \\delta

    ITT=一阶段效应×δ

    连续变量的协方差形式

    δ

    =

    C

    o

    v

    (

    Y

    ,

    Z

    )

    C

    o

    v

    (

    T

    ,

    Z

    )

    \\delta = \\frac{Cov(Y,Z)}{Cov(T,Z)}

    δ=Cov(T,Z)Cov(Y,Z),本质和沃尔德估计量是同一个东西,只是用协方差语言重写了一遍。


    两阶段最小二乘估计(2SLS)

    2SLS 是实践中最常用的 IV 估计方法,核心就是 “提纯”:

    • 第一阶段:用

      T

      T

      T

      Z

      Z

      Z做线性回归,得到

      T

      T

      T的预测值

      T

      ^

      \\hat{T}

      T^(给定

      Z

      Z

      Z

      T

      T

      T的条件期望),

      T

      ^

      \\hat{T}

      T^只保留了 T 中由 Z 解释的、干净的外生变异,把和 U 相关的混杂变异都剔除了。

    • 第二阶段:用 Y 对

      T

      ^

      \\hat{T}

      T^回归。因为

      T

      ^

      \\hat{T}

      T^已经和 U 无关了,没有混杂,所以回归系数就是无偏的因果效应 δ。

    T

    ^

    \\hat{T}

    T^仅由

    Z

    Z

    Z决定,剔除了

    T

    T

    T中由未观测混杂

    U

    U

    U带来的变异;因此

    T

    ^

    \\hat{T}

    T^

    Y

    Y

    Y之间不存在未观测混杂,第二阶段回归可得到无偏的因果效应。 —— 同样,只有在线性同质假设下,这个系数才等于总体 ATE。

    非参数下能识别什么?—— 局部平均处理效应(LATE)

    如果我们不想接受 “所有人效应都一样” 这么强的假设,工具变量还能识别什么?这就是 Angrist & Imbens 提出的 LATE 定理:加上单调性假设后,可以非参数识别 “依从者” 群体的平均处理效应。

    前置概念

    潜在处理:类比潜在结果,定义

    T

    1

    T_1

    T1为干预

    Z

    =

    1

    Z=1

    Z=1时个体的处理取值,

    T

    0

    T_0

    T0为干预

    Z

    =

    0

    Z=0

    Z=0时个体的处理取值。根据个体对工具变量的反应,将总体分为 4 个层级:

    人群类型Z=0 时的处理状态T0​Z=1 时的处理状态T1​ 行为含义
    依从者 0 1 听工具的话:让做就做,不让做就不做
    违抗者 1 0 和工具反着来:让做偏不做,不让做偏做
    总是接受者 1 1 不管工具说啥,都接受处理
    从不接受者 0 0 不管工具说啥,都不接受处理

    你永远没法从观测数据里判断某个人属于哪一类—— 你只能看到他在实际 Z 取值下的 T,看不到他在另一个 Z 下的反事实 T。这是因果推断基本问题的延伸。

    单调性假设

    对所有个体,都满足

    T

    1

    T

    0

    T_1 \\geq T_0

    T1T0,即工具变量只会非负向地影响个体接受处理的概率。

    工具变量只会提高人接受处理的概率,不会降低。

    这个假设的唯一作用,就是从逻辑上排除 “违抗者”。没有违抗者,剩下三类人的效应就可以被分开。这是实现非参数识别的关键一步。

    LATE 的识别结果

    L

    A

    T

    E

    =

    E

    [

    Y

    Z

    =

    1

    ]

    E

    [

    Y

    Z

    =

    0

    ]

    E

    [

    T

    Z

    =

    1

    ]

    E

    [

    T

    Z

    =

    0

    ]

    LATE = \\frac{E[Y|Z=1] – E[Y|Z=0]}{E[T|Z=1] – E[T|Z=0]}

    LATE=E[TZ=1]E[TZ=0]E[YZ=1]E[YZ=0]

    我们再看沃尔德公式的分子

    E

    [

    Y

    Z

    =

    1

    ]

    E

    [

    Y

    Z

    =

    0

    ]

    E[Y|Z=1]-E[Y|Z=0]

    E[YZ=1]E[YZ=0]

    • 总是接受者:Z 变了,他们的 T 没变(一直是 1),根据排除限制(Z 不能直接影响 Y),他们的 Y 也不会变,对分子贡献为 0;
    • 从不接受者:同理,T 一直是 0,Y 也不会变,贡献为 0;
    • 违抗者:单调性假设已经排除了,不用考虑;
    • 只有依从者:Z 从 0 变 1,他们的 T 从 0 变 1,因此他们的 Y 会发生变化 —— 这个变化就是他们的个体处理效应。

    所以分子的全部含义就是:依从者的平均处理效应 × 依从者在总体中的占比。再看分母

    E

    [

    T

    Z

    =

    1

    ]

    E

    [

    T

    Z

    =

    0

    ]

    E[T|Z=1]-E[T|Z=0]

    E[TZ=1]E[TZ=0]

    同理,只有依从者的 T 会随 Z 变化,所以分母的全部含义就是:依从者在总体中的占比。

    分子分母一除,占比约掉,就得到了依从者群体的平均处理效应,也就是 LATE。

    • 关键结论:
      • 形式上与沃尔德估计量完全一致,但估计的不再是总体 ATE,而是依从者群体的平均处理效应。
      • 它不需要任何函数形式假设,只依赖 IV 的三大基础假设(相关性、排除限制、工具外生)+ 单调性假设。

    LATE 的局限性

    • 依赖单调性:如果现实中存在违抗者,单调性不成立,LATE 估计就会有偏。
    • 仅局部有效:你得到的只是 “听工具话” 的那部分人的效应,不能直接推广到总体。比如用 “出生季度” 当工具估计教育回报,得到的只是 “因为义务教育法多读了一年书” 的那群人的回报,不是所有人的教育回报。
    • 人群不可定位:你知道有这么一群依从者,也算出了他们的平均效应,但你没法指出具体谁是依从者 —— 效应对应的人群解释力很弱。

    Estimate(估计)
    • Estimate(估计):用倾向得分匹配、IPTW、双重机器学习等,算出 ATE(平均处理效应)。

    identify 解决能不能算因果效应的问题,确定混杂可以被消除,就输出一套可以观测数据计算的数学公式。 —- 而 estimate 依托PO解决 具体算出因果效应是多少。

    调用 Rubin 潜在结果框架,把识别好的公式,用统计方法算出数值。


    预备概念:ATE 与 CATE(条件平均处理效应)

    • ATE 平均处理效应

    A

    T

    E

    =

    E

    [

    Y

    (

    1

    )

    Y

    (

    0

    )

    ]

    ATE=\\mathbb{E}[Y(1)-Y(0)]

    ATE=E[Y(1)Y(0)]

    调整公式:

    A

    T

    E

    =

    E

    W

    [

    E

    [

    Y

    T

    =

    1

    ,

    W

    ]

    E

    [

    Y

    T

    =

    0

    ,

    W

    ]

    ]

    ATE=\\mathbb{E}_W\\big[\\mathbb{E}[Y|T=1,W]-\\mathbb{E}[Y|T=0,W]\\big]

    ATE=EW[E[YT=1,W]E[YT=0,W]],W为充分调整协变量集。

    • CATE 条件平均处理效应

    以指定协变量取值

    X

    =

    x

    X=x

    X=x为条件:

    C

    A

    T

    E

    (

    x

    )

    =

    E

    [

    Y

    (

    1

    )

    Y

    (

    0

    )

    X

    =

    x

    ]

    CATE(x)=\\mathbb{E}[Y(1)-Y(0)|X=x]

    CATE(x)=E[Y(1)Y(0)X=x] 调整公式:

    C

    A

    T

    E

    (

    x

    )

    =

    E

    W

    X

    =

    x

    [

    E

    [

    Y

    T

    =

    1

    ,

    W

    ,

    X

    =

    x

    ]

    E

    [

    Y

    T

    =

    0

    ,

    W

    ,

    X

    =

    x

    ]

    ]

    CATE(x)=\\mathbb{E}_{W|X=x}\\big[\\mathbb{E}[Y|T=1,W,X=x]-\\mathbb{E}[Y|T=0,W,X=x]\\big]

    CATE(x)=EWX=x[E[YT=1,W,X=x]E[YT=0,W,X=x]]

    X不一定是全部观测协变量;若X包含全部协变量,CATE 也叫个体化平均处理效应(ITE 期望);

    在这里插入图片描述

    条件结果建模类估计(COM 系列)

    A

    T

    E

    =

    E

    W

    [

    E

    [

    Y

    T

    =

    1

    ,

    W

    ]

    E

    [

    Y

    T

    =

    0

    ,

    W

    ]

    ]

    ATE=\\mathbb{E}_W\\big[\\mathbb{E}[Y|T=1,W]-\\mathbb{E}[Y|T=0,W]\\big]

    ATE=EW[E[YT=1,W]E[YT=0,W]] 这个是平均处理效应的调整公式,左边是因果估计量,右边是统计估计量。我们需要将统计估计量转化为实际的估计值。

    我们需要一个估计器,它能接收数据并给出那个估计值。 —– 接下来我们需要建模这些条件期望(可以使用任何可以建模条件期望的统计模型,比如 scikit learn ,前提是它能最小化真实值和预测值之间的均方误差,甚至可以使用深度神经网络这种复杂模型来建模这个条件期望)

    通过最小化均方误差训练得到我们想要的估计器。 为了近似关于W 的期望,我们对所有数据样本 i 求和,然后用 i 来索引 W。 —- 这样我们就得到使用条件结果建模来估计 ATE 的方法,下面的

    μ

    \\mu

    μ是条件结果模型。

    在这里插入图片描述

    每个样本都有两个潜在结果,但是在现实世界中,同一个用户只能出现其中一种状态,个体效应无法直接计算,所以只能退而求其次,计算群体平均效应 ATE(全体样本的平均值)。 —- 因果推断的根本问题:单个个体无法同时观测两种潜在结果,从数据视角看,个体的一组潜在结果永久缺失,因此个体层面的因果效应永远无法直接观测。该问题可等价表述为因果推断的缺失数据难题。 —- 解决思路是:放弃无法观测的个体因果效应,通过总体期望计算平均处理效应(ATE),即总体所有个体因果效应的均值。

    需要注意一个误区:原始均值差 ≠ ATE

    前者的差值混杂了年龄收入等干扰因素,只是观测关联,不是真实因果。而 Rubin 框架的目标,就是剥离混杂,精准估算出

    E

    [

    Y

    (

    1

    )

    ]

    \\mathbb{E}[Y(1)]

    E[Y(1)]

    E

    [

    Y

    (

    0

    )

    ]

    \\mathbb{E}[Y(0)]

    E[Y(0)] 这两个全局均值。

    S-Learner(标准 COM 估计器)

    只训练单个统一模型

    μ

    ^

    (

    T

    ,

    W

    )

    \\hat\\mu(T,W)

    μ^(T,W),输入处理变量

    T

    +

    T+

    T+调整协变量W,直接预测结果Y;再用样本均值近似期望,积分边缘化协变量,算出 ATE/CATE。

  • ATE 的 S-Learner 估计式
  • A

    T

    E

    ^

    =

    1

    N

    i

    =

    1

    N

    [

    μ

    ^

    (

    1

    ,

    W

    i

    )

    μ

    ^

    (

    0

    ,

    W

    i

    )

    ]

    \\widehat{ATE}=\\frac{1}{N}\\sum_{i=1}^N \\Big[\\hat\\mu(1,W_i)-\\hat\\mu(0,W_i)\\Big]

    ATE

    =N1i=1N[μ^(1,Wi)μ^(0,Wi)]

  • CATE(x) 的 S-Learner 估计式
  • 仅筛选

    X

    i

    =

    x

    X_i=x

    Xi=x的子集样本

    N

    x

    N_x

    Nx求均值:

    C

    A

    T

    E

    ^

    (

    x

    )

    =

    1

    N

    x

    X

    i

    =

    x

    [

    μ

    ^

    (

    1

    ,

    W

    i

    ,

    X

    i

    )

    μ

    ^

    (

    0

    ,

    W

    i

    ,

    X

    i

    )

    ]

    \\widehat{CATE}(x)=\\frac{1}{N_x}\\sum_{X_i=x} \\Big[\\hat\\mu(1,W_i,X_i)-\\hat\\mu(0,W_i,X_i)\\Big]

    CATE

    (x)=Nx1Xi=x[μ^(1,Wi,Xi)μ^(0,Wi,Xi)]

    其中

    N

    x

    N_x

    Nx表示该求和中此类样本的数量,如果只有一个这样的样本,你仍然可以把它作为那个CATE的估计量。

    上面这个估计量(条件平均处理效应估计量)可能存在什么问题? —— 高维协变量下向零偏移

    S-Learner 只训练单个预测模型 ,训练损失只有预测任务的 MSE:

    L

    =

    E

    [

    (

    Y

    μ

    ^

    (

    T

    ,

    W

    )

    )

    2

    ]

    \\mathcal L = \\mathbb E\\left[(Y-\\hat\\mu(T,W))^2\\right]

    L=E[(Yμ^(T,W))2],这个模型是纯统计预测模型,没有任何因果约束。 如果

    μ

    ^

    \\hat\\mu

    μ^里T权重趋近 0:

    μ

    ^

    (

    1

    ,

    W

    )

    μ

    ^

    (

    0

    ,

    W

    )

    \\hat\\mu(1,W)\\approx\\hat\\mu(0,W)

    μ^(1,W)μ^(0,W),二者相减得到的效应值绝对值被强行压缩,真实因果效应再大,估计出来的数值也会无限靠近 0。

    假设我们在高维数据中使用条件平均处理效应估计,W表示高维向量,T是标量(一维),我们需要拟合一个模型

    μ

    ^

    \\hat\\mu

    μ^来拟合这些数据。

    在这里插入图片描述

    模型可能会忽略标量T,因为T只是模型输入多的高维向量中的一个维度。在给定其他多个维度的情况下(比如100个维度),模型可能不需要T就能很好地预测Y。因此,在神经网络或线性回归中,这意味着分配给T的权重为0(或者只是分配非常小的值给这些权重)。

    模型可能会忽略处理变量,这会导致ATE或CATE的估计值偏向于零。 —— 那么,我们如何才能确保模型不会忽略变量T呢?

    T-Learner(GCOM,分组 COM 估计)

    拆分两个独立模型,彻底避免模型忽略T:

    • μ

      ^

      1

      (

      W

      )

      \\hat\\mu_1(W)

      μ^1(W):只用

      T

      =

      1

      T=1

      T=1处理组样本训练,仅输入W预测Y;

    • μ

      ^

      0

      (

      W

      )

      \\hat\\mu_0(W)

      μ^0(W):只用

      T

      =

      0

      T=0

      T=0对照组样本训练,仅输入W预测Y。

    ATE 估计式:

    A

    T

    E

    ^

    =

    1

    N

    i

    =

    1

    N

    [

    μ

    ^

    1

    (

    W

    i

    )

    μ

    ^

    0

    (

    W

    i

    )

    ]

    \\widehat{ATE}=\\frac{1}{N}\\sum_{i=1}^N \\Big[\\hat\\mu_1(W_i)-\\hat\\mu_0(W_i)\\Big]

    ATE

    =N1i=1N[μ^1(Wi)μ^0(Wi)]

    在这里插入图片描述 每个模型拟合不同的处理组数据,我们不需要将T作为输入提供给这些网络,使用两个网络本身就编码了T的信息。

    在常规的因果学习模型估计中,单一模型是用所有数据拟合的,而GCOM的第一个模型用所有处理组数据拟合,完全不使用对照组数据,而第二个模型只使用对照组的数据。

    而使用GCOM方法也会带来一个问题: 两组样本分开训练,每个模型可用样本量减半,估计方差大幅上升,数据利用效率低。

    混合架构改进:TARNET

    融合 S-Learner(全部数据训练共享表征)+ T-Learner(分头预测)优势的神经网络结构:

    在这里插入图片描述

  • 共享主干网络:全部样本

    (

    T

    =

    0

    /

    1

    (T=0/1

    (T=0/1)共同训练,把高维W映射为低维共享表征;

  • 双分支预测头:表征层后拆分两个独立输出头,处理组头仅用

    T

    =

    1

    T=1

    T=1样本微调、对照组头仅用

    T

    =

    0

    T=0

    T=0样本微调;

  • 不用把T输入网络,分支结构天然编码处理信息;
  • 共享层充分利用全量数据压低方差,分支结构保留 T-Learner 不遗漏T的优点。

    X-Learner(高效分组学习)

    进一步优化 T-Learner 样本利用率,分三步实现全量数据复用,适合组间样本量不均衡场景:

  • 拟合基础模型
  • μ

    ^

    1

    (

    X

    )

    \\hat\\mu_1(X)

    μ^1(X)(处理组训练)、

    μ

    ^

    0

    (

    X

    )

    \\hat\\mu_0(X)

    μ^0(X)(对照组训练);

  • 反事实插补,构造伪 ITE 样本
  • 真实 ITE

    τ

    i

    \\tau_i

    τi无法直接观测,我们借助第一步训练好的结果模型,预估出缺失的那个反事实结果,强行算出一个近似的个体效应估计值,这个人工构造出来的、不是真实观测得到的效应,就叫做伪 ITE 样本。

    • 处理组个体:观测

      Y

      i

      (

      1

      )

      Y_i(1)

      Yi(1),用

      μ

      ^

      0

      (

      X

      i

      )

      \\hat\\mu_0(X_i)

      μ^0(Xi)预估缺失反事实

      Y

      i

      (

      0

      )

      Y_i(0)

      Yi(0),得到

      τ

      ^

      i

      1

      =

      Y

      i

      (

      1

      )

      μ

      ^

      0

      (

      X

      i

      )

      \\hat\\tau_i^1=Y_i(1)-\\hat\\mu_0(X_i)

      τ^i1=Yi(1)μ^0(Xi)

    • 对照组个体:观测

      Y

      i

      (

      0

      )

      Y_i(0)

      Yi(0),用

      μ

      ^

      1

      (

      X

      i

      )

      \\hat\\mu_1(X_i)

      μ^1(Xi)预估缺失反事实

      Y

      i

      (

      1

      )

      Y_i(1)

      Yi(1),得到

      τ

      ^

      i

      0

      =

      μ

      ^

      1

      (

      X

      i

      )

      Y

      i

      (

      0

      )

      \\hat\\tau_i^0=\\hat\\mu_1(X_i)-Y_i(0)

      τ^i0=μ^1(Xi)Yi(0)

    这个人真实处理后结果 − 模型预估他不处理会有的结果 = 估算出的个人处理效应。这批伪 ITE 集合记作

    {

    τ

    ^

    i

    (

    1

    )

    ,

    X

    i

    }

    T

    i

    =

    1

    \\{\\hat\\tau_i^{(1)},X_i\\}_{T_i=1}

    {τ^i(1),Xi}Ti=1

  • 加权融合两个 CATE 模型
  • 分别用全部伪 ITE 样本训练

    τ

    ^

    1

    (

    X

    )

    \\hat\\tau_1(X)

    τ^1(X)

    τ

    ^

    0

    (

    X

    )

    \\hat\\tau_0(X)

    τ^0(X)

    用权重函数

    g

    (

    X

    )

    [

    0

    ,

    1

    ]

    g(X)\\in[0,1]

    g(X)[0,1]加权融合最终 CATE:

    C

    A

    T

    E

    ^

    (

    x

    )

    =

    g

    (

    x

    )

    τ

    ^

    1

    (

    x

    )

    +

    (

    1

    g

    (

    x

    )

    )

    τ

    ^

    0

    (

    x

    )

    \\widehat{CATE}(x)=g(x)\\cdot\\hat\\tau_1(x)+(1-g(x))\\cdot\\hat\\tau_0(x)

    CATE

    (x)=g(x)τ^1(x)+(1g(x))τ^0(x)

    实操常用倾向性评分作为权重

    g

    (

    X

    )

    g(X)

    g(X)

    核心优势T-Learner 只用一组样本建模一组效应,X-Learner 两组样本互相插补反事实,完整利用全部观测数据,有限样本下效率显著更高。

    DoWhy 支持的主流方法

    DoWhy 把 Rubin PO 框架封装成了工程化流水线,整个调用流程分为 5 步,全程自动执行,你只需要选择估计方法。

  • 接收来自 Model 和 Identify 阶段的信息:变量定义,通过后门准则完成可识别转换。
  • 复用PO框架,遵循两个假设:无未观测混杂 和 正性假设(任意一类人群,都有两个潜在结果,不会出现某类人群只在一组)
  • 选择评估方法,选用不同统计方法,基于混杂变量W,为每个样本预估出它缺失的那个潜在结果。
  • 计算全局期望。
  • 求差值,输出ATE。
  • 倾向得分匹配:给投广告的用户,匹配一个【一模一样】的没投广告的用户。
  • 当混杂变量很多(年龄,收入,季节,地域等),直接按所有变量精确查找会非常困难。

    于是引入 倾向得分

    e

    (

    W

    )

    =

    P

    (

    T

    =

    1

    W

    )

    e(W) = P(T=1 \\mid W)

    e(W)=P(T=1W) ,把多维混杂特征压缩成一维概率值,用这个概率做匹配。

    在 T = 0 的池子里,找倾向得分几乎完全相等的用户做配对, 用配对用户的销售额近似当前用户缺失的

    Y

    i

    (

    0

    )

    Y_i(0)

    Yi(0).

    配对完成后,两组样本的混杂分布基本一致,模拟随机分组的效果;再计算两组均值差,得到ATE。

    优点是 逻辑直观,解释性强。但是匹配会剔除部分无法配对的样本,损失数据,高维混杂下效果下降。

    在这里插入图片描述

    What is the intuition behind why we can condition on

    e

    (

    W

    )

    e(W)

    e(W) instead of W?

    一维标量完整编码了协变量W对处理分配T的全部因果机制。二元处理下,给定W时T的条件分布完全由

    e

    (

    W

    )

    e(W)

    e(W)描述:

    P

    (

    T

    =

    1

    W

    )

    =

    e

    (

    W

    )

    ,

    P

    (

    T

    =

    0

    W

    )

    =

    1

    e

    (

    W

    )

    \\mathbb{P}(T=1|W)=e(W),\\quad \\mathbb{P}(T=0|W)=1-e(W)

    P(T=1∣W)=e(W),P(T=0∣W)=1e(W),仅靠

    e

    (

    W

    )

    e(W)

    e(W)就能完整还原

    W

    T

    W \\to T

    WT这条混杂路径的信息,不需要完整高维向量W。 无混杂性传递:若W是充分调整集,满足潜在结果与处理独立

    Y

    (

    0

    )

    ,

    Y

    (

    1

    )


     ⁣ ⁣ ⁣

    T

    W

    Y(0),Y(1) \\perp\\!\\!\\!\\perp T \\mid W

    Y(0),Y(1)TW;由于

    e

    (

    W

    )

    e(W)

    e(W)完全概括W对T的影响,控制

    e

    (

    W

    )

    e(W)

    e(W)等价于阻断所有W带来的后门混杂路径,因此独立关系依然成立:

    Y

    (

    0

    )

    ,

    Y

    (

    1

    )


     ⁣ ⁣ ⁣

    T

    e

    (

    W

    )

    Y(0),Y(1) \\perp\\!\\!\\!\\perp T \\mid e(W)

    Y(0),Y(1)Te(W)

    What is attractive about conditioning on

    e

    (

    W

    )

    e(W)

    e(W) as opposed to W?

    • 维度灾难大幅缓解:原始协变量W可以是几十、上百维高维向量,而

      e

      (

      W

      )

      e(W)

      e(W)只是单一标量(0~1 之间的概率值),把高维混杂信息压缩到一维空间。

    • 极大改善重叠性(positivity):高维W空间中,处理组与对照组样本几乎很难找到完全匹配的协变量组合,极易出现某类W下只有处理 / 只有对照,违背正定性; ——— 一维

      e

      (

      W

      )

      e(W)

      e(W)的取值空间只是一条 0 到 1 的直线,处理、对照组样本的评分分布更容易出现重叠区间,大幅降低正定性违背的概率。

    • 简化匹配 / 分层操作:分层、匹配估计时,一维数值对比、分组远比高维向量距离计算简单,实操计算成本更低。

    Why does this not solve positivity issues when W is high-dimensional?

    倾向性评分只是转移了问题,没有消除根本矛盾:

    • e

      (

      W

      )

      e(W)

      e(W)是不可观测的理论真值,现实中我们必须通过观测数据、以高维W为输入拟合模型(逻辑回归、机器学习等)得到估计值

      e

      ^

      (

      W

      )

      \\hat e(W)

      e^(W)。 ——– 拟合(\\hat e(W))的过程本身就要处理高维协变量W带来的维度诅咒。

    • 高维W下,样本在协变量空间极度稀疏:部分协变量组合只有处理组 / 只有对照组样本,模型无法学到可靠的

      e

      ^

      (

      W

      )

      \\hat e(W)

      e^(W);会出现

      e

      ^

      (

      W

      )

      0

      \\hat e(W)\\approx0

      e^(W)0

      e

      ^

      (

      W

      )

      1

      \\hat e(W)\\approx1

      e^(W)1的极端权重,依然破坏正定性。

    高维协变量带来的稀疏、重叠不足问题,从 “直接控制W” 阶段,转移到了 “拟合倾向性评分模型” 阶段,底层数据稀疏问题没有消失,因此无法彻底解决正定性难题。

  • IPTW 加权:给样本加权,消除混杂偏差。
  • 不走样本配对,而是给每一条样本赋予权重,修正两组样本的分布偏差。 同样是基于倾向得分

    e

    (

    W

    )

    e(W)

    e(W)

    • 处理组(投广告)权重:

      1

      e

      (

      W

      )

      \\displaystyle \\frac{1}{e(W)}

      e(W)1

    • 对照组(不投广告)权重:

      1

      1

      e

      (

      W

      )

      \\displaystyle \\frac{1}{1-e(W)}

      1e(W)1

    通过权重修正后,加权后的样本分布等价于随机实验分组,此时加权后的组均值,就可以直接近似真实的

    E

    [

    Y

    (

    1

    )

    ]

    \\mathbb{E}[Y(1)]

    E[Y(1)]

    E

    [

    Y

    (

    0

    )

    ]

    \\mathbb{E}[Y(0)]

    E[Y(0)]

    在这里插入图片描述

    举个例子来更好的理解上面的内容:平台更愿意给高收入用户投广告(高收入人群点击率、转化更高)而高收入用户本身,消费能力就更强,天然销售额更高。 —— 这会导致 投广告的处理组中,高收入用户占比极高,不投广告的对照组中,低收入用户占比极高。 —– 均值差中混入了收入差异带来的偏差。 ——- 借助权重来实现真正的随机试验:谁越容易被分到处理组,就压低谁的权重;谁越难被分到处理组、却意外入选,就拉高谁的权重。

    What happens if the estimated propensity score for some unit is 1 or 0?

    真实倾向性评分

    e

    (

    W

    )

    (

    0

    ,

    1

    )

    e(W) \\in (0,1)

    e(W)(0,1) 是正定性(重叠性) 的核心假设,要求对任意协变量组合 W,同时存在处理、对照样本。 ——-

    e

    ^

    (

    W

    i

    )

    =

    0

    /

    1

    \\hat e(W_i)=0/1

    e^(Wi)=0/1 说明该协变量分层下完全不存在另一组样本,正定性假设彻底失效,我们没有观测数据用来构造该个体的反事实,IPW 方法从理论上不再适用。

    What happens if the estimated propensity score is near 1 or 0?

    • 权重极端放大,样本单点主导估计:

      e

      ^

      (

      W

      i

      )

      0

      \\hat e(W_i) \\approx 0

      e^(Wi)0 的处理组样本:

      w

      i

      =

      1

      /

      e

      ^

      (

      W

      i

      )

      w_i=1/\\hat e(W_i)

      wi=1/e^(Wi) 会变成极大值;

      e

      ^

      (

      W

      i

      )

      1

      \\hat e(W_i) \\approx 1

      e^(Wi)1 的对照组样本:

      w

      i

      =

      1

      /

      (

      1

      e

      ^

      (

      W

      i

      )

      )

      w_i=1/(1-\\hat e(W_i))

      wi=1/(1e^(Wi)) 会变成极大值。 ——- 这个极端权重样本会在加权求和中占据绝对主导地位,整个 ATE 估计结果几乎由这一个样本决定,严重破坏估计稳定性。

    • 估计方差爆炸,标准误差大幅上升:方差和权重的平方正相关,超大权重会让 IPW 估计量的抽样方差急剧膨胀:(1)置信区间会变得极宽,统计推断完全失效;(2)有限样本下估计值会剧烈波动,抽样结果不可靠。
    • 有限样本系统性偏差:即便大样本下 IPW 具备一致性,只要存在趋近 0/1 的评分,有限样本偏差会非常严重:极端权重样本的观测噪声会被成倍放大,最终 ATE 估计偏离真实因果效应。

    补充:常用缓解手段

  • 倾向性评分截断(trimming):剔除评分低于下界(如 0.01)、高于上界(如 0.99)的极端样本;
  • 正则化逻辑回归:拟合评分模型时增加正则惩罚,避免预测概率趋近 0/1;
  • 稳定逆概率加权(SIPW):标准化权重缩小极端值幅度;
  • 改用双重稳健估计(DR),同时结合结果模型,降低极端权重带来的波动。
  • 双重机器学习 DML:高维数据专用,更精准
  • 专门应对 高维混杂场景:比如有几十 / 上百个混杂特征(用户标签、行为、设备、地域、历史订单等),此时匹配、加权效果都会变差,改用机器学习拟合复杂关系。

    —- 第一重学习:用所有混杂变量 W 预测结果 Y,把 “混杂能解释的销售额” 剥离,得到结果残差(剔除干扰后的纯销售额); —- 第二重学习:用所有混杂变量 W 预测处理 T(是否投广告),得到处理残差(剔除干扰后的纯广告投放行为); —- 最后用 “处理残差” 回归 “结果残差”,回归系数就是 ATE。

    机器学习强大的拟合能力,会自动学习高维混杂和

    Y

    (

    1

    )

    /

    Y

    (

    0

    )

    Y(1)/Y(0)

    Y(1)/Y(0) 的复杂关系,精准预估每个样本的两个潜在结果,再计算群体均值差。

    Refute(反驳 / 验证)
    • Refute(反驳 / 验证):自动做安慰剂检验、随机混杂、子集稳健性,看结果是不是瞎蒙的。

    因果结论无法 证明是对的,只能 证明没被推翻, 这是 DoWhy 最强大的功能:自动用多种方法挑战你的结果,如果挑战失败,说明结果可信。有 3 个最常用的反驳测试:

  • 安慰剂检验(最核心)
  • 把 T 换成随机假干预(不再根据业务规则分配广告,而是纯随机给用户标记)。ATE 立刻变成 0 说明靠谱。ATE 依然很大 说明是假因果。

    换成完全随机的假干预,依然算出明显效应,说明原结果根本不是因果,只是数据本身的波动、整体上涨趋势、抽样巧合等虚假关联。

  • 添加随机混杂变量
  • 加一个毫无关系的假变量。ATE 几乎不变说明靠谱。ATE 剧烈波动说明结果错误。

    判断结果会不会被无关变量轻易带偏,排查模型是否脆弱、混杂处理是否不彻底。 —- 一个凭空生成的随机变量,不属于真实因果链路,不该对最终因果效应产生任何影响。

  • 子集验证
  • 判断效应是全局系统性规律,还是仅仅由某一小部分样本、异常值造成的偶然结果。

    对全量数据集做拆分,生成多个数据子集,如果结论靠谱,不同子集算出的效应应该整体接近、波动平缓。


    容易误解的地方

    → DoWhy 是 “用” 因果,不是 “懂” 因果。

    • ✅ 学会:因果分析的完整流程、怎么写因果图、怎么跑因果效应、怎么验证结果。
    • ❌ 误解:以为因果推理 = 调库 + 跑代码;不知道背后的 SCM、do – 算子、识别理论。

    NOTEARS:因果发现(学 DAG)的 “里程碑算法”

    DoWhy 是已知因果图来计算因果效应(用因果),NOTEARS只有观测数据,自动学习因果图(找因果)。给出一堆纯观测数据(比如用户的年龄、收入、广告投放、销售额),自动从数据里找出所有变量的因果关系,画出标准的 DAG(有向无环图)。

    此前的因果推断,均是在已知因果图的前提下,基于因果假设推断因果效应;而因果发现要解决的是 “因果图未知” 的问题:直接从观测数据中学习出因果图结构,得到因果图后,再复用此前的因果推断方法估计因果效应。

    传统因果发现(PC/GES)为什么不行?

    论文地址:DAGs with NO TEARS: Continuous Optimization for Structure Learning

    论文代码地址:github

    在 NOTEARS 之前(NeurIPS 2018),所有因果发现算法都是离散图搜索(暴力穷举),速度极慢;只能处理简单数据,不能和深度学习结合;结果不稳定容易出错。

    这就是 NOTEARS 要解决的核心痛点。

    传统算法卡壳的根源是:DAG 要求【无环】,这是一个离散约束(有环 = 1,无环 = 0,非黑即白)离散约束无法用梯度下降优化(AI 训练的核心工具)。

    NOTEARS 的神来之笔是把【图是否无环】这个非黑即白的离散问题,变成了连续可微的数学函数。

    通过下面三个核心部分:

  • 加权邻接矩阵 W
  • 所有因果图,都能写成一个矩阵 W(加权邻接矩阵):

    • 行 / 列 = 所有变量(收入、广告、销售额…)
    • W[i][j] = 数值 → 代表 变量 i → 变量 j 的因果强度
    • W[i][j] = 0 → 代表没有因果边

    举个例子(3 个变量:收入、广告、销售额):

    收入 广告 销售额
    收入 [0 0.8 0.7] 收入→广告,收入→销售额
    广告 [0 0 0.5] 广告→销售额
    销售额 [0 0 0 ]

    这个矩阵 W,就是因果图本身。

  • 无环约束函数 h (W)=0:连续化的关键
  • NOTEARS 发明了一个连续可微函数 h (W):

    h

    (

    W

    )

    =

    tr

    (

    e

    W

    )

    d

    h(W) = \\text{tr}(e^W) – d

    h(W)=tr(eW)d

    • h(W) = 0 → 矩阵 W 对应的图一定是无环 DAG
    • h(W) > 0 → 矩阵 W 对应的图有环,无效
    • h (W) 是光滑连续的 → 可以用梯度下降优化!

    这个公式到底在干嘛,为什么它能判断有没有环,为什么 h(W)=0 ⇔ DAG ?

    e

    W

    e^W

    eW(矩阵指数) 把 “走几步能从 i 到 j” 全部算出来

    tr (・) 迹 :就是对角线元素加起来:

    tr

    (

    M

    )

    =

    M

    11

    +

    M

    22

    +

    M

    33

    \\text{tr}(M) = M_{11} + M_{22} + M_{33}

    tr(M)=M11+M22+M33 , 对角线 = 从 i 出发回到 i 的路径(环)

    tr

    (

    e

    W

    )

    \\text{tr}(e^W)

    tr(eW)就是:所有长度、所有节点上,回到自己(环)的总强度

    • 没有环(DAG):

      tr

      (

      e

      W

      )

      =

      d

      \\text{tr}(e^W)=d

      tr(eW)=d

    • 有环:

      tr

      (

      e

      W

      )

      >

      d

      \\text{tr}(e^W) > d

      tr(eW)>d

    例子 1:无环 DAG(A→B→C) .

    W

    =

    [

    0

    1

    0

    0

    0

    1

    0

    0

    0

    ]

    W = \\begin{bmatrix} 0 & 1 & 0 \\\\ 0 & 0 & 1 \\\\ 0 & 0 & 0 \\end{bmatrix}

    W=

    000100010

    .

    W

    2

    =

    W

    ×

    W

    W^2 = W \\times W

    W2=W×W含义:从 i 走两步到 j 的路径数 / 强度。

    W

    A

    C

    2

    =

    1

    W^2_{AC}=1

    WAC2=1

    A

    B

    C

    A\\to B\\to C

    ABC(两步),其余都是 0 .

    W

    2

    =

    [

    0

    0

    1

    0

    0

    0

    0

    0

    0

    ]

    W^2=\\begin{bmatrix} 0 & 0 & 1 \\\\ 0 & 0 & 0 \\\\ 0 & 0 & 0 \\end{bmatrix}

    W2=

    000000100

    . 最长只有两步,所以

    W

    3

    =

    0

    W^3=0

    W3=0

    e

    W

    =

    I

    +

    W

    +

    W

    2

    2

    !

    +

    W

    3

    3

    !

    +

    e^W = I + W + \\frac{W^2}{2!} + \\frac{W^3}{3!} + \\dots

    eW=I+W+2!W2+3!W3+把 0 步、1 步、2 步、3 步、… 所有路径强度,全部加权求和。 除以 (2!,3!) 不是为了复杂,是为了让这个无穷级数收敛,让

    e

    W

    e^W

    eW 光滑、可导(才能用梯度下降),除以阶乘不改变 “路径总和” 的含义,只是让数学性质更好。 .

    e

    W

    =

    I

    +

    W

    +

    W

    2

    2

    e^W = I + W + \\frac{W^2}{2}

    eW=I+W+2W2 具体矩阵: .

    e

    W

    =

    [

    1

    1

    1

    2

    0

    1

    1

    0

    0

    1

    ]

    e^W= \\begin{bmatrix} 1 & 1 & \\frac12 \\\\ 0 & 1 & 1 \\\\ 0 & 0 & 1 \\end{bmatrix}

    eW=

    1001102111

    . 所以

    e

    W

    e^W

    eW 对角线全是 1(只有 0 步也就是对角矩阵 I 的时候有)

    tr

    (

    e

    W

    )

    =

    1

    +

    1

    +

    1

    =

    3

    =

    d

    \\text{tr}(e^W)=1+1+1=3=d

    tr(eW)=1+1+1=3=d

    h

    (

    W

    )

    =

    3

    3

    =

    0

    h(W)=3-3=0

    h(W)=33=0

    例子 2 : 变量有环 .

    W

    =

    [

    0

    0

    1

    1

    0

    0

    0

    1

    0

    ]

    W= \\begin{bmatrix} 0 & 0 & 1 \\\\ 1 & 0 & 0 \\\\ 0 & 1 & 0 \\end{bmatrix}

    W=

    010001100

    这个图有环:A→C→B→A .

    W

    2

    =

    [

    0

    1

    0

    0

    0

    1

    1

    0

    0

    ]

    W^2= \\begin{bmatrix} 0 & 1 & 0 \\\\ 0 & 0 & 1 \\\\ 1 & 0 & 0 \\end{bmatrix}

    W2=

    001100010

    . 看对角线:还是 0(两步回不来自己) .

    W

    3

    =

    [

    1

    0

    0

    0

    1

    0

    0

    0

    1

    ]

    W^3= \\begin{bmatrix} 1 & 0 & 0 \\\\ 0 & 1 & 0 \\\\ 0 & 0 & 1 \\end{bmatrix}

    W3=

    100010001

    关键:三步刚好形成环,回到自己! . 现在算

    e

    W

    =

    I

    +

    W

    +

    W

    2

    /

    2

    !

    +

    W

    3

    /

    3

    !

    +

    e^W = I + W + W^2/2! + W^3/3! + \\dots

    eW=I+W+W2/2!+W3/3!+ 只看对角线:

    I 对角线:1,1,1 W 对角线:0,0,0

    W

    2

    /

    2

    !

    W^2/2!

    W2/2! 对角线:0,0,0

    W

    3

    /

    3

    !

    W^3/3!

    W3/3! 对角线:1/6, 1/6, 1/6 更高阶

    (

    W

    6

    ,

    W

    9

    .

    .

    .

    (W^6,W^9…

    (W6,W9)还会继续加正数

    所以对角线:

    e

    i

    i

    W

    =

    1

    +

    1

    6

    +

    >

    1

    e^W_{ii}=1 + \\frac{1}{6} + \\dots > 1

    eiiW=1+61+>1 .

    tr

    (

    e

    W

    )

    =

    e

    11

    W

    +

    e

    22

    W

    +

    e

    33

    W

    >

    3

    \\text{tr}(e^W)=e^W_{11}+e^W_{22}+e^W_{33} >3

    tr(eW)=e11W+e22W+e33W>3 . 结论:有环 → 对角线 > 1 → tr (e^W)>3 → h (W)>0

  • 目标函数:拟合数据 + 保证无环
  • NOTEARS 只做一件事:找到一个矩阵 W(因果图),让这个图能完美拟合观测数据(损失最小);同时这个图必须是无环的 DAG。

    在这里插入图片描述 W 是加权邻接矩阵,完整代表一张因果图:

    W

    i

    j

    0

    W_{ij} \\neq 0

    Wij=0:存在因果边

    变量

    i

    变量

    j

    变量i \\rightarrow 变量j

    变量i变量j,数值大小代表因果强度;我们最终要求解的,就是这个矩阵 W 。

    L(W) = 损失函数,用来衡量:当前矩阵 W 对应的因果图,和真实观测数据的匹配程度(损失值越小 → 因果图越贴合数据分布)。

    案例解读: 变量:收入、广告投放、销售额。 . 假设当前 W 定义了关系:收入→广告、收入→销售额、广告→销售额。

  • 根据这个 W,用收入去预测广告投放、用收入 + 广告去预测销售额;
  • 把预测值和数据集里的真实值对比;
  • 算出

    L

    (

    W

    )

    \\mathcal{L}(W)

    L(W):误差总和。 .

  • 不断调整矩阵 W 里的数值,让误差越来越小,做到 “因果规则能解释现有数据”。

    极端情况:

    • 只优化损失,不加无环约束: 算法追求拟合数据,可能生成循环结构;虽然拟合误差极小但是有环图不是合法因果图。
    • 只强制无环,不优化损失:人为随便画一张无环图,虽然结构合法,但和观测数据完全不匹配,无法反映真实因果关系。

    NOTEARS 怎么求解?(梯度下降 + 增强拉格朗日)

  • 初始化:随机生成一个矩阵 W(随便画个初始图);

  • 融合约束:用增强拉格朗日,把「无环约束」直接塞进损失函数里(不用分开算);

  • 把【约束条件

    h

    (

    W

    )

    =

    0

    h(W)=0

    h(W)=0】合并到损失函数里,变成一个新的总损失: .

    TotalLoss

    =

    L

    (

    W

    )

    +

    λ

    h

    (

    W

    )

    \\text{TotalLoss} = \\mathcal{L}(W) + \\lambda \\cdot h(W)

    TotalLoss=L(W)+λh(W) .

    λ

    \\lambda

    λ 是权重系数,用来控制 “无环” 这条规则的严格程度; —– 原本的约束条件,变成了总损失里的一项惩罚项。 . 优化逻辑变为:最小化总损失。如果图有环:

    h

    (

    W

    )

    >

    0

    h(W)>0

    h(W)>0,惩罚项变大,总损失飙升,算法会主动修正环路; . 这也是为什么 NOTEARS 可以全程只用梯度下降求解,不用离散穷举。

  • 梯度下降:像训练神经网络一样,一点点更新矩阵 W;
  • 让数据损失越来越小;让 h (W) 越来越接近 0;

  • 收敛停止:最终得到的 W,既是最优拟合,又是无环 DAG;

  • 转成图:把矩阵 W 转换成可视化因果图。

  • 全程不用枚举任何图,速度比传统算法快10~100 倍,变量再多也不爆炸。

    扩展:线性 NOTEARS vs 非线性 NOTEARS

    线性 NOTEARS 是论文原始版本,假设变量之间是线性因果关系(简单、好算);适合入门、小数据、教学演示。

    非线性 NOTEARS(进阶,工业用),用 MLP / 神经网络 拟合复杂因果关系;适合真实业务、高维数据、非线性关系;

    核心逻辑和线性版完全一样,只是损失函数换成神经网络。

    NOTEARS 与 DoWhy 完美配合,NOTEARS 输入数据,自动输出因果图DAG;DoWhy 输入 DAG 和数据,计算因果效应ATE; 最后Refute 验证结果是否可信。


    LLM× 因果:当前最火的 “缝合怪” 方向

    传统因果推断 / 因果发现体系(SCM、DAG、NOTEARS、DoWhy、PC、do 算子) 理论严谨、有数学约束、可量化因果效应、支持稳健性验证、结果可解释; 但是 极度依赖人工领域知识、只能处理结构化表格数据、无法理解自然语言、反事实建模成本高。

    用传统因果框架的数学约束、因果理论、量化能力,约束 LLM 的自由生成,解决其【因果逻辑混乱、结果不可信、无法量化】的问题。

    大语言模型LLM 擅长理解文本语义、能做自然语言交互、可以自动归纳关系、低成本输出先验结论。 但它本质是 统计关联模型,没有内置因果逻辑,不懂do算子、可识别性、DAG 无环约束,容易产生 “幻觉”。

    用 LLM 的知识能力、语义理解能力,弥补传统因果算法【缺先验、难用、只能处理表格数据】的短板;

    LLM 负责 “凭知识猜关系”,经典因果算法负责 “用理论和数据验真假、算数值”。

    目前有三个主流的技术路线(若有遗漏,欢迎补充)

    LLM 做因果发现(替代 / 辅助 NOTEARS、PC 算法)

    因果发现也就是从观测数据自动学习 DAG(因果图)。传统方法如 NOTEARS 存在强依赖数据(样本少,变量少,数据噪声大时容易学错因果边)、无语义理解、输入受限(仅支持结构化表格数据)、初始化随机(随机生成初始图)的问题。

    LLM介入后有两种工作模式:

  • 纯语义驱动(文本场景)
  • 输入:变量名称、业务描述、自然语言文本(如 “变量:熬夜、免疫力、感冒”、医学病历、新闻事件); 核心逻辑:LLM 依靠预训练的通用常识 / 行业知识,直接判断变量间的因果流向; 输出:标准化 DAG、因果邻接矩阵、文字版因果关系; 适用场景:没有结构化观测数据,只有纯文本资料的场景。

    举例:输入文本“长期久坐会引发腰椎问题,腰椎问题会影响睡眠质量”,LLM 直接输出 DAG:久坐 → 腰椎问题 → 睡眠质量。

  • LLM 先验 + 传统算法微调(工业 / 论文主流,效果最优)
  • 这是目前顶会最常见的方案,不是取代 NOTEARS,而是强强联合:

  • 先用 LLM 基于变量语义、领域知识,生成高质量初始 DAG(替代 NOTEARS 随机初始化);
  • 将这张初始图、结构化观测数据输入 NOTEARS/PC 算法;
  • 传统因果发现算法利用真实数据修正 LLM 的偏差(LLM 的常识可能和真实数据矛盾,数据说了算);
  • 最终输出兼顾【常识合理性】和【数据拟合度】的合法无环 DAG。
  • 省去了人工绘因果图的高成本;把因果发现的输入范围从【表格数据】拓展到【全类型文本数据】。

    LLM 辅助因果效应估计(搭配 DoWhy、EconML)

    Model(建模)是 DoWhy 的最大瓶颈:必须人工完成三件事:

    • 定义处理变量 T、结果变量 Y;

    • 枚举全部混杂变量、中介变量;

    • 必要时寻找工具变量(应对后门准则失效的场景)。

    现实场景中,陌生领域很难识别隐藏混杂(未观测混杂会直接破坏可识别性假设);

    示例提问:“研究广告投放对商品销售额的因果效应,请列出所有潜在的混杂变量和中介变量” . LLM 会结合电商常识输出:用户年龄、收入、地域、季节、历史消费习惯等,既可以指导你补充数据,也可以直接导入 DoWhy 的混杂集合。

    人工寻找工具变量难度极高;

    当数据存在大量未观测混杂、后门调整失效时,需要工具变量做因果识别,LLM 基于领域知识推荐合理工具变量,配合 DoWhy 工具变量法完成估计。

    可以把LLM看成虚拟的领域专家,自动化挖掘各类关键变量,补充领域知识,全程服务于DoWhy建模环节。

    辅助因果识别判断,结合d-分离、后门准则,辅助判断当前变量集合下,因果效应是否可识别。

    LLM 做反事实推理(结合 SCM 结构因果模型)

    Pearl 因果三层阶梯: 关联(观测数据)→ 2. 干预(do 算子、ATE 估计)→ 3. 反事实(最高阶)

    传统方案:依靠 SCM 结构因果模型 做反事实推演,要求提前建好完整 DAG + 每个变量的生成函数,建模复杂、计算繁琐;且只能处理公式 / 结构化查询,不支持自然语言提问。

    纯 LLM 单独做反事实:直接回答“如果当初没有投放广告,销售额会是多少?”,仅靠文本拼接生成答案,没有因果约束,属于 “瞎编”,逻辑和数值都不可信,无法溯源。

    当前主流的融合方案是 LLM做交互层,SCM做计算层。

    • 自然语言解析:用户用日常语言提出反事实问题,LLM 解析语义,提取出「干预动作、目标变量、约束条件」,翻译成 SCM/do 算子 可识别的结构化指令;
    • 因果计算:调用已构建好的 SCM、DAG、do 算子,按照严格因果规则计算反事实结果;
    • 结果转述:LLM 将冰冷的数值、逻辑结论,重新转换成自然语言回答用户。

    当 SCM 模型残缺(缺少变量关系 / 生成函数)时,LLM 补充行业知识完善 SCM 结构,再执行反事实计算。

    案例分析 —- >. 已搭建 SCM:每日学习时长 → 复习质量 → 考试分数 用户提问:“如果学生每天学习时长减少1小时,考试分数会如何变化?”

  • LLM 解析:干预 = 学习时长 – 1h,结果 = 考试分数;
  • SCM 基于因果机制计算反事实分数;
  • LLM 整理结论并输出。

  • 额外补充:双重差分法

    以 “同一片海域中 A、B 两艘船,A 船加装引擎,测算引擎对航行距离的真实效果” 为例,拆解双重差分法的核心逻辑。

    两种错误的测算思路

  • 处理组前后直接相减:直接用 A 船装引擎后的航程减去装引擎前的航程。
  • 无法区分航程增长来自引擎本身,还是海风、洋流等海洋环境的共同作用,会将环境影响误算为引擎效果,导致结果高估。

  • 政策后处理组与对照组直接相减:用装引擎后 A 船的航程减去同期 B 船的航程。
  • 无法区分差异来自引擎效果,还是两艘船本身的固有性能差异,会将组间先天差异归因为引擎作用,同样存在偏误。

    在这里插入图片描述

    正确思路:两次相减(双重差分) —– 通过两次减法分别剔除两类干扰,最终得到引擎的净效果:

  • 第一次减法:各组内前后相减
  • 分别计算 A 船、B 船各自 “政策后航程 – 政策前航程” 的差值。 —— 作用:消除两艘船本身的固有差异(组间固定差异),每组的差值仅反映 “时间推移 + 自身干预” 的总变化。

  • 第二次减法:两组差值再相减
  • 用 A 船的前后差值,减去 B 船的前后差值。 ——- 作用:B 船未安装引擎,其前后差值完全代表海洋环境等共同因素带来的航程增长;减去这部分共同变化后,剩余增量就是引擎本身带来的净效果。

    该逻辑成立的核心前提:两艘船处于同一片海域,海风、洋流等所有外部环境的影响完全一致,即共同冲击对两组的作用相同。

    在这里插入图片描述

    双重差分法(Difference-in-Differences, DID)是因果推断领域经典的准实验方法,广泛应用于政策效果评估。

    • 理想的因果推断方法是随机对照实验(RCT),通过随机分组消除选择性偏误,但现实中往往受伦理、成本等约束无法实现。
    • 准实验方法通过构造合理的对照组,模拟随机对照实验的因果识别效果,双重差分法是其中应用最广泛的方法之一。

    双重差分法的本质是通过两次减法,分离并剔除两类混杂因素,最终得到政策 / 干预的净效应:

  • 剔除组间固定差异:通过 “组内前后相减”,消除处理组和对照组本身就存在的固有差异,避免先天差异干扰效果判断。
  • 剔除共同趋势 / 共同冲击:通过 “两组差值相减”,消除时间变化带来的共同影响(即所有个体都会受到的外部冲击,对应案例中的海洋环境)。
  • 补充说明:“共同冲击” 不局限于随时间线性变化的因素,所有同时、同等作用于两组的外部影响都包含在内,是比 “时间趋势” 更宽泛的概念。

    平行趋势假设是双重差分法的核心前提(识别 “命门”),不满足该假设则双重差分的估计结果不具备因果解释力。

    假设如果没有政策干预,处理组的结果变量变化趋势会与对照组完全一致。

    对应航船案例:如果 A 船不装引擎,它的航程增长趋势会和 B 船完全相同 —— 正是因为两组处于同一片海、共同冲击的影响一致,我们才能用 B 船的变化,代表 A 船 “不装引擎时的反事实变化”。

    如果两组原本的发展趋势就不相同(对应案例中 “两艘船不在同一片海”),直接做双重差分会把 “两组本身的趋势差异” 误算成 “政策带来的效果”,导致估计结果严重偏误。

    基础双重差分回归模型是直观计算公式的严谨代数形式,可通过统计软件自动估计,标准形式为:

    Y

    =

    β

    0

    +

    β

    1

    T

    r

    e

    a

    t

    +

    β

    2

    P

    o

    s

    t

    +

    β

    3

    (

    T

    r

    e

    a

    t

    ×

    P

    o

    s

    t

    )

    +

    ε

    Y = \\beta_0 + \\beta_1 \\cdot Treat + \\beta_2 \\cdot Post + \\beta_3 \\cdot (Treat \\times Post) + \\varepsilon

    Y=β0+β1Treat+β2Post+β3(Treat×Post)+ε 其中Treat(分组虚拟变量)和Post(时间虚拟变量)均为 0-1 变量,各参数的具体含义可通过四种场景对应:

    场景Treat 取值Post 取值结果 Y 的表达式参数核心含义
    对照组・政策实施前 0 0 β0​ β0​:基线值,对照组在政策前的基础结果水平
    对照组・政策实施后 0 1 β0​+β2 ​ β2​:共同趋势效应,由时间 / 共同冲击带来的结果变化
    处理组・政策实施前 1 0 β0​+β1​ β1​:组间固定差异,处理组与对照组本身固有的结果差距
    处理组・政策实施后 1 1 β0​+β1​+β2​+β3 ​ β3​:政策净效应,即干预带来的因果效应(对应案例中引擎的纯效果)

    将四组数值代入直观公式(处理组前后差 – 对照组前后差)计算,最终结果恰好等于(\\beta_3),说明回归模型与直观逻辑完全等价。

    结果显著性:P 值的含义

    回归结果中,交互项系数

    β

    3

    \\beta_3

    β3对应的 P 值,用于判断政策效应估计结果的可信度:

    • 统计学含义:在 “政策完全无效

      (

      β

      3

      =

      0

      (\\beta_3=0

      (β3=0)” 的原假设下,观测到当前结果(甚至更极端结果)的概率,本质是衡量结果由随机误差导致的可能性。

    • 判断标准:P 值越小,说明结果由随机误差导致的概率越低,政策效应的可信度越高。学术研究中通常以 P<0.05、P<0.01、P<0.001 作为显著性阈值,对应不同数量的星号,星号越多代表统计显著性越强、结果越可信。

    赞(0)
    未经允许不得转载:171主机测评 » 万字长文详解因果推断:从SCM/PO 双框架、后门 / 前门 / IV 识别、ATE 估计算法到 DoWhy、NOTEARS、LLM 因果融合
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址