【干货烧脑】如何预测一个互联网产品的未来—一套关于产品的数学模型

11 评论 17389 浏览 163 收藏 17 分钟

这套模型是我在运营路况电台2000万用户过程中积累出来的,也是我们团队做产品迭代,运营和产品目标设定最基本的方法。这个产品模型从几个相对不同的维度定义一个产品的关键要素,是测量产品好坏最核心的指标,通过这套模型能迅速发现产品的问题,留住用户的能力并预测产品未来的走向。

对于一个产品,大家都知道留存和黏度等基本指标是非常关键的,如何预测一个产品的未来,也恰恰是这些指标。要预测产品未来,就得先研究清楚这些基本产品指标的规律。

留存率的规律

留存率是一个产品最核心的指标,这是一个产品留住用户的能力,也是产品经理最应该关注的指标,因为产品迭代改进绝大多时候是在优化这个指标。 留存率的统计一般会按照时间的跨度按(日、周、月)来统计,按照时间维度,有次日(周、月)、2日(周、月)、…. 、7日(周、月),30日等多个统计维度,但是无论哪种跨度,都遵循相同的规律。下面我们用月留存来举个例子说明,下表是某产品的月留存率数据:

趋势如下:

左边是留存趋势图,右边是一个衰减幂函数的图像,大家是不是看这两个趋势有些相似,是的留存率的趋势就是遵循幂函数的规律,不同的是我们看到的留存率趋势图都是取自变量 x >=1之后的数据,因为留存率的统计都是1日(周、月)之后的整数。 任何留存率的趋势都是一个幂函数

所以说一个产品的留存率由两个参数 a 和 b 决定,那我们进一步探究 a 和 b 的规律。

  1. a 是幂函数下降的起点值,在留存率趋势来说就是我们常说的次日(周、月)留存率,下面我们以 C 来代表这个值。
  2. b 是幂指数衰减的趋势,代表留存率的衰减速度,我们以 R 来代表这个值。

C 值和 R 值的计算,一般有两种方法,一种是通过拟合算法得来,另外一种是通过幂函数模型反算出来;拟合算出来的准确度更高,并且可以算出拟合误差,不过拟合出来的 C 值和次日(周、月)留存率会有微小的差异,同时计算的复杂度稍微大一些;第二种通过模型反算比较简单,很适合表格公式操作,为了简单方便我一般都用第二种算法,给大家介绍一下反算的方法:

用 C1,C2,C3,…Cn 来表示 1,2,3,…n 日(周、月)的留存率:

C =C1

R = average( log2(C2/C1),log3(C3/C1),…,logn(Cn/C1) )

回到我们上面举例子的产品,根据已知的留存数据,我们通过模型计算出来这款产品留存的趋势模型是:

留存率= 43.7x^{-0.53307},(其中C=43.7,R=-0.53307)

在实际使用过程中,通过已有几日(周、月)的留存数据,按照模型就可以反算出 C 值和 R 值,从而推算出将来几日(周、月)的留存率数据。

这里很多童鞋可能会问,我的产品留存率趋势不是按照这个模型衰减的,我的回答是产品的留存衰减一定是满足衰减幂函数模型的,如果你的产品衰减不遵循这个模型,一定是产品中掺杂了很多非正常的噪声,这个时候你就要高度警惕了。我之前见过一些产品就因为渠道刷量、刷回访造成产品留存违背模型的情况,这个时候你就需要问责渠道了。用这个模型除了可以监控渠道异常之外还可以通过短期的数据来预测长期的留存成本,快速监控渠道质量。

下面我们来通过几张图来看看 C 和 R 这两个参数对留存率的影响,用另一款产品来说明:

1. R值对留存率的影响

上图左边是一个标准的幂函数随着幂指数变化的趋势图,从图中可以看到,幂指数alpha越接近0(越大),幂函数衰减的速度越慢;幂指数越小,幂函数衰减的速度越快;右边的图片是一个实际产品的数据,假设通过不断优化产品,让 R 值从 -0.825 提升到 -0.525 的趋势,从图上看出,当幂指数提升到-0.525的时候,第6日的留存率提升了5个百分点以上。因此要提高留存率,一定要努力提高 R 值。

2. C值对留存率的影响

C 值代表留存的起点,从图中可以看出 C 值越高,以后各日(周,月)的留存值也会更大,这也就是我们常说的出身决定未来啊O(∩_∩)O哈哈~

