用户行为分析:漏斗、留存与因果推断
漏斗只是开始,留存才是关键。本文分享从行为日志到增长方案的完整链条,重点讲怎么用因果图替代相关性观察,避免把偶然当成规律。
行为分析的三个最常见形态
在业务团队里,行为分析最常被问的问题有三种:
- 用户在哪些步骤流失?(漏斗)
- 哪些用户留下来、哪些走了?(留存)
- 做这个改动是不是真的有用?(因果)
这三种问题用到的工具与逻辑都不同。下面就按这个顺序展开。
漏斗:从转化率到路径
漏斗是最直观的形态。假设我们的电商核心转化路径是「首页 → 详情页 → 加购 → 支付」。最简单的一阶漏斗就是各步转化比。但更现实的是要分析「跨步行为」:
- 走「搜索 → 详情」的人与走「推荐 → 详情」的人,转化是否不同?
- 把首页停留时间拉长 5 秒,是否拉高转化?
漏斗代码可以这样写:
WITH steps AS (
SELECT user_id, MIN(event_time) AS first_event
FROM events
WHERE event_name IN ('home_view', 'product_view', 'add_cart', 'pay')
GROUP BY user_id, event_name
)
SELECT
COUNT(DISTINCT CASE WHEN event_name='home_view' THEN user_id END) AS step1,
COUNT(DISTINCT CASE WHEN event_name='product_view' THEN user_id END) AS step2,
COUNT(DISTINCT CASE WHEN event_name='add_cart' THEN user_id END) AS step3,
COUNT(DISTINCT CASE WHEN event_name='pay' THEN user_id END) AS step4
FROM steps;
留存:从「总量活跃」到「cohort」
留存分析只看一个数字「DAU」是不够的。当我们想描述「一群用户在接下来的日子里回来了多少」,cohort 是最好的工具:
| 注册周 | D0 | D7 | D14 | D30 | D60 |
|---|---|---|---|---|---|
| 2026-W12 | 100% | 42% | 30% | 20% | 14% |
| 2026-W13 | 100% | 45% | 32% | 22% | — |
| 2026-W14 | 100% | 40% | 27% | — | — |
把每一周注册的人群作为一行,后续列是他们过 N 天后的回访比例。当某一行整体高于另一行,则说明用户质量或拉新策略改善了。
为什么单纯看漏斗会误导
我们曾遇到一个反直觉案例:
- 在「支付 → 支付完成」之间加了一个二次确认步骤。
- 漏斗显示:这一步流失率 15%,但总 GMV 没有变化。
- 进一步分析发现:这一步筛选掉了高风险用户,降低了退款率。
漏斗是局部视角,要结合退款率、留存、最终 LTV 一起看。
因果推断:超越相关性
「点击 banner 的人,下单率更高」是不是证明 banner 有效?不一定。可能是因为「喜欢 banner 的人」本身就是高价值用户。
工程师常用的因果方法:
- RCT(随机对照实验):金标准。但成本大。
- 倾向得分匹配(PSM):把相似用户配对。
- 差分 / DiD:看 treatment 组与对照组在同一时间窗的趋势差。
- 回归不连续(RDD):用阈值断点识别局部处理效应。
在数据分析中,区分「相关」与「因果」是一种思维纪律。它会决定你的结论有多可靠。
用户行为图:用图谱看行为
漏斗是「线性」视角,更高维度的形态是把用户行为描述成图。例如:
import networkx as nx
G = nx.DiGraph()
for u, e1, e2 in behavior_pairs: # 用户 u 连续做了 e1、e2
if G.has_edge(e1, e2):
G[e1][e2]['weight'] += 1
else:
G.add_edge(e1, e2, weight=1)
# 用 pagerank / betweenness 找关键路径
在 2000 万用户行为图上跑 PageRank 找最关键的转化路径,对功能设计很有启发。
归因模型:从最后点到多点归因
广告归因里有「最后一点」、「首次」、「线性」、「加权」。把行为归因模型化是数据团队的基本功。常见三类:
- 第一次归因:用户第一次接触的渠道。
- 最后一次归因:转化前最后接触。
- 多点归因:每个接触点按权重贡献。
不同归因模型下同一笔订单的渠道归属可能完全不同。要让业务团队用「通用归因模型 + 专项专题」组合。
用户研究 vs. 行为数据:互补关系
行为数据回答「他们做了什么」,用户研究回答「为什么做」。两套数据合在一起才有判读力。比如:
- 行为数据显示:某按钮点击率近 3 周下降了 30%。
- 用户访谈发现:图标颜色与之前不一样,被用户误认为是广告。
只有数字没有原因、只有原因没有数据,都会判断失误。
给团队的简单建议
- 任何「指标变化」都要分 cohort 看,必要时配对检验。
- 漏斗与留存要联动分析,单独看任何一项都会偏。
- 重大改动务必 RCT,至少做 PSM 验证。
- 归因要有统一约定,不要一个项目一个规则。
- 把「数据 + 用户访谈 + 工程师直觉」当三件套。
用户行为分析是一项业务工程。它不靠天赋,靠的是流程:把数据收集、问题拆解、结论交付变成日常。做得越多,越容易在「混乱」中给出清晰答案。