图论基础:有向图与无向图、路径与环、DAG的定义与性质
各位同学,欢迎来到因果推断的第一块基石——图论基础。
说实话,我刚开始接触因果推断时,最头疼的就是图论。一堆箭头、圆圈,看着像天书。但后来我发现,图论其实就是一种语言,用来描述变量之间「谁影响谁」的关系。你想想看,我们做数据分析,不就是在找这种关系吗?
从现实世界到图:为什么需要图?
先问大家一个问题:你怎么描述「下雨导致地面湿,地面湿导致路滑」这件事?
用文字说,啰嗦。用公式写,复杂。但用图表示,就简单了:
下雨 → 地面湿 → 路滑
三个节点,两个箭头,一目了然。这就是图的魅力。
我在项目中遇到过很多次,业务方拿着几十个变量问我:「这些变量之间到底什么关系?」我二话不说,先画个图。图一出来,很多模糊的东西就清晰了。
有向图 vs 无向图:箭头说了算
图论里最基础的分法,就是看箭头有没有方向。
无向图:边没有方向,表示「有关系」,但不说明谁影响谁。
比如朋友关系:A—B,表示A和B是朋友。你不能说A影响B,还是B影响A。
有向图:边有方向,表示「因果关系」或「影响关系」。
比如:A → B,表示A影响B。箭头从原因指向结果。
嗯,这里要注意:因果推断里,我们几乎只关心有向图。因为因果本身就是有方向的——原因在前,结果在后。
路径与环:图里的「路」和「圈」
有了图,我们就能在上面「走路」了。
路径:从一个节点出发,沿着边走到另一个节点,走过的路线就是路径。
- 在有向图中,路径必须沿着箭头方向走。你不能逆着箭头走——除非你明确知道那是双向关系。
- 路径的长度,就是经过的边的数量。
举个例子:
A → B → C → D
从A到D有一条路径:A→B→C→D,长度为3。
环:如果一条路径的起点和终点是同一个节点,就形成了环。
A → B → C → A
这就是一个环。A影响B,B影响C,C又影响A。这在因果推断里是个大问题——你没法分清谁先谁后了。
避坑指南:我曾经在一个医疗数据分析项目中,发现变量之间形成了环。比如「用药量→副作用→调整用药→用药量」。这种环状结构让因果推断变得极其复杂。后来我们不得不引入时间信息,把环打破。
DAG:因果推断的「黄金标准」
DAG,全称是有向无环图(Directed Acyclic Graph)。
说白了,就是有方向、没环的图。
DAG有两个核心条件:
- 有向:所有边都有方向,表示因果关系。
- 无环:不存在任何环,即你不能从一个节点出发,沿着箭头走回自己。
为什么DAG这么重要?
因为因果推断需要「时间顺序」和「非循环性」。原因必须发生在结果之前,而且不能出现「我影响你,你又影响我」这种循环依赖。
我的经验:在实际项目中,我经常用DAG来检查变量之间的逻辑是否合理。如果发现环,要么是数据有问题,要么是变量定义有误。有一次,一个同事说「用户满意度影响复购率,复购率又影响满意度」,我让他画个DAG,他画着画着就发现——这两个变量其实都是「服务质量」的结果,而不是互相影响。
DAG的性质:你需要知道的几个关键点
| 性质 | 说明 | 实际意义 |
|---|---|---|
| 无环性 | 不存在有向环 | 保证因果顺序的合理性 |
| 拓扑排序 | 可以排成线性顺序,所有箭头从前往后 | 便于计算和推理 |
| 祖先-后代关系 | 父节点影响子节点 | 可以追溯因果链条 |
| 条件独立性 | 通过d-分离可以判断变量是否独立 | 这是因果推断的核心工具 |
我个人习惯把DAG想象成一个「家谱」。祖先影响后代,但后代不会反过来影响祖先。这样想,很多概念就自然了。
用SVG画一张DAG知识结构图
下面这张图,帮你把本章的核心知识串起来:
一个简单的DAG示例
来看一个实际例子。假设我们研究「学习时间、睡眠质量和考试成绩」的关系:
学习时间 → 考试成绩
睡眠质量 → 考试成绩
学习时间 → 睡眠质量
这个DAG告诉我们:
- 学习时间和睡眠质量都直接影响考试成绩
- 学习时间还通过影响睡眠质量,间接影响考试成绩
- 没有环,因果顺序清晰
你想想看,如果这里出现一个环,比如「考试成绩 → 学习时间」,那就麻烦了——到底是学习影响成绩,还是成绩影响学习?这就是DAG帮我们理清的东西。
小技巧:我刚开始学DAG时,总记不住哪些结构会导致什么问题。后来我总结了一个口诀:「有向无环是基础,路径追踪找因果,遇到环来要警惕,拓扑排序来帮忙。」
总结一下
图论基础,说白了就是三件事:
- 有向图 vs 无向图——箭头决定方向,因果推断只用有向图
- 路径与环——路径是因果链,环是因果推断的敌人
- DAG——有向无环图,因果推断的黄金标准
记住,DAG不是万能的,但没有DAG,因果推断寸步难行。我在项目中吃过不少亏,都是因为一开始没画好DAG,后面分析全跑偏了。
嗯,这一章就到这里。图论是基础,但也是最重要的。后面我们会在这个基础上,一步步搭建因果推断的大厦。