上面的内容比较烧脑啊,很多数学公式,我本不想故作高深,但是为了把模型说明白,只能这样。数学不好的童鞋们,也不用关注太多公式的事情,只需要知道一件事情 产品的留存率满足数学规律并和两个参数相关,一个是次日(周,月)的留存,一个是留存的衰减趋势,改善产品留存就努力改善这两个参数。

说到这里可能很多童鞋会问,我产品的 C 值和 R 值到底是好是坏了,这个没有一个统一的结论,因为产品解决的需求不一样,新增用户规模不一样,没有统一的标准。不过对于一个刚上线的纯移动互联网产品,用户规模不大的情况下,如果 C 值低于35, R 值小于-0.6的话,就要警惕产品是否有问题了。

产品的黏度指标

黏度指标对产品是很关键的指标,它说明了用户使用产品的频次,我们通常用MAU/DAU(MAU=月活,DAU=日活) 来定义产品的黏度指标,这个比值代表用户回访的天数(几天会用一次产品),当MAU/DAU=1的话说明这款产品用户每天都用;为了更方便理解,这个指标也可以这样计算 DAU/MAU * 30 ,这个指标代表用户一个月会用几次产品,下面是两个产品的实际数据:

产品1的用户一个月会用2.6次,产品2的用户一个月会用5次,是产品1的一倍,说明产品2比产品1更有黏度。对于游戏或者社交类产品的MAU/DAU一般都会小于5,如果一款游戏产品MAU/DAU 大于5的话,这款游戏的盈利能力就会有问题,工具类产品这个值也不能超过10,小于7基本是比较合理的。

理解活跃用户(Active User)

前面这么烧脑的研究留存率的规律和黏度的指标,其实都是为了下面真正探究一个产品活跃用户的规律。很多人最关注的往往就是产品的日活,它代表一个产品活跃用户的总量,也通常是很多产品的终级KPI。因此理解日活的规律是合理制定KPI,并找到可达目标方案最有效的办法。

DAU(MAU) = 当日(月)新增 + 累计历史日(月)留存

我们以MAU来简单说明,以上面举例的一个产品的留存数据为基础,假设该产品每月新增100个用户,MAU的累计图如下:

从图上大家可以看到柱状同色用户量的衰减和留存率的衰减是一致的。从活跃用户的构成上来看,除了新增用户之外,活跃用户的另外一部分是由历史留存用户构成,而历史留存用户由留存率决定。为了进一步说明活跃用户和留存率的关系,我们还是拿上图的产品,如果留存模型中的 R 值变化,MAU会有什么样的影响:

从图中可以看出,从相同的起点开始, R =-0.625的产品比 R =-0.825,在第7个月的时候总活跃用户多了8%,如果时间更久的话,差距会更大,足见R对长期活跃用户的影响是非常大的。

预测你产品的DAU

DAU是大家最关注的宏观指标,是很多产品的KPI,所以如何科学合理的制定DAU 的目标是非常关键的。预测DAU其实也不难,按照下面3个公式就可以完成预测:

  1. 预测DAU = 预测MAU / 预测(MAU/DAU)
  2. 预测MAU = 预测当月新增 + SUM(历史月留存)
  3. 历史月留存 = 历史月新增 * 历史月到预测当月的留存预测值

历史月到预测当月的留存预测值 是通过留存率模型中 C 值和 R 值来计算的。

从上面的公式可以看到,预测DAU的关键控制指标为以下四个:

  1. C 值 次月留存率
  2. R 值 月留存衰减趋势
  3. MAU/DAU
  4. 月新增(MNU)

如果用数学公式表达的话,

DAU = f(C,R,MAU/DAU, MNU)

通过上面的公式可以向后预测多月之后的DAU值,比如说年初要设定年末的DAU目标,根据产品现在的模型参数,预计改善的产品参数目标和新增用户目标,准确预测DAU,预测DAU满足预期目标之后,再反过来就可以得到要实现的产品模型参数,形成分解目标。有了分解的目标,最终完成整体目标的可能性就高多了。

预测的方法上面已经说清楚了,用下面的几张表格说明具体计算的过程,我们根据2015年10月份到2月份的产品数据来预测2016年4-6月份的DAU数据:

1. 根据现有的留存数据计算留存率参数

