DAG(Directed Acyclic Graph,有向无环图)在统计因果推断中充当“因果地图”的角色——它通过节点表示变量、有向边表示因果方向,并强制要求不存在循环结构(即不能从某变量出发沿箭头返回自身)。这一工具由朱迪亚·珀尔(Judea Pearl)等学者系统化,用于可视化研究假设、识别混杂因素、选择调整变量,甚至从观测数据中推导可检验的因果效应。简而言之,DAG让统计学家告别“拍脑袋定因果”,转而用图形逻辑优雅地回答:“如果我把X推一下,Y会怎么动?”
1.1 节点与有向边
1.1.1 节点:变量(如年龄、治疗、疗效)
DAG中的每个节点代表一个变量,可以是可观测的(如血压、教育年限)或潜变量(如遗传倾向)。节点通常用圆圈或方框表示,变量名标注其内。在因果推断中,节点的选择直接决定分析的边界——遗漏关键节点可能导致偏倚,而纳入多余节点也可能引发过度调整。
1.1.2 有向边:箭头从原因指向结果
一条有向边(箭头)从原因变量指向结果变量,表示前者对后者存在因果效应(直接或间接)。箭头方向不代表时间的绝对先后(但通常符合常识顺序),且不允许双向箭头(即不能同时存在A→B和B→A)。每条边背后都有一个潜在的“干预机制”:若改变箭头发起方的数值,箭头所指方将相应变化。
1.2 无环性(Acyclicity)
1.2.1 定义:不允许闭环反馈
无环性要求图中不存在任何有向环路,即不可能沿着箭头方向从某节点出发走回该节点。这是DAG区别于一般有向图的核心特征。在因果语境中,无环性对应一种“非递归”关系:原因先于结果,且结果不能反过来影响同一时间尺度上的原因。如果现实存在反馈(如经济学中的供给-需求循环),则需要借助时间延迟或引入非递归假设来处理。
1.2.2 反例:若存在循环则无法唯一确定因果效应
假设存在循环A→B→A(例如,某种药物的副作用影响情绪,情绪又影响服药的依从性)。那么从数据中估算药物对结局的因果效应将陷入困境:每一条路径都与其他路径交织,无法通过简单的截断或调整分离出纯粹的效应。此时DAG模型不再适用,须改用结构方程模型、时间序列方法或循环因果图等更复杂的框架。
1.3 因果图与关联图的区别
1.3.1 因果图:箭头代表潜在因果机制
在因果DAG中,每条有向边都对应一个假设的因果生成过程,即“若干预X,Y的分布会改变”。这种图是研究者基于先验知识确定的,并非从数据中直接学得。它允许我们推导出一些可检验的统计条件(如条件独立性),但不保证箭头方向就是真实的因果方向——错误的方向同样会导致错误结论。
1.3.2 关联图:仅表示统计依赖性(如马尔可夫网络)
关联图(如马尔可夫网络、无向图)仅刻画变量间的条件依赖关系,没有方向性。例如,两条无向边连接年龄-血压-胆固醇,只能说明年龄和血压相关、血压和胆固醇相关,但无法判定谁是谁的原因。关联图常被用于降维、特征选择,但不能直接用于因果效应的估计。
2.1 路径类型
2.1.1 因果路径(前门路径)
因果路径是指从原因变量出发沿着箭头方向(允许经过中介变量)到达结果变量的一条路径。例如,治疗→药物浓度→疗效,这条路径上的所有边都从“原因”指向“结果”,代表了直接的因果传递链。对于因果效应的识别,原则上需要将所有因果路径暴露出来,而非因果路径则需要被阻塞。
2.1.2 非因果路径(后门路径)
后门路径是指从结果变量出发逆向(逆箭头方向)抵达原因变量的路径,或者更正式地说,是连接原因和结果且至少包含一条指向原因变量的路径。这类路径通常混杂着错误的关联来源,例如,一个共同原因同时影响原因和结果,就会形成一条后门路径(如X←C→Y)。要得到因果效应,必须阻断所有后门路径。
2.2 碰撞节点(Collider)及其特征
2.2.1 定义:两个箭头同时指向的节点
当一个节点有至少两条有向边指向它时(即它受多个变量影响),该节点称为碰撞节点。例如,X→M←Y,M就是一个碰撞节点。在未条件化时,碰撞节点自动阻断其所在路径上的信息流。
2.2.2 条件作用在碰撞器上会打开本不存在的关联(“M型错觉”)
如果在一个包含碰撞节点的路径上,对该碰撞节点进行条件化(如控制或分层),就会打开一条原本不存在的关联通道,使得两个原本独立的变量之间产生虚假相关。这种现象被称为“M型错觉”或“伯克森悖论”。例如,在车祸数据中,控制“入院”这一碰撞变量后,可能会发现“开车技术差”和“车况差”之间出现负相关,但这完全是选择偏倚所致。
2.3 d-分离(Directional Separation)
2.3.1 判定条件:给定某个节点集,是否阻断所有非因果路径
| d-分离是一种图论准则,用来判断给定一组变量Z后,X和Y是否在图中条件独立。粗略地说,如果Z阻断了X和Y之间所有包含碰撞节点且未条件化的路径,以及所有不含碰撞节点但通过Z条件化的路径,则称X和Y在给定Z下d-分离。此时,统计上X⊥Y | Z成立(在无测量误差等假设下)。 |
|---|
2.3.2 应用:识别需要调整的最小变量集
通过d-分离准则,可以找出使原因和结果之间所有非因果路径被阻断的最小调整集。这通常通过“后门准则”实现:寻找一个变量集S,使得S不包含任何后门路径上的碰撞节点,并且阻断所有后门路径。最小调整集通常可通过图论中的“搜索算法”得到,避免无意义地调整过多变量。
3.1 后门准则(Back-Door Criterion)
3.1.1 寻找一组可阻断所有后门路径的变量
后门准则指出:对于一对变量(X, Y),如果存在一个变量集Z满足:(a) Z中不包含X的后代节点;(b) Z阻断了所有从X到Y的后门路径;那么只要在给定Z的条件下,Y关于X的条件期望就等价于因果效应(在无未测量混杂的假设下)。实际操作中,通常选择那些同时影响X和Y的混杂因素(如年龄、性别、社会经济地位)加入Z。
3.1.2 实操示例:治疗对结局的因果效应估算
在观察性研究中,假设我们要估计“药物治疗(X)对康复率(Y)”的因果效应。已知“患者年龄(C)”同时影响医生是否开药(老年人用药更谨慎)和康复率(年轻人自愈力强)。图结构为X←C→Y,后门路径仅有一条(X←C→Y),调整C即可阻断。于是可通过回归或倾向得分匹配在年龄层面上计算治疗组与对照组的康复率之差,即为因果效应。
3.2 前门准则(Front-Door Criterion)
3.2.1 通过中介变量间接估计因果效应
当存在未测量的混杂因素导致后门准则无法直接应用时,前门准则提供了一条替代路径:通过测量X与Y之间的一个中介变量M(满足特定条件)来间接估计因果效应。具体需要满足:(a) M不被X影响之外的其他变量所影响(即M的所有原因除X外均被阻隔);(b) X仅通过M影响Y;(c) 所有X→M→Y的路径之外,不存在其他从X到Y的路径(未测量混杂只影响X→Y,但不影响X→M或M→Y)。然后分两步估计:先算X对M的效应,再算M对Y的效应(调整X),最后乘积得到总效应。
3.2.2 经典案例:吸烟与肺癌(通过焦油沉积)
珀尔曾用吸烟与肺癌的例子说明前门准则。假设存在未测量的遗传因素同时影响吸烟行为(X)和肺癌(Y),因此后门准则不可用。然而,吸烟会产生焦油沉积(M),且焦油沉积是已知的致癌物。通过观察数据可以估计吸烟对焦油沉积的效应,以及焦油沉积对肺癌的效应(控制吸烟后)。在合理假设下,前门准则能给出吸烟对肺癌的总效应,尽管存在未测量的混杂。
3.3 工具变量(Instrumental Variable)的图表达
3.3.1 图特征:工具变量Z仅通过X影响Y,且与混杂无关
在DAG中,工具变量Z应满足:(a) Z与X直接相连(因果关系,Z→X);(b) Z与Y之间没有直接路径(只能通过X影响Y);(c) Z与所有影响X和Y的未测量混杂因素U不相关(即Z和U之间无路径)。图形上,一个典型的工具变量结构为:Z→X→Y,同时存在一个未测量的混杂U同时指向X和Y(U→X, U→Y),但Z与U无关。这样,Z的随机变异就可以作为X的“外生性变动”来识别X对Y的因果效应。
3.3.2 局限:强工具变量难寻,弱工具变量可能导致偏差
实际应用中,找到完全符合上述条件的工具变量极其困难。如果Z与X之间的相关性很弱(弱工具变量),那么估计出的因果效应将严重偏向OLS估计量,甚至比不做工具变量的回归更差。此外,Z对Y的排他性(只通过X影响Y)往往靠理论假设,无法用数据直接检验。研究者常使用“过度识别检验”来排除部分违反假设的情况,但无法完全验证。
4.1 混杂偏倚:隐形第三只手
4.1.1 图例:傻白甜认为“冰淇淋销量越高,溺水人数越多”
某个夏季数据显示,冰淇淋销量与溺水人数强正相关。若不考虑天气,可能会误以为吃冰淇淋导致溺水。实际上,两者的共同原因是炎热天气:高温使人们更多购买冰淇淋,同时也驱使人到海边游泳,从而增加溺水风险。
4.1.2 真相:温度同时影响两者(经典混杂)
在这个例子中,温度即为混杂变量,它同时影响冰淇淋销量和溺水人数。在DAG中,路径为温度→冰淇淋销量、温度→溺水人数,形成后门路径:冰淇淋销量←温度→溺水人数。只要控制温度(或在温度相同的人群内比较),冰淇淋销量与溺水人数之间就不再有因果关联。这一笑话常用于统计学入门课程,提醒人们警惕虚假相关。
4.2 过度调整:好心办坏事
4.2.1 调整碰撞节点或中介变量会引入偏倚
有时研究者为了“控制尽可能多的变量”,不小心将中介变量或碰撞节点纳入调整集,结果反而破坏了对因果效应的正确估计。例如,在评估教学方法(X)对学生成绩(Y)的效应时,控制学生学习时间(M,一个中介变量)会导致X对Y的总效应被低估(因为阻塞了间接途径)。调整碰撞节点则会打开虚假关联,同样产生偏差。
4.2.2 经典段子:“控制‘穿鞋’后,脚的大小与身高无关了?”
这个段子用来讥讽过度调整的荒诞:身高(X)和脚大小(Y)显然相关,但若控制了“是否穿鞋”(M,一个碰撞节点?实际上更可能是中介),则相关性消失。因为穿鞋行为既受身高影响(高个子可能穿大鞋)又影响脚的外观大小,但它本身不是混杂因素,而是因果链条中的中间环节。控制它等于切断了间接路径,导致因果效应被零化。类似的段子还有“控制‘做饭次数’后,饥饿和进食无关了”。
4.3 M-结构(M-Bias)
4.3.1 因碰撞节点被错误调整而人为产生虚假关联
M-结构是一种特殊的偏倚,它由两个不相关的条件变量通过一个共同的碰撞节点被错误调整而产生。例如,变量A和B原本独立,它们都有一个共同的子节点C(碰撞节点)。如果在分析中控制了C,则A和B之间会产生伪相关,因为C充当了桥梁。此情形下的DAG形似字母M:A→C←B。
4.3.2 图例:看似毫不相干的两个变量因共同子女(碰撞)而纠缠
假设“是否拥有宠物(A)”与“是否喜欢咖啡(B)”无关,但它们都影响“脑洞大小(C)”。如果研究者在调查中只抽样了脑洞较大的人(即条件化于C),那么在样本中会发现养宠物者更喜欢咖啡(或相反)。这种虚假关联完全是错误的选择偏倚所致,M-结构因此成为因果推断中“最隐蔽的陷阱”之一。
5.1 手动绘制与检测环
5.1.1 纸笔法:适合小规模DAG(别画成毛线团)
对于5-8个变量的简单因果假设,用纸笔画出节点与箭头即可。关键是要反复确认无环(可尝试从每个节点出发沿箭头走,看能否回头)。手动检测环的简便方法:列出所有可能的箭头序列,若发现重复节点则停止。如果节点数超过10个,手绘容易变成“毛线团”,建议使用数字工具。
5.1.2 工具推荐:DAGitty(在线神器)、ggdag(R包)
- DAGitty(dagitty.net):在线工具,支持图形化拖拽构建DAG,自动检测环、显示d-分离路径、建议最小调整集。对初学者极其友好。
- ggdag(R包):基于ggplot2的DAG绘制包,能与
dagitty包无缝对接,支持标注节点类型、自动布局。适用于与数据分析流程整合。 - 其他工具:Python的
causalgraphicalmodels、causalnex,以及Stata的dag命令。
5.2 自动化结构学习
5.2.1 基于约束的算法(如PC算法)
PC算法(以发明者Peter Spirtes和Clark Glymour命名)通过条件独立性检验逐步构建图:从完全无向图开始,剪去条件不独立的边,再确定边的方向。其输出是一个部分有向无环图,可能存在未定向的边。该方法对样本量和检验方式敏感,且只能恢复等价类,不能判定因果方向。
5.2.2 基于评分的算法(如BIC、BGe)
评分函数法(如使用BIC或BGe准则)通过搜索所有可能的DAG并选择拟合最优的图(在惩罚复杂度的前提下)。常见的算法有Greedy Equivalence Search(GES)和Hill-Climbing。这些方法计算量大,且容易陷入局部最优。近年来有采用遗传算法或贝叶斯MCMC的变体。
5.2.3 警告:从数据学出的DAG未必是因果顺序(相关性不等于因果性)
必须强调:任何结构学习算法都只能从观测数据中恢复条件的独立性模式,这些模式对应的图称为“马尔可夫等价类”。同一个等价类中的不同DAG可能有完全相反的因果方向(如X→Y和Y→X可能无法区分)。因此,自动化学习得到的图必须经过领域专家判断或随机实验验证,才能作为因果DAG使用。
5.3 敏感性分析
5.3.1 评估未测量混杂对结果的影响程度
即使调整了所有可测的混杂变量,仍可能存在未测量的混杂(U)。敏感性分析通过假设U与暴露、结局之间的关联强度,考察这种假设下因果估计值的变化范围。常见方法包括:
- 设定U对暴露和结局的效应大小(如回归系数),重新估计暴露效应。
- 使用“偏相关系数”或“R²差异”量化未测量混杂的潜在影响。
5.3.2 E值(E-Value)简介:你需要多强的未测量混杂才能推翻结论?
E值由VanderWeele和Ding提出,定义为:在既定的观察性研究结果(如风险比、比值比)下,未测量的混杂因素(或多个混杂因素联合)必须达到多大的最小关联强度,才能将观测到的效应解释为完全由混杂产生。例如,若观察到的风险比RR=2.0,则E值为3.41,意味着要有一个与暴露和结局的关联度均为3.41倍风险的未测量混杂,才能完全解释该结果。E值越大,结论越稳健。此指标通俗易懂,已成为流行病学中的标准工具。
6.1 潜在结果框架 vs 结构因果模型
6.1.1 鲁宾(Rubin)与珀尔(Pearl)两大流派互戳痛点
鲁宾的潜在结果框架(Neyman-Rubin因果模型)基于反事实和随机化,强调通过实验或匹配来推断因果,对图形化表达较冷淡。珀尔的结构因果模型(SCM)则依赖DAG和do-演算,能处理更复杂的非参数识别问题。两派长期争论:鲁宾阵营批评DAG过于依赖先验假设,且无法很好地处理“符合实际”的复杂机制;珀尔派认为潜在结果框架在识别非线性效应和中间变量时过于笨重。
6.1.2 共识:二者互补,而非对立
近年来,两大阵营逐渐融合。很多统计分析(如工具变量、孟德尔随机化)同时采用两种语言描述。潜在结果框架中的“一致性”和“可交换性”假设在DAG中有直接对应(无未测量混杂)。而do-演算的公式可以用潜在结果重新表达。许多教科书(如Hernán & Robins的《Causal Inference: What If》)将两者结合讲授。当前的主流观点是:根据具体问题和数据形态选择最合适的工具。
6.2 时间尺度与瞬时因果
6.2.1 DAG默认“同时期”变量,时间滞后需小心处理
标准DAG假设所有变量都是同时观测的,但现实世界的因果关系往往存在时间延迟。例如,吸烟对肺癌的影响会持续数十年。如果简单地将同一年份的吸烟数和肺癌发病率连成一条边,可能忽略潜伏期带来的混淆。解决办法是引入时间戳,构建带时间滞后的DAG(也称为“时间有序DAG”),但这样会显著增加建模复杂度。
6.2.2 动态因果图(如CDAG)尝试解决
动态因果图(Causal Dynamic Graphs,CDAG)显式地编码时间维度:每个时间点的变量作为独立节点,边只允许从早期指向晚期(例如t→t+1)。这种表示更符合“因果在时间中流动”的直觉,但也带来了维度灾难。近年来,新方法如“时间序列中的因果发现”(如Granger因果的图扩展)正在推进这一方向。
6.3 迈向“大因果”
6.3.1 从DAG到非参数可识别性
传统DAG假定线性、可加性或参数形式,但非参数因果推断(如双机器学习)不再要求函数形式。未来的方向是:在缺乏参数假设时,仍能从高维数据中识别DAG,或利用DAG的图形性质来指导非参数估计器的选择。例如,“因果森林”利用DAG结构做异质性处理效应的估计。
6.3.2 与机器学习结合(如因果森林、双机器学习)
现代统计学习为因果推断注入了活力:因果森林(Causal Forest)使用随机森林估计个体处理效应;双机器学习(Double/Debiased Machine Learning)利用套索、神经网络等方法估计平均处理效应,并兼容DAG中对混杂的调整。预计未来几年会出现更多将深度学习和图形因果模型融合的框架。
6.3.3 终极难题:当因果图本身不确定时,如何决策?
现实中研究者往往不能完全确定DAG的结构(例如可能存在多个候选图)。这种情况下,常规的因果推断可能产生误判。应对策略包括:
- 进行“多模型推断”:在多个合理DAG上分别估计因果效应,报告范围或使用贝叶斯模型平均。
- 采用“稳健因果推断”方法(如界限分析、部分识别),在不完全知道结构的情况下仍能给出因果效应的区间。
- 结合在线学习(如自适应实验设计),在探索中逐步修正DAG。
这个难题至今没有完美解决方案,但它催生了因果推断领域最前沿的研究——如何在不完全知识下做出可靠决策。这正是DAG工具美好而又残酷的一面:地图越精确,旅途越安全;但现实永远缺一张完整的地图。