用户增长——CLV用户生命周期价值CLTV 笔记
Posted 悟乙己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户增长——CLV用户生命周期价值CLTV 笔记相关的知识,希望对你有一定的参考价值。
文章目录
1 概念介绍
1.1 概念介绍
文章[1] 提及,
LTV(Life Time Value),也即用户在生命周期中贡献的商业价值,是用户增长中非常核心的一个指标项。快速准确的对LTV进行建模预估,对于产品商业能力衡量、渠道质量优劣评估、甚至产品的商业闭环能否跑通都起着关键作用。本文将主要介绍LTV建模及其场景应用。
用户的生命周期持续时间很长(几个月甚至到几年),如果等用户经历了整个生命周期再来计算用户LTV,对于绝大多数商业决策是严重滞后的。因此需要对LTV进行预测,通过用户一定时间窗口(例如7天,14天)的实际数据,预估用户整个生命周期的LTV。
对于大多数产品而言,用户在刚开始阶段贡献较多的价值,随着用户逐渐流失,商业价值越来越低,直至归零。
因此用户LTV过程呈现出图1的走势,很类似幂函数(指数小于1)或者logistic函数(sigmod函数)形状。因此可以采集用户前N天实际产生的数据,通过幂函数、logistic回归、或者神经网络对LTV建模预测未来趋势,从而计算得出用户LTV。这种方式由于没有深入建模产品的收入过程,因此LTV预估准确率相对较为一般。
文章[1] 提及,
LTV伴随着整个产品方方面面的决策,最主要应用在以下2类场景:
- 产品行不行:通过LTV,我们可以清晰计算出用户在产品中的活跃周期,商业价值,再与用户成本进行对比,即可辅助分析产品的商业闭环是否成立,资金周转周期快慢、盈利状况如何。
- 渠道好不好:通常产品都会从多个渠道去获取用户(预装、store、信息流、SEM……等等),每个渠道获取用户的成本不一样,新用户的质量更是参差不齐。因此需要对每个渠道的新增用户价值进行预估,通过ROI来评估渠道质量的好坏。
1.2 关联指标
几个基本的概念:
LTV:Life Time Value,指用户在整个生命周期中贡献的商业价值;LTV365也即用户在新增期后的365天所贡献的商业价值。
CAC:Customer Acquisition Cost,指获取一个用户所付出的成本,例如在SEM渠道获取一个激活用户所花费的费用。
ROI:Return On Investment,投资回报率,ROI=LTV/CAC。
ARPU DAU( 平均每用户收入 - 日活 Average Revenue Per User Daily Active User):活跃用户日均ARPU值,也即用户活跃一天所能带来的日均收入。
R:用户日留存率,例如次日留存率、7日留存率等,第t天留存率记为R(t)。
CPI:Cost per install,按照安装付费
1.3 计算方式
文章[1] 提及,
互联网产品主流盈利模式主要有以下几种:电商、广告、游戏、打赏,不同的盈利模式下用户LTV计算方法均各不相同。
例如:
- 电商类型的产品,用户LTV主要与用户日(月)均消费额、商品毛利率、用户日(月)流失率相关;
- 以广告收入为主的产品,用户LTV主要与用户的留存率和日均贡献广告收入相关。
1.4 LTV的价值
DTC 品牌会采用「增长黑客」的模式关注用户增长,这个法则就是:LTV / CAC > 3。
LTV / CAC 是一个计算效率的工具,LTV(Life time Value)是客户终身价值,指的是每个用户(购买者、会员、使用者)在未来可能购买该产品或服务带来的收益总和,CAC(Customer Acquisition Cost)则是单个客户的平均费用。
它通过提出一个简单的问题:一个客户的价值(LTV)是否大于获取该客户的成本(CAC)?
所以,相比传统计算 CPC 和 CPA,DTC 品牌会通过这个公式来解决以下问题:
- 市场进入战略是否有效、全面以及带来边际效应?
- 何时/何处投更多的钱到销售和营销中?
- 应该在销售和营销中投入多少资金?
- 哪种客户、产品、业务种类等是最盈利的?
未来品牌指南:DTC 品牌的核心特点 | BrandStar
客户终身价值(CLV)是从一个关键人物业务。它通常描述了客户在整个“客户生活”期间实现的贡献边际,折扣到分析时。因此,CLV可以理解为客户多年来对公司或未来的平均价值。因此,除历史收入外,未来预期收入也会被考虑(客户潜力)。在确定CLV时,必须将可能的客户价值与实际客户价值区分开来。可能的客户价值考虑了某个区域内客户的总支出,包括竞争对手的支出,而实际的CLV仅考虑了客户对其公司的支出。公司使用CLV更有效地为客户量身定制营销。例如,高CLV证明更高的预算用于照顾特定客户。
python数据分析:使用lifetimes进行客户终身价值(CLV)探索
用户生命周期,是一种刻画用户的方法。一般用来解决两类问题:
用户还有多少价值、用以衡量投入产出比在干预用户后,根据用户生命周期价值的变化,优化资源的投放。
即用户管理的两个核心问题:用户所具备的价值以及策略的有效性。
需要注意的是,CLV 的产品形态要求非合约。合约在国内最有代表的是合约手机。一般互联网产品,合约形态较为少见。
CLV 的用户群体需已经产生交易,未付费用户不纳入考量。当然,概念迁移,将付费换成活跃或内容消费,该模型也能处理。
- 用户活跃还是流失
- 用户还有多少付费潜力
- 用户在未来某段时间会否再次购买
这三个问题,是用户生命周期价值能够回答的。
1.5 应用场景
1.5.1 宏观方面的几个场景:
- 判断用户所处生命周期阶段
- 预测用户指定周期内购买概率
- 预测用户的生命周期价值
- 通过历史付费数据,预测未来付费
如何计算用户生命周期价值(CLV)
1.5.2 一个细分的金融场景:
CLV是一个非常重要的概念,因为它决定了获得一个新客户的成本的上限,企业可借助CLV模型来计算其市场和广告花费的回报。CLV与CP(Customer Profitbility)是不同的概念,后者指的是在一定时间内在客户上获得的收益与维系客户关系所付出的成本之间的差,CLV主要关注未来而CP关注历史已发生的事。
CLV的一个最直接用途就是评价客户的金融价值,也可以用来做客户分段模型(有兴趣可参见本人的另一篇博客customer segmentation model)。基于CLV的客户分段模型可以帮助企业理解不是所有的客户都是同等重要的,预测更具备可盈利的客户群体并了解他们的共同特性,另外可以和SOW(Share of Wallet)模型结合使用来定位那些可以最大化企业利益的客户,即高CLV且低SOW的客户。
CLV这个指标主要用于关系敏感的业务模型,特别是那些有客户合同的,例如银行、保险、电信和大多数B2B企业。然而,CLV的理念可以延展到属于事务聚焦的业务体系中,例如通过使用个体客户的随机购买模型或集合行为的大众消费品。在这些情况下,留存率都会对CLV产生重大影响,因为低留存率会导致CLV长期不能增长。
1.5.3 预估成本回收期
参考:生命周期价值LTV预测
如以下产品:新用户CAC成本29元,计算出各阶段用户LTV后,可评估出在第24天时可收回成本,90日LTV=32,成本回收期=24天发现回收期太长,或难以收回成本时,则需要改造产品功能及商业逻辑。
1.5.4 判定渠道质量
参考:生命周期价值LTV预测
-
渠道评估:分渠道,分注册日期、分人群属性等多维度新用户LTV对比,评估渠道质量。
-
成本控制:知道每新增用户LTV情况下,可评估单新增最大买量成本,实现成本可控,提升ROI。
-
投放配比:在游戏中使用广泛,追求用户规模时往往保证不了用户质量,这时可依据渠道用户LTV,实现高低质量用户策略配比,保证游戏氛围活跃又有一定充值用户。
1.5.5 支持产品运营
参考:生命周期价值LTV预测
-
产品功能调整:功能变化后用户价值对比,判定功能效果好坏。
-
运营策略方向:如电商不同品类下用户价值(女装用户LTV与包包用户LTV对比哪个高,据此调整运营位)。
1.5.6 UE计算
UE(Unit Economics)通常衡量的是收入和可变成本的关系(当然也有企业也会将固定成本折算成单位固定成本进行计算),但通常情况是衡量收入和可变成本关系的。
单用户净收入= 生命周期价值LTV -(获取流量成本+转客成本+后续运营成本…),UE计算需将各项收入、成本逐项计算并体现,如示例图:
- 用户价值90日LTV:47元;
- 新激活成本CPA:20元,LTV达20元时需5日,CPA回收期5日。
- 获客+转客成本:23元,回收期9日。
- 获客+转客+运营成本:整体成本的回收期为31日。
- 90日用户净价值8元;
通过UE模型,可以知道:
- 用户生命周期价值及增长趋势,并可预估未来价值。
- 各项成本支出及回收周期,可以判断成本控制范围,能否收回。
- 单用户在整个生命周期内贡献的净价值。
其中,成本计算一种方式为:
60日内每日成本 = 获取新付费用户总成本 / 新用户中转化为付费用户人数
(新用户中转化为付费用户人数,每天的累计付费人数在增加,所以成本在减缓;
人数的增长服从logit增长函数)
2 不同LTV计算方式
LTV = 每日价值(动态) * 存续天数(动态留存)
这个公式就好比:路程 = 速度 * 时间,,优点就是非常好理解,缺点也非常明显,就是非常理论化。
一般来说做留存率分析的时候,一般是用cohort analysis,也就是把一群同一时间周期的用户合在一起看他们第N天的留存(再谈LTV模型的构建和应用)。
2.1 几种常见的计算方式
参考:生命周期价值LTV预测
2.1.1 LT*活跃ARPU
计算方式:
- 单用户的在时间范围内的活跃天数(LT),预测LT主要是对留存率衰减趋势的预测,可参考我之前文章:Excel实现:预测产品的未来DAU 里面有详细操作步骤。
- 单用户活跃天内ARPU:活跃天内ARPU趋势不稳定较难预估,一般直接使用一定时期内均值。这种情况假定不同生命周期用户活跃ARPU值相同,显然是不合理的。
适用场景:
被广泛使用,尤其适合功能稳定产品LTV预测
优缺点
优点:简单、常用、模型化,适合产品功能稳定后预测。
缺点:①留存率拟合存在误差 ②忽视了不同生命周期用户ARPU是动态变化的,用户贡献价值是不同的。
2.1.2 依据交易预测
计算方式:
- 新客预测:付费LT*付费ARPU
- 全量用户预测:付费LT付费ARPU新付费转化率
预测用户付费生命周期(Pay_LT):幂函数拟合各周付费率衰减趋势
假定不同阶段用户周付费ARPU值稳定不变
如需预测全部用户,需加入付费转化率
适应场景
适合电商、游戏等付费用户价值预估,重视付费转化的行业。
** 优缺点**
优点:简单粗暴、常用、模型化
缺点:需要预测3个变量增大预测偏差
①付费率拟合存在误差
②不同付费周期用户ARPU是动态变化的,用户贡献价值是不同的。
③付费转化率受产品调整及运营活动影响较大
2.1.3 历史LTV拟合预测
依据LTV历史数据,拟合幂函数趋势预测未来LTV。
优点:只有LTV单变量,预测精度较高
缺点:①需要足够历史数据拟合函数 ②幂函数数据量越少,预测结果越低,需要人工修正
2.2 常规LT*ARPUDAU的延申:广告收入类型产品计算
文章[1] 提及,
在ARPUDAU稳定不变的情况,全生命周期的价值就等于用户的活跃天(LT)和每天价值(ARPUDAU)的乘积。到此,我们如果只需要计算ARPUDAU和留存率R(t),即可得到用户的LTV。
其中有两个决定因素:
每天价值(ARPUDAU):
用户的ARPUDAU是相对稳定的,如果已经获得了用户14天真实的行为数据,对这14天的数据直接进行统计然后求平均,即可得到一个相对准确的ARPUDAU数据了。
-
1.1 从图3仍然可以发现ARPUDAU走势中,会有很多毛刺的现象,某些节点上下波动较大,例如恰逢双11,某几天广告收入异常偏高,与其他时间的广告收入相差很远。为了做出更准确的预测,需要进行异常点检测,过滤掉这些异常数据再求均值。常见的异常点检测算法均可使用,例如Numeric Outlier、Isolation Forest、DBSCAN聚类等算法。
-
1.2 如果不是全新的渠道,还可以借助该渠道之前的历史数据,进一步增强样本数据。除了已知的14天数据,还可以参考该渠道之前的3个月数据,然后对于对这3个月的ARPUDAU做时间衰减(时间越近,越能反应当前产品的商业收入现状),累积到ARPUDAU计算中,对14天得出的数据结果进行修正。
-
1.3 更进一步,用户的ARPUDAU还可以建模成用户消费行为、用户活跃程度、产品变现能力三个维度的函数变量,可以用一个更复杂的模型对于ARPUDAU进行预估和修正。
用户的活跃天(LT):
不难看出用户的留存率走势和幂函数形状很类似,因此可以用幂函数,结合用户前14天已知的留存率数据,对未来趋势进行拟合,得出留存率预估函数y=b*x^a。
-
2.1 幂函数可以较好的拟合留存率整体趋势图,尤其是趋势的头部可以拟合得非常精准,但对于趋势尾部拟合较差(幂函数尾部过高或者过低)。如图6所示,可以对目标函数进行扩展,除了幂函数之外,还可以通过指数函数簇进行拟合。根据各个渠道的历史数据,针对不同的渠道类型,选择最合适的目标函数。
-
2.2 幂函数
y=b*x^a
只会无限接近0,但是不会等于0,因此在实际建模过程中,需要选定一个阈值alpha,当留存率低于alpha时,认为用户生命周期结束。alpha的选择需要根据留存率变化的实际趋势来确定,例如1%,5%等。
2.3 APP类LTV运营流程
关联关键词:
- CPI:Cost per install,按照安装付费
- ARPU DAU( 平均每用户收入 - 日活 Average Revenue Per User Daily Active User):活跃用户日均ARPU值,也即用户活跃一天所能带来的日均收入。
第一版LTV —— 冷启动环节:
在推量后的第5天,得到一个预估的LTV14、LTV30、LTV60的数值,并且这个数值只要符合商业上的误差容忍度,我们便可以“预知未来”,更快更好地制定下一步的推量策略。
计算1-7天的ARPU乘以累加留存率预测产生的收入。
然而结合我们的商业场景,第一版LTV算法实际上线后,我们发现
- 留存率的预测是相对准确的,虽然存在拖尾过早的现象,预测精度还可以接受,
- ARPU曲线是前期处于高位的,模型还没学习到下降的趋势,会高估
第二版:稳定版LTV
第二版创建了两种模型,最后需对两个模型的预测结果进行叠加得到预测结果。
一种模型是基于累计收入的非线性回归,
另一种模型是基于留存率、收入和用户打点数据的预测模型,
沿用了GBDT算法的核心思想,对预测结果的误差进行多轮迭代以提升预测精度。没有最好的万能的模型算法,只有最适合自身业态和商业场景的模型算法。
最终,得到的新LTV模型相较于第一版的LTV模型,预测的平均绝对误差率从30%降低到9.5%,更符合广告流量变现的商业场景。
LTV预测模型的输出数据是每批推量用户第7、14、30、60天的预测LTV。
3 关联问题
3.1 多长时间窗口预估LTV更适合?
判断渠道质量的时候,选用多长时间窗口预估LTV更适合?
文章[1] 提及,
当LTV用于判断渠道质量时,很重要的一件事情是选择时间窗口,也即需要累积多长时间实际样本数据来预估LTV。
如果时间窗口较长(例如3个月),LTV预估结果与真实值偏差较小,但是意味着我们对于渠道的筛选决策要延后3个月。
如果时间窗口较短(例如3天),LTV预估结果与真实值偏差较大,但是决策周期可以很短。
在实际场景中,需要根据模型实际效果来确定合适的时间窗口。对于广告收入为主的产品,一般选择714天,ltv模型预估准确率可达到还不错的一个水平,714天也是产品可以接收的决策周期。
3.2 完整的LTV数据服务重要性
除了LTV预估模型的准确率之外,更重要是要构建一个完整的LTV数据服务。
文章[1] 提及,
由于产品自身的商业能力的迭代,以及渠道的复杂和不可控性,LTV会经常发生变动,以至于模型准确率也会经常发生波动。因此需要对LTV预估结果做完整的跟踪监控,以便支持产品做更迅速准确的商业决策。
3.3 LTV如何进行模型修正
预测某月新用户价值,在分别使用200天实际数据、90天、30天、7天预测结果如下图:
数据结论:预测同样人群LTV,使用数据天数越多预测越准确。
200天、90天数据R方达到1,基本较精准的预测360天LTV,在数据不充分时使用90天数据可预估全年结果。
使用30天数据时,比实际值低5.3元,预测值低17%。
仅使用7天数据时,比实际值低10.6元,预测值低35%。
当5月仅有7天数据,仍要预估360天数据时,是否可以预测?
答案是可以的,使用7天数据预测,需要加上后续偏差修正值。
仅使用7天数据拟合,跟实际值之间的偏差是有规律的,偏差幅度可以拟合出规律函数,可以函数计算出7天之后每一天预测少了多少,实际预测值将偏差修正回来
4月仅使用7天数据预测时,预测360天价值23.69,修正后360天价值为39.40,验证修正后结果更符合实际情况。
4 一些专属模型
4.1 腾讯微视:数据算法驱动的用户增长
基于新用户的7天甚至是3天这种非常短的时间的用户行为,去预估用户的长期生命周期价值,比如30天、90天或者180天的活跃天的预估。这里会用到一些画像或者消费行为。
在建模时会考虑前几天的序列信息,用transformer做一个建模,然后也会做一个多任务。
接下来去分析数据,能看到用户,特别是新用户中有相当多用户的LT的量是比较小的,所以我们引入零膨胀模型,类似于先是分类,然后是一个回归。
在实际的应用中会发现很多小渠道的用户会被大渠道给淹没掉,所以我们去考虑分渠道建模来解决这个问题。
我们的模型是用户粒度预估模型,在产品早期阶段,数据量非常少的时候,比较典型的像曲线拟合,就是基于渠道的数据去做一个曲线拟合,这个需要结合业务的发展阶段和需求去做选型。
用户粒度模型的好处是能灵活的做各种维度聚合,做一些LTV的预估和分析。
4.2 BG/NBD概率模型预测用户生命周期LTV
具体可参考:用户增长 - BG/NBD概率模型预测用户生命周期LTV(二)
数据运营36计(六):BG/NBD概率模型预测用户生命周期LTV,Python实现
BG/NBD模型又称为贝塔几何/负二项模型。
他是基于Pareto/NBD模型假设设计的概率预测模型。
BG/NBD模型是用于描述非契约客户关系情境下重复购买行为。
即用户可以随时购买产品,无时间约束。
该模型可利用用户历史交易数据(RFM)来预测未来每个用户的交易次数和流失率
该模型的几个假设前提:
(1)【交易假设】用户在活跃状态下,一个用户在时间段t内完成的交易数量服从均值为λt的泊松分布。
(2)【交易假设】用户的交易率λ服从形状参数为r,逆尺度参数为α的gamma分布,PDF函数如下所示。
(3)【流失假设】每个用户在交易j完成后流失的概率服从参数为p(流失率)的几何分布。
【流失假设】用户的流失率p服从形状参数为a,b的beta分布,PDF函数如下所示。
用户的流失率p服从形状参数为a,b的beta分布,PDF函数如下所示
(4)【联合假设】每个用户的交易率λ和流失率p互相独立。
差异点:
由于该模型只关注时段T内的交易数量和最终交易日期,所以不能表示具有周期性的客户,根据t的设置周期性的客户可能在预期的交易数和实际的交易数之间有很大的差异。
【参考文献:如何预测(计算)用户价值—BG/NBD模型】
4.3 简单的二项式函数拟合
参考:详说LTV的业务逻辑、数理逻辑和计算方法
周留存率数据
周ARPU数据
#这里以留存率数据的处理代码为例,ARPU数据处理过程一样
#宽窄转换和数值化
df_r2 = pd.melt(df_r,id_vars=['Date'])
df_r2['x'] = df_r2['variable'].str.split(' ',1,True)[1].astype(int)
df_r2['y'] = df_r2['value'].str.split('%',1,True)[0].astype(float)/100
#描绘成散点图
%matplotlib inline
import matplotlib.pyplot as plt
plt.scatter(x=df_r2['x'],y=df_r2['y'])
# 对留存率曲线,根据业界经验可以用指数函数拟合:
from scipy.optimize import curve_fit
import numpy as np
def fun_r(x, a, b):
return a**x + b
popt1, pcov1 = curve_fit(fun_r, df_r2['x'], df_r2['y'])
#用图像输出结果
y1 = [fun_r(i,popt1[0],popt1[1]) for i in df_r2['x']]
plt.plot(df_r2['x'],y1,'r--')
# 对ARPU数据观察后,尝试用二项式函数拟合:
def fun_a(x, a, b, c):
return a*x*x + b*x + c
popt2, pcov2 = curve_fit(fun_a, df_a2['x'], df_a2['value'])
#用图像输出结果
y2 = [fun_a(i,popt2[0],popt2[1],popt2[2]) for i in df_a2['x']]
plt.plot(df_a2['x'],y2,'r--')
参考文献
1 LTV预估,给你的产品算算命
2 生命周期价值LTV预测
3 如何计算用户生命周期价值(CLV)
4 增长策略和LTV基于时间的通用模型
5 LTV预测模型:如何实现高质量用户增长
6 再谈LTV模型的构建和应用
以上是关于用户增长——CLV用户生命周期价值CLTV 笔记的主要内容,如果未能解决你的问题,请参考以下文章