相关性分
度量两个指标如何同动,以及不把相关当因果的关键纪—最常见的分析错误
为什么
相关性分析快、便宜、诱人:你有两列数字,跑 Pearson 系数,得—-1 —1 间一个像答案的数。危险在于相关是两变量的数学性质,但你实际问的是业务问题—X 是否导致 Y,以致我—X —Y 变?"。相关答不了 —冰淇淋销量和鲨鱼袭击相关,但禁冰淇淋不会减鲨鱼袭击。相关性分析的纪律是:算相关、诚实报"它们同动"、然 后做更难的工作判断关系是因果(通过受控实验)还是混淆(两者都被第三变量如夏天气温驱动)。跳第二步就是团队上—与留存相—但上线后什么都不动的功能的方式
何时使用
当你有两个指标想知道是否同动,作为因果实验的前置。绝不可单独作为上线决策依据
如何做
1. 先陈述业务问题:"使用功能 X 是否—30 天留存相关?" —问题决定相关哪些变量及如何切—2. 同粒度(每用户、每天)同时间窗拉两序列 —相关日聚—X 与每用户 Y 是无意义的数 3. 算系数前先散点图 —Pearson 0.4 可以是线性云、U 形或两簇,只有散点告诉你哪种 4. —Pearson(线性)—Spearman(单调)—若显著不同则关系非线性且 Pearson 误导 5. 查混淆:是否有第三变量(时间、队列、功能开关)驱动两者?按混淆切片在每片内重—6. 报为"X —Y 相关(r=0.42, n=1200),但未确立因果" —但书非可—7. 若相关强且想据此行动,设—A/B 测试:随机分功能 X、测 Y、比—只有 RCT 消解相关/因果鸿沟 8. —notebook 记散点、系数、混淆检查和但书 —让下一个人不重新发现它是混淆的
示例
# 问题:完成教程是否与 7 天留存相关?
n = 4,200 用户,注册于 2026-08-01 —2026-08-31
散点:tutorial_steps_completed—-8)vs days_active_in_first_7d—-7— -> 正向趋势,但两个可见簇:
—A(n=1800):完成 0-2 步,留存 0-2 — —B(n=2400):完成 5-8 步,留存 4-7 —
Pearson r = 0.61 Spearman rho = 0.58(接近,大致单调—
混淆检查:signup_source
organic:r = 0.18(此片内弱)
referral:r = 0.64(此片内强)
-> 总体 0.61 —referral 用户既完成更多教程又留存更多驱动— 两者皆由既有动机导致,非教程本身—
结论:完成教程与留存相关(r=0.61),但相—largely 被注册来源混淆—本就有动机的用户(referral)既完成教程又留存—勿据此上—强制完成教程" —A/B 测试随机教程显著度并按来源测留存。常见问题
- ⚠在聚合数据(日总计)上算相关而非每用—两个都随时间上升的日总计总高度相关,但这—时间流—的重言式非"X 导致 Y"
- ⚠忽略 Simpson 悖论 —总体相关为正但每子组为负(或反之),按聚合相关行动损害每组
- ⚠把高相当因果证明并上线功—"用功—X 的用户留存更好,所以应强制功能 X"是经典的相干/因果错误,A/B 测试正是为防此而生
- ⚠报系数不带散点图 —干净线性云—Pearson 0.5 和有间隙两簇—Pearson 0.5 是完全不同的关系,单数字隐藏你有的是哪种
最佳实践
- ✓信系数前总看散点 —系数是散点的摘要,U 形或两簇分布的摘要是隐藏决定行动的形状的数字
- ✓按每个似真混淆(队列、来源、套餐、地域)切片报片内相—若片内相关与聚合不同,你有混淆且聚合误导
- ✓用相关生假设,用 A/B 测试—相关快便宜告诉你看哪;RCT 慢贵告诉你真相;两者都要且此序
- ✓系数旁报样本量和置信区间 —r=0.6 —n=30 是噪声,r=0.6 —n=3000 是发现,—n 的数字不可解读