1. 因果发现概述:什么是因果发现?为什么需要因果发现?因果发现 vs 相关性分析

1.1 从一个真实的故事说起

我记得刚入行做推荐系统那会儿,团队里有个经典案例。我们观察到「用户点击某个商品后,购买转化率明显提升」。老板一拍大腿:「那就让用户多点几次呗!」结果呢?点击率上去了,购买率反而掉了。

为什么会这样?

因为点击和购买之间,存在一个隐藏的「兴趣」变量。感兴趣的用户既会点,也会买。强行让不感兴趣的用户去点,除了增加骚扰,啥也得不到。这就是典型的「相关性不等于因果性」。

嗯,从那天起,我开始认真琢磨因果推断这件事。

1.2 什么是因果发现?

说白了,因果发现就是从数据里找出变量之间的「谁影响了谁」。它回答的是:

  • A 变了,B 会不会跟着变?
  • 如果我把 A 强行改掉,B 会怎样?
  • 有没有一个隐藏的 C,同时导致了 A 和 B?

举个例子:

你看到冰淇淋销量和溺水人数同步上升。相关性分析告诉你:这两件事有关系。但因果发现会告诉你:它们背后有个共同的「夏天温度」在作怪。温度高了,大家既爱吃冰淇淋,又爱下水游泳,溺水风险自然增加。

因果发现的核心任务:从观测数据中,还原出变量之间的因果结构图(DAG,有向无环图)。

1.3 为什么需要因果发现?

我这些年做过的项目,但凡涉及「干预」和「决策」,因果发现几乎都是绕不开的坎。原因有三:

  1. 做决策需要知道「如果...会怎样」
    比如广告投放:你看到「看了广告的人购买率高」,但这些人本来就想买啊。因果发现能帮你区分「广告的效果」和「用户的自选择偏差」。
  2. 防止「虚假关联」坑人
    我在金融风控项目里遇到过:某个特征跟违约率高度相关,但其实是另一个业务规则导致的。如果直接用这个特征建模,规则一改,模型就崩了。
  3. 可解释性要求越来越高
    现在的业务方不好糊弄了。你说「模型预测这个人会流失」,人家问「为什么?」你总不能说「因为特征权重高」吧?因果结构能给出更合理的解释。

我的经验:如果你在做「策略优化」「实验设计」「反事实推理」这类任务,因果发现基本是标配。如果只是做预测(比如图像分类),那相关性分析可能就够了。

1.4 因果发现 vs 相关性分析

这两者的区别,我经常用一个比喻来解释:

  • 相关性分析:就像看到两个人总是一起出现,但不知道他们是朋友、同事,还是碰巧同路。
  • 因果发现:要搞清楚谁先约的谁,谁影响了谁,有没有第三方在撮合。

具体差异,我整理了一张表:

维度 相关性分析 因果发现
回答的问题 它们是否一起变化? 改变 A 会影响 B 吗?
方向性 无方向(对称) 有方向(非对称)
对干预的预测 不能 可以
需要的假设 较少 较多(如无混淆、因果充分性等)
典型方法 皮尔逊系数、互信息 PC 算法、FCI、LiNGAM
鲁棒性 对噪声敏感 对假设违背敏感

避坑指南:我曾经在一个电商项目里,直接用相关性矩阵做特征选择,结果上线后 A/B 实验效果跟离线完全相反。后来才发现,那些高相关特征大多是「共同原因」导致的,根本不是真正的因果路径。从那以后,我养成了一个习惯:在做特征筛选前,先跑一遍因果发现,哪怕只是画个草图。

1.5 因果发现的知识体系

下面这张图,是我自己总结的因果发现整体框架。每次做项目前,我都会先对照着看一遍,确认自己站在哪个位置。

因果发现知识体系 输入:观测数据 / 实验数据 基于约束的方法 PC 算法、FCI 算法 基于分数的方法 GES、NOTEARS 基于函数因果模型 LiNGAM、ANM 核心假设 因果充分性 · 忠实性 · 无混淆 · 马尔可夫性 输出:因果图(DAG)

这张图里,我特别想强调一点:所有因果发现方法都建立在假设之上。你选哪种方法,取决于你愿意接受哪些假设。比如 PC 算法假设「无混淆」,这在很多真实场景下很难满足。我踩过的坑就是:拿着 PC 的结果直接做决策,结果被业务方怼回来,因为遗漏了关键混淆变量。

1.6 什么时候该用因果发现?

我给自己定了个简单的判断标准:

  • 用相关性分析就够了:纯预测任务、特征筛选(不关心方向)、探索性数据分析
  • 必须上因果发现:策略优化、干预效果评估、反事实推理、可解释性要求高的场景
  • 可以两者结合:先用相关性做粗筛,再用因果发现精炼。但要注意,相关性筛掉的变量,可能恰恰是因果路径上的关键节点。

一个小建议:刚开始接触因果发现的同学,别一上来就上复杂算法。先画个「因果图草图」,把你知道的业务逻辑画出来。然后对照数据,看看哪些边是合理的,哪些是反直觉的。这个过程本身,就能帮你发现很多问题。

1.7 本章小结

因果发现,说白了就是帮我们从「看到什么」走向「能改变什么」。它比相关性分析多了一层「干预」的视角,但也多了不少假设和约束。

我个人习惯是:在做任何涉及「决策」的数据项目前,先花 20% 的时间做因果发现。这 20% 的时间,往往能省掉后面 80% 的返工。

下一章,我们会深入因果图的基本概念——节点、边、路径、d-分离。这些东西听起来抽象,但理解了它们,你就能看懂大部分因果发现算法的核心逻辑了。


专注资料整理