相关性与因果性:数据不会说谎,但会误导
产品经理的数学课 · 第20讲
相关性与因果性:数据不会说谎,但会误导
冰淇淋销量和溺水人数高度相关——但吃冰淇淋不会导致溺水。相关性不等于因果性,这是产品经理最容易犯的统计错误。
前言
你看到一个数据:「使用新功能的用户,留存率高 20%。」
你的结论:「新功能提高了留存率。」
但真的是这样吗?
也许本来就打算留存的用户更可能使用新功能——新功能没有提高留存,只是被高留存用户使用了。
相关性(Correlation):两个变量一起变化。
因果性(Causation):一个变量导致另一个变量变化。
冰淇淋和溺水的例子:
- 冰淇淋销量 ↑,溺水人数 ↑(正相关)
- 但吃冰淇淋不会导致溺水
- 真正的原因:夏天(天气热)→ 冰淇淋销量 ↑,同时游泳人数 ↑ → 溺水人数 ↑
相关性是真实的,但因果性是假的。
核心概念
相关系数:量化的相关性
皮尔逊相关系数(r):衡量两个变量的线性相关程度。
$$ r = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum(x_i - \bar{x})^2 \sum(y_i - \bar{y})^2}} $$
取值范围:-1 到 +1
| r 值 | 含义 |
|---|---|
| +1 | 完全正相关 |
| +0.7 | 强正相关 |
| 0 | 无相关 |
| -0.7 | 强负相关 |
| -1 | 完全负相关 |
例子:
- 身高和体重:r ≈ 0.7(正相关,高个子通常更重)
- 学习时间和游戏时间:r ≈ -0.6(负相关,学习多通常游戏少)
- 冰淇淋销量和溺水人数:r ≈ 0.8(正相关,但无因果性)
为什么相关不等于因果?
三种情况:
情况一:混杂变量(Confounding Variable)
混杂变量(天气热)
↓ ↓
冰淇淋销量 溺水人数
天气热是混杂变量,它同时影响冰淇淋销量和溺水人数。冰淇淋和溺水之间没有因果关系。
情况二:反向因果(Reverse Causation)
使用新功能 ←→ 高留存
也许不是「使用新功能 → 高留存」,而是「高留存 → 使用新功能」——高留存的用户更活跃,更可能发现和使用新功能。
情况三:巧合(Coincidence)
两个变量碰巧一起变化,但没有任何关系。
例子:美国 cheese 消费量和「被床单缠住窒息而死」的人数高度相关(r ≈ 0.95)——但这是巧合。
辛普森悖论:整体和分组结论相反
辛普森悖论(Simpson’s Paradox):整体数据显示一个趋势,但分组后趋势反转。
例子:
整体数据:
| 组别 | 转化率 |
|---|---|
| 新设计 | 5.0% |
| 旧设计 | 5.5% |
结论:旧设计更好。
分组数据:
| 用户类型 | 新设计 | 旧设计 |
|---|---|---|
| 新用户 | 3.0%(1000 人) | 2.5%(100 人) |
| 老用户 | 7.0%(100 人) | 6.5%(1000 人) |
新设计在新用户和老用户中都更好! 但整体数据显示旧设计更好——因为旧设计主要在老用户中测试(老用户转化率本来就高)。
原因:混杂变量(用户类型)没有被控制。
如何建立因果关系?
方法一:随机对照试验(RCT)
随机分配用户到实验组和控制组,消除混杂变量。
例子:随机 1000 人用新设计,1000 人用旧设计。如果新设计组转化率更高,可以推断新设计导致了更高的转化。
方法二:自然实验
利用自然发生的随机事件(比如地区差异、时间差异)。
例子:A 地区先上线新功能,B 地区后上线。比较 A 和 B 的差异,可以推断功能效果。
方法三:工具变量(Instrumental Variable)
找一个影响处理变量但不直接影响结果的变量。
例子:用「距离商店的距离」作为「是否购买」的工具变量——距离影响购买,但不直接影响用户特征。
方法四:断点回归(Regression Discontinuity)
利用一个明确的阈值(比如年龄、分数)比较阈值两侧的差异。
例子:80 分以上获得奖励,80 分以下没有。比较 79 分和 81 分的用户——他们几乎一样,但一个有奖励一个没有。
产品经理的应用
应用场景一:功能效果评估
数据显示:使用新功能的用户留存率高 20%。
可能的因果关系:
- 新功能 → 高留存(功能有效)
- 高留存 → 使用新功能(高留存用户更活跃)
- 第三方变量 → 新功能使用 + 高留存(比如用户活跃度)
如何验证:
- 随机对照试验:随机 50% 用户使用新功能,比较留存
- 倾向得分匹配:匹配使用和未使用新功能的用户,控制混杂变量
应用场景二:用户行为分析
你发现:「周末下单的用户,客单价高 15%。」
可能的解释:
- 周末用户更放松,愿意花更多钱(因果)
- 周末用户有更多时间浏览,发现更多商品(因果)
- 高客单价用户更可能在周末下单(反向因果)
- 周末有促销活动(混杂变量)
如何验证:控制促销活动,比较同样促销条件下周末和工作日的客单价。
应用场景三:渠道归因
数据显示:「社交媒体带来的用户,7 日留存高 10%。」
可能的解释:
- 社交媒体用户质量更高(因果)
- 社交媒体用户本来就是你的品牌粉丝(混杂变量)
- 社交媒体渠道的用户更年轻,年轻人留存本来就高(混杂变量)
如何验证:用随机分配或倾向得分匹配,控制用户特征。
常见误区
误区一:看到相关就推断因果
「A 和 B 相关,所以 A 导致 B」
反例:「公鸡打鸣 → 太阳升起」——公鸡打鸣和太阳升起相关,但公鸡不会导致太阳升起。
误区二:忽略混杂变量
「新功能和高留存相关,所以新功能有效」
可能的混杂变量:用户活跃度、使用时长、用户特征。如果不控制这些变量,相关性可能是假的。
误区三:辛普森悖论
「整体数据显示旧设计更好,所以选旧设计」
分组数据显示新设计更好。整体数据的结论可能是被混杂变量扭曲的。看分组数据,不只看整体数据。
误区四:用观察数据推断因果
「观察数据显示 A 和 B 相关,所以 A 导致 B」
观察数据只能告诉你相关性,不能告诉你因果性。要推断因果,需要随机对照试验或自然实验。
PM/BA 应用
| 场景 | 相关性/因果性工具 | 决策价值 |
|---|---|---|
| 功能效果 | 随机对照试验 | 证明功能有效 |
| 用户行为 | 倾向得分匹配 | 控制混杂变量 |
| 渠道归因 | 自然实验 | 准确归因 |
| 辛普森悖论 | 分组分析 | 避免误导结论 |
| 因果推断 | 工具变量/断点回归 | 建立因果关系 |
课后测验
题目 1
数据显示:喝咖啡的人,心脏病风险高 20%。以下哪种解释最合理?
A. 咖啡导致心脏病
B. 喝咖啡的人更可能熬夜,熬夜导致心脏病
C. 咖啡和心脏病没有关系,只是巧合
D. 所有选项都有可能
查看答案与解析
答案:B(喝咖啡的人更可能熬夜,熬夜导致心脏病)
这是一个典型的混杂变量问题:
- 喝咖啡和熬夜相关(喝咖啡的人更可能熬夜)
- 熬夜和心脏病相关(熬夜导致心脏病风险增加)
- 喝咖啡和心脏病的相关性可能来自熬夜这个混杂变量
如何验证:控制熬夜变量,比较同样熬夜程度下喝咖啡和不喝咖啡的人的心脏病风险。
题目 2
你的 A/B 测试显示:新设计转化率 8%,旧设计 6%。但你发现新设计组有更多老用户。这可能是什么问题?
A. 样本量太小
B. 辛普森悖论(混杂变量)
C. p 值不显著
D. 随机分配失败
查看答案与解析
答案:D(随机分配失败)
如果随机分配成功,两组的用户特征应该相似。新设计组有更多老用户,说明随机分配没有成功控制混杂变量。
可能的原因:
- 随机分配执行不严格
- 用户自选择(不是真正的随机)
- 分层随机没有做好
解决方案:用倾向得分匹配或分层分析控制用户类型。
题目 3
以下哪种情况最适合推断因果关系?
A. 观察数据:使用新功能的用户留存高
B. 随机对照试验:随机分配用户使用新功能
C. 相关性分析:新功能使用和留存相关 r = 0.8
D. 回归分析:控制用户特征后,新功能和留存相关
查看答案与解析
答案:B(随机对照试验)
随机对照试验(RCT) 是推断因果关系的黄金标准:
- 随机分配消除混杂变量
- 两组只有处理不同,其他都一样
- 如果处理组结果更好,可以推断是处理导致的
A 和 C 只能说明相关性
D 比 A 和 C 好(控制了混杂变量),但仍然可能有未观测的混杂变量
RCT 是最强的因果推断方法。
本课要点
- 相关性 ≠ 因果性:两个变量一起变化,不代表一个导致另一个
- 混杂变量:真正的原因可能是第三个变量
- 辛普森悖论:整体和分组结论可能相反——看分组数据
- 随机对照试验:推断因果的黄金标准——随机分配消除混杂变量
- 观察数据只能说明相关性:要推断因果,需要实验或自然实验
延伸阅读
- Pearl, 《The Book of Why》 — 因果推断的通俗读物
- Holland, 《Statistics and Causal Inference》 — 因果推断的统计理论
- Angrist & Pischke, 《Mostly Harmless Econometrics》 — 因果推断的实践方法
下一步
Group C 完成!下一课开始 Group D:概率分布:用数学描述不确定性 — 常见的概率分布及其应用场景。
工具提示:每次看到「相关性」数据时,问自己三个问题:(1) 有没有混杂变量?(2) 因果方向是什么?(3) 能做随机对照试验吗?这三个问题能避免大多数因果推断错误。