黄色部分就是根据现有数据估算的 C 值和 R 值,绿色部分是根据留存率模型估算的往后的留存率数据。

2. 设定预计导入的新增用户,并根据估算留存率数据,计算逐月的留存用户

a.设定预计导入的新增用户如下:

b.依次计算逐月的留存率

c.逐月计算月留存用户

如图中可以看到,为了计算16年6月的MAU,需要把这之前的所有月份(2015年10月到2016年5月)到2016年6月份留存下的用户全计算出来。

3. 累计历史留存用户,计算MAU

图中黄色是16年6月份的MAU,从图中公式可以看出它是历史所有月留存用户和当月的新增用户之和。

4. 以往MAU/DAU均值作为 MAU/DAU的预测值

5. 依据 估算MAU值,MAU/DAU,计算DAU

图中黄色部分为计算出来的DAU,后面并根据实际值,计算了估算误差,经过多次验证,这个模型估算的误差较小,不会超过10%,如果没有大幅的数据波动,一般都会在5%以内。在用这个模型的时候大家,可以通过调整参数,预测指定时间的DAU,办法就是调整产品的参数和新增用户量达成DAU目标,从而反得出产品控制参数。

警惕DAU这个虚荣指标

前面讲过DAU往往是大家最关注的宏观指标,也是很多产品的KPI,但是DAU是个绝对值指标,根本反应不了产品的实际状况,反而这个指标往往容易骗人,经常会给产品经理带来沾沾自喜的感觉,但是我想告诉大家的是,日活其实是个虚荣指标,如果你的产品没做好,再高的日活都是浮云。由于DAU 是新增用户和历史留存用户之和,大量的新增很快会推高日活,导致日活不断增长,但是如果产品的留存数据不好,黏度指标不高的的话,历史留存用户的增量会越来越小,甚至成为负增长,这时候你的产品日活主要是靠新增拉动,一旦新增降下来,日活将剧烈下降。

这套模型我想告诉大家的是产品的关键指标是留存和黏度参数,DAU可以是产品的整体目标,但是达成的手段是优化留存和黏度这些产品参数,如果没有这些数据的提升,导入再多的新增也没有用,会全部流失掉。

这篇文章理论性比较强,涉及到一些数学模型,很多童鞋如果没有实战过的话不一定能完全掌握,大家在阅读或实际运用过程中如果有问题可以随时找我沟通。

DAU预测模型文件下载:

作者提供链接: http://pan.baidu.com/s/1c1GRwQ0 密码: jwnr

人人官方链接: http://pan.baidu.com/s/1ge6CveF 密码: wxxc

 

作者:李建刚,路况电台创始人兼CEO

链接:https://zhuanlan.zhihu.com/p/20760624

本文由 @李建刚 授权发布于人人都是产品经理,未经作者许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 为什么不直接用C、R函数和日新增用户数去直接计算DAU呢?为什么还需要引入月新增,粘性指标和

    来自浙江 回复
  2. 请问如何提升R值和C值呢?有没有相关文章可以推荐呢?谢谢~

    来自上海 回复
  3. 来自广东 回复
  4. 上面的公式是基于归纳演绎推出来的,但是归纳演绎得出的结论有一个隐含条件就是:未来会和过去一样。但是市场是不断变化的,上面推导出的公式又能适用多久?

    来自浙江 回复
    1. 所以就是要不断【监测】数据,【预测】未来,通过运营和产品手段改变核心变量,并关注数据【检测】策略,做负熵。

      来自四川 回复
  5. 你好,文章写得非常好,很值得我们大家学习。有个地方我稍微提出以下我的异议,R = average( log2(C2/C1),log3(C3/C1),…,logn(Cn/C1) )这里您使用的是均值的算法,我认为这个地方更适用于牛顿上山或牛顿下山的算法进行迭代,不过要判断级数的收敛性,用平均的方法我没有验证与迭代方法具有多大的偏差。期待向您继续交流学习,谢谢。

    来自北京 回复
  6. 学习了,虽然有点难,但做就要做到专业!

    来自重庆 回复
  7. 我按照幂函数算了一下, 有百分之一点几的误差。还挺大的

    来自上海 回复
  8. 脑子已经烧坏,请收下我的膝盖 ➡

    来自天津 回复
  9. 不明觉厉啊

    来自北京 回复
  10. 头疼

    来自广东 回复