TT Lab
开始
学习 学习路径 课程

开发者创业 — 先验证再动手

留存同期群 — 分母错了,全都错了

在 TT Lab 中继续学习

一句话总结

留存率是“注册的人当中,N 周之后仍在使用的人所占的比例”。把同一周注册的人作为一组(同期群,cohort),分母始终是该同期群的注册人数,尚未到来的周不是 0,而是空格。只要守住这两点,创业早期最常见的三种错觉就会消失。

为什么需要它

月活跃用户每个月都在增加。但新注册用户增长得比它更快——这就像水桶漏了洞,却在更快地往里倒水。总的活跃数把流入的水和漏出的水混在同一个数字里。产品是否留住了人,必须单独去看同一时期进来的人,随着时间推移还剩下多少,才能看出来。这就是同期群。

是增加广告费,还是多做功能,或者停下来重新思考,大多是由这一条曲线来决定的。如果曲线在某个位置趋于平缓(不再下降),就意味着有被留住的人;如果一直向 0 下降,就意味着产品还没有成为某些人的习惯。所以计算一旦出错,决定就会整个出错。

工作原理

同期群与周次。本实验中,同期群是注册时刻按首尔时间计算的周(从星期一开始)。第 N 周留存是指“把注册那一周算作第 0 周,在第 N 个周有 session_start”。画成表,行是同期群,列是 N,就成了一个三角形——越晚注册的同期群,右边的格子越是空的。

陷阱 1——分母。如果把第 N 周留存率的分母定为“第 0 周有活动的人”,那么只注册、一次也没来过的人就会悄悄被去掉,留存率就升高了。这等于把注册漏斗的问题(首次体验失败)从留存表中抹掉了。分母是注册人数。如果想单独看首次体验,要用另一个指标——激活率——来记录。

陷阱 2——尚未观测到的格子。第 11 周注册的同期群,其第 6 周还没有到来。如果把这个格子填成 0 再对多个同期群取平均,最近的同期群越多,曲线就越会虚假地折下去。把多个同期群合在一起计算第 N 周留存率时,要只收集已经观测到第 N 周的同期群,并按人数加权(同期群比率的简单平均,会把 20 人的同期群和 200 人的同期群看得同等重要)。在生存分析中,这样的格子称为“删失(censoring)”。

陷阱 3——幸存者偏差。“问了现在仍在使用的人,发现他们在第 4 周也大多在使用”,这是理所当然的。只挑现在还留下的人来看过去,离开的人就不在样本里。同期群要在注册时点就固定名单,并把这份名单一直追踪到底。不能用后来的信息(现在是否活跃、是否付费)重新挑选名单。

两种留存。“第 N 周来了吗(bounded)”与“第 N 周或之后有没有至少来过一次(unbounded)”是不同的问题。每周都用的工具适用前者,偶尔才用的工具(报税、旅行预订)则是后者更符合产品的性质。如果不写下用的是哪一种,两个人看同一张表,就会说出不同的数字。

曲线趋于平缓的位置。本实验把“与上一周相比,留存率的下降小于 2 个百分点的第一个 N”定义为趋于平缓的位置。基准值 2 个百分点是本实验的示例规则。要根据产品和样本量来定,但一旦定下,就不要改。

统计什么活动。本实验把“该周有 session_start”视为活动。正如在指标模块中看到的,如果把活动的定义改为核心行为(share_doc),整条同期群曲线都会下降,曲线趋于平缓的位置也会不同。与其说哪个定义才对,不如说在比较曲线时,只能在相同的定义之间比较。如果在更改定义的那个月曲线变好了,那就不是产品变了,而是定义变了。

在现场相遇的样子

如何发现自己做错了

下一项实验要做什么

你将用“Moanoteu”的 12 个每周同期群构建留存三角形,把三个陷阱(分母、空格、幸存者)故意犯一遍所得出的数字与正确的数字并排写下来。接着计算只收集观测完毕的同期群的加权留存率、bounded 与 unbounded 的差别,以及按注册渠道的第 4 周留存率,汇总成一份报告。评分器还会用变形的材料,再次运行你的函数。