公众号后台回复“图书“,了解更多号主新书内容

作者:青十五

来源:青十五

1、从LTV预估开始说起

上次职人社的文章,介绍了LTV的预估方法,这是许多业务UE模型和增长模型的起点:

其中,用户生命周期又可以用累加的留存率来计算:

不过,这里面使用的留存率却未必是实际发生的历史数据。

因为我们做决策时往往等不了那么长的时间,所以我们一般使用的是根据前面一小段时间的数据拟合出来的留存函数R(t)。

那留存函数应该怎样拟合呢?

2、留存函数拟合

许多文章或资料会推荐这么一个方法:

(1)把过去的次日、3日、7日、14日、30日等留存率记录在Excel中,画出来一个散点图;

(2)然后点击图上的数据点,右键选择“添加趋势线”,这时右方就会出现可以拟合的曲线类型(指数、线性、对数、多项式、乘幂、移动平均);

(3)打开显示公式和R平方项,在这些曲线类型和公式中,选择R方最接近1的那个(一般是指数或乘幂),即为最终拟合得到的留存函数R(t)。

番茄小说2021.05新用户留存率,QuestMobile

选择R方最接近1,意味着找到了拟合程度最高的函数作为留存函数R(t),接下来就可以回到LTV预估的主线去了。

不过这里有个小问题,却似乎鲜有人讨论过:

为什么是指数或乘幂这两个函数?如果拟合的结果是这两个函数中的一个,意味着什么?它俩最核心的差异和联系在哪?

3、两个函数的差异

这两个函数有什么差异呢?

如果光从函数本身看,指数函数和幂函数的核心差异在于衰减的速度。

指数函数的表达式为:

幂函数的表达式为:

根据表达式我们可以推导出,如果以3天为一个周期,对于指数函数来说,留存率每三天会以同样的速度衰减:

而对于幂函数来说,留存率衰减的速度会逐渐放缓,下一个同比例衰减周期会拉长到6天,即上一个周期的两倍:

我们总是希望留存率的衰减能够慢一些,所以相比之下,拟合成幂函数是更希望看到的结果。

4、艾宾浩斯遗忘曲线

那这两个函数有什么联系呢?

1885年,德国心理学家艾宾浩斯(H.Ebbinghaus)首次对人类的记忆进行了定量研究,他用无意义的音节作为记忆的材料,通过记录一段时间后被试人员对这些音节材料的记忆留存率,绘制出了这样一个曲线:

这个曲线也被称为艾宾浩斯遗忘曲线(或记忆曲线),可以看到通过对这个曲线进行拟合,得到的拟合度最高的是一个幂函数。

不过后续人们的研究表明,单一的遗忘曲线实际上应该是更接近指数函数的,结合前面提到的指数函数的性质,说明人类会以一个固定的周期等概率地遗忘大脑中的信息,是一个很符合大自然规律的现象。

而艾宾浩斯之所以拟合得到了幂函数,是由于最初的记忆实验,混杂了不同难度的记忆材料,这种混杂改变了遗忘曲线的指数性质。

下面的这个例子,可以解释这一现象:

图中黄色和紫色曲线,分别代表两种难度记忆材料的遗忘曲线,它们都是指数函数  ,其中k的大小不同,代表难度不同;

而黑色的散点,则为两个函数的平均值(或可泛化为线性组合),通过对这些散点进行拟合,会发现一个有趣的事实:

某些情况下,对两个指数函数线性组合后的曲线,拟合度更高的(即R方更大的),却不再是指数函数了,而是幂函数!

这个有意思的现象,各位有兴趣的话,可以自行验证一下。

5、遗忘曲线与留存曲线

关于遗忘曲线的结论,对我们理解留存曲线有什么帮助吗?

事实上我们早就发现,这两个曲线惊人地一致。

如果把拉新激活的动作视为最初始的记忆训练,那么在后续的时间里,如果没有再次激活,用户就会以一定的概率,自然而然地遗忘我们的App,表现就和遗忘曲线是一样的。

为了让用户回到我们的App,提升用户留存率,我们通过各种push召回它们,这也和关于记忆的研究中,定期复习的方法如出一辙。

同时,和混杂材料带来的遗忘曲线类似,绝大多数功能丰富的成熟应用,留存曲线都应该是衰减程度更慢的幂函数。

事实上也确实如此,包括前面提到的番茄小说例子在内,我从QuestMobile验证了其他一些常见App,以及手头有的一些内部数据,它们的留存曲线的确都是拟合成了幂函数:

番茄小说、知乎与陌陌2021.05新用户留存数据,QuestMobile

6、对数函数与其他LTV预估方法

最后再补充两个点。

在前面的趋势线拟合中,有一个对数函数可能会是迷惑选项。

对数函数的表达式是:

随着t的增长,对数函数计算得到的结果很可能会小于0,而不是像指数函数和幂函数一样始终保持大于0的结果。

小于0的留存率是没有意义的,因此如果最优拟合的结果是对数函数,更可能的情况是巧合或者样本量太小,对数函数在这个场景下本身没有合理的物理意义。

不妨在指数函数或者幂函数中选择一个,他们的拟合度离最优拟合应该差不了多少。

而对于最开始提到的LTV预估公式:

需要说明的是,这里面隐藏了一个假设:ARPU值恒定不变,是个常数

但在现实情况下,这样的假设往往会带来一些误差,因为随着留存时间增加,这部分用户的ARPU总是会随之有所变化。

一种调整的方法是对ARPU同样进行预估,将公式改造为:

不过ARPU的变化规律可能很难找,或者压根就没有像留存曲线这样简单清晰的规律。

因此另一种调整方法是不做拆分,用更多样本数据和特征数据,整体地对用户贡献价值进行函数拟合预估:

这样的方法需要足够多的样本,本身也更适合需要精细化的运营场景,这里就不再展开了。

参考资料:

[1] https://supermemo.guru/wiki/Exponential_nature_of_forgetting

[2] https://supermemo.guru/wiki/Forgetting_curve

◆ ◆ ◆  ◆ ◆
麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。管理员二维码:猜你喜欢● 卧槽!原来爬取B站弹幕这么简单
● 厉害了!麟哥新书登顶京东销量排行榜!
● 笑死人不偿命的知乎沙雕问题排行榜● 用Python扒出B站那些“惊为天人”的阿婆主!
● 你相信逛B站也能学编程吗

LTV预估与留存曲线拟合:指数函数还是幂函数?相关推荐

  1. 手游ROI及LTV预估方法

    文章目录 一.定义 二.计算公式 三.计算过程 1.留存率预估 2.一段时间内ARPU&累计ARPU预估 3.预估与真实值之间校正 一.定义 LTV:用户生命周期价值 ROI:投资回报率 二. ...

  2. 能计算对数函数、指数函数和幂函数的模拟计算机

    能计算对数函数.指数函数和幂函数的模拟计算机 在对数函数y=loga x(a>0,a≠1,x>0)中,自变量x和因变量y之间是对数关系,就是a的y次方的计算结果是x.现代模拟电路中,可以使 ...

  3. Madagascar的自定义浮点型函数--指数函数和幂函数

    在Madagascar中,有自己定义的幂.指函数,它们都在头文件rsf.h中,形式如下: float expf(float x); /*< float exp >*/float powf( ...

  4. 指数函数,幂函数记录

    1,指数函数 底越小,曲线越缓:底越大,曲线越陡. import matplotlib as mtimport matplotlib.pyplot as plt import math import ...

  5. mysql日活统计函数_如何通过简化日活模型,预估一个产品的日活(DAU)?

    本文笔者通过简化日活模型,粗略地估算出未来一段时间的产品日活规模.进而通过日活的规模,再去估算一些潜在收益,以及运营成本等等数据. 这段时间,经常有人问到以下的问题:按照现在的推广和留存,我们在未来最 ...

  6. dau计算公式_如何预估一个产品的日活(DAU)?

    20190601更新说明:欢迎大家关注我的微信公众号:南村小付,一起交流. 20190328更新说明:文末有直接计算的工具 hello,大家好,我是蛋蛋.这段时间,经常有人问到以下的问题: 1.按照现 ...

  7. ltv价值 应用_手游LTV(用户终生价值)计算公式

    在承接APP推广项目中,手游价值变现最直接,核心是获取更多的充值,其中LTV(Lifetime-Value生命周期价值)是一个重要参考指标,可以理解为玩家在其生命周期内对游戏的平均贡献值,为什么要计算 ...

  8. 手游LTV(用户终生价值)计算公式

    在承接APP推广项目中,手游价值变现最直接,核心是获取更多的充值,其中LTV(Lifetime-Value生命周期价值)是一个重要参考指标,可以理解为玩家在其生命周期内对游戏的平均贡献值,为什么要计算 ...

  9. 浅谈游戏数据分析---留存篇一-留存折损

    留存折损-–两个不同节点的留存之间的比值,用于判断留下用户的留存情况,即真实用户的留存.  换一种维度去分析留存,不拘泥于留存的绝对值,将留存统一化,提炼客观的参考标准. 常见的留存疑惑:**  我的 ...

最新文章

  1. linux配置文件怎么把某行后几个字符替换_vim(Linux运维)
  2. 【数据库】基础知识总结
  3. TCP/IP详解--学习笔记(13)-TCP坚持定时器,TCP保活定时器
  4. 基于wayland的linux桌面,揭开Wayland的面纱(二):Wayland应运而生
  5. 百度地图android自定义文字,androidsdk | 百度地图API SDK
  6. SpringCloud之Feign源码分析
  7. openshift介绍及centos7安装单节点openshift、Redhat安装openshift集群完全教程
  8. C#中你想象的Task,很简单?
  9. Spring MVC —— 前后台传递JSON
  10. 归并排序Python代码
  11. 曝微软将发布基于 Excel 的低代码语言:Power Fx
  12. 深入理解 ViewState
  13. 在linux 或docker中使用 system.drawing.common
  14. 高效液相色谱分析的基本原理
  15. java动态生成HTML文件
  16. 插值器和估值器概述与使用
  17. 工业过程建模与先进控制(十)MPC的MATLAB命令
  18. vs2015开发在网页中调用的ocx控件详解(二)
  19. bugku ctf 妹子的陌陌 (想要妹子陌陌号吗? 做题来拿吧)
  20. 达梦数据库修改字段(列)(基表修改语句)

热门文章

  1. Folx Pro5 MAC激活密钥序列号下载V5.20.13943
  2. 关于西门子PC Adapter USB对于PPI协议的支持问题的结论(2015-10-19相反的结论):
  3. 今年应避免的网站营销错误
  4. watir-webdriver相关知识
  5. Kubernetes Dashboard部署
  6. 下拉推广系统立择火星推荐_下拉词推广权威易速达
  7. 【9008】香甜的黄油
  8. rtge更好发挥士大夫广告的通过合同
  9. 说说我的专业计算机作文,电脑让我欢喜让我忧作文600字
  10. CF197D Infinite Maze 解题报告