一文详解电商数据分析中的用户生命周期

文 | 商业智能BI相关文章 阅读次数:8,857 次浏览
2022-11-10 9:21:07

CRM Customer RelationShip Management 客户关系管理:要求企业站在客户的角度,利用企业信息技术对获取的客户数据进行分析,快速识别客户需求变化,为客户提供更专业、更具个性化的产品或服务、从而提升客户对企业的忠诚度,最大化忠诚客户的支付溢价,进而提高企业核心竞争力。

因为一般而言,企业吸引一个新客户所消耗的成本远高于维护老客户的成本,并且忠诚客户能带来额外附加价值服务的交叉购买。而对客户终身价值CLV Customer Lifetime Value的关注是客户关系管理的重要内容。

简单的讲述一下客户生命周期:它是一种动态关系,是一个连续性,分阶段发展的过程。且各阶段相互关联的。其阶段分别为考察、形成、稳定和退化。

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

在这个过程中我们主要思考的也是如何拉新,提升留存,通过分析流失的原因将其减少等等。

而CLV 研究的目的是在现有客户购买行为模式的基础上预测客户未来可能为企业创造的价值。毕竟企业总体资源有限,而CLV分析会帮助企业将有限的资源放在未来能为企业带来高价值的客户上面,使收益最优。

提一个有趣的定律80/20/30:企业80%的收益是由价值最高的20%客户所创造的,而价值最低的30%客户不仅不会创造价值,还会消耗企业的50%利润。

用客户的现金贴现直接衡量一个客户的终身价值,其结果往往有较大偏差。于是我们便从客户的购买行为视角对CLV做了进一步研究,而依据客户交易行为的模型有(RFM,SMC,BG/NBD)。

而以上三者都是紧紧围绕客户而展开的一系列活动。它们是一个相互依存、相互支撑的有机整体。CLV是CRM的核心内容。而客户生命周期直接影响CLV。比较客户在不同阶段所表现出的对企业的忠诚度、满意度、消费行为模式、流失率都有其阶段性的特征。

频繁被应用的算法常有关联规则、K-means聚类、朴素贝叶斯分类、回归预测等。

1、RFM价值模型:

是以在三个维度上的得分进行组合构成不同客户的行为模式以及价值形式。是一种有效的客户细分方法。但是它不能直接算出客户未来购买行为的各个量的值,比如客户活跃、客户未来购买次数等,只是对客户历史购买行为进行简单分析,使得企业对客户以后要发生得行为有个比较概括得了解,对客户得大致分类。但对于客户以后将要发生的购买行为并不能较为直观的说明,并没有有效利用客户行为数据为未来购买行为进行很好的预测。

R=Recency 代表该用户最近一次交易时间;

F=Frequency 代表用户交易频率;

M=Monetary 代表用户平均单次交易金额。与python.lifetimes模块意义有所出入。

2.SMC模型

简单讲一下SMC模型:其是能够依据客户购买历史购买行为进行预测的模型之一。这个模型是真正意义上的客户购买行为预测模型之一。通过这个模型,可以很好的计算出客户的活跃度,客户在未来一段时间的期望购买次数,以及在这段时间实现一定次数的购买的可能性。它是GB/NGD的前身模型基于以下五条假设:

1.在活跃时期,一个顾客在长度为t的一段时间内的交易量服从交易率为 的泊松分布。

2.顾客中交易率的非均匀性服从形状参数r,比例参数 的gamma分布。

3.每个顾客的无法观察的生命周期的长度为 ,在这一定顾客变得不活跃,他服从退出比率为u的指数分布。

4.顾客中退出比率的非均匀性服从形状参数s和比例参数 的gamma分布。

5.交易率和退出比率u独立变化。

泊松分布:离散概率分布,当二项分布的n很大而p很小时,泊松分布可作为二项分布的近似,其中λ(均值和方差)为np。

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

而泊松分布适用于描述单位时间(或空间)内随机事件发生的次数。

gamma分布:连续概率函数。假设随机变量X为等到第α件事发生所需之等候时间,密度函数为:

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

其中阿尔法为形状参数,贝塔为比例参数。则称随机变量X服从参数阿尔法、贝塔 的gamma分布。

SMC模型所需信息:最后一次交易时间以及这段时间的交易频率。这条信息的表达式是

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

x为(0,T)时间段内的历史购买次数。 tx 为最后一次交易的时间。

只不过是基于五个假设条件给出的,因而有它的局限性。对于客户数据符合这个条件的,可以据此计算。其参数估计比较复杂,而且直接影响到后面的计算。在实际应用中不方便。

BG/NBD模型:基于SMC模型的改进。大部分内容都是照搬SMC,唯一的不同就是SMC假定退出随时可能发生,与实际购买行为无关。如果我们假定客户在发生某次购买后立即推出,那么就是用BG/NBD模型。其基于下列五个假设:假设同上面没有区别不是很大,在这里不做重复。

根据概率密度函数搭建:

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析 用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析 用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析 用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

具体可参考其它论文。在这里只是给出相关概念。最后根据极大似然估计求出4个参数值(r,

阿尔法 ,a,b)。楼下将会使用lifetimes模块。

利用python模块lifetimes

frequency:代表客户重复购买多少次。即用户只购买一次的话,F值为0。

T :用户首次购买到现在所产生的时间。

recency :第一次购买到最后一次购买之间的时间间隔。

Monetary_value :该客户的购买平均金额。

#数据集df
df = data[['买家昵称','付款日期']]df.head()

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

#利用summary_data_from_transaction_data函数处理数据使其称为标准格式
from lifetimes.utils import summary_data_from_transaction_data
summary = summary_data_from_transaction_data(df, '买家昵称', '付款日期',observation_period_end='2019-6-30')
summary.head()

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析 用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

在这里的F值是忽略了第一次购买,也即是如果只有一次购买,那么F为0

导入BG/NBD模型,通过模型拟合,得到4个参数(r, 阿尔法 ,a,b)。

from lifetimes import BetaGeoFitter
bgf = BetaGeoFitter(penalizer_coef=0.0)#L2正则项
bgf.fit(summary['frequency'], summary['recency'], summary['T'])
print(bgf)
bgf.summary

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

继而预测测客户的购买行为,在未来这个周期内购买的可能性

t = 1 #周期,预测t个周期内的购买
summary['predicted_purchases'] = bgf.conditional_expected_number_of_purchases_up_to_time/可以调用perdict(t, 
                                                                                                   summary['frequency'], summary['recency'], summary['T'])summary.sort_values(by='predicted_purchases').tail(5)#summary.sort_values(by='predicted_purchases').head(5)

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

tail

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

head

生命周期价值预测,在预测价值时,需要用到第四个参数:用户交易的次均金额。但是该模型有个重要前提:购买频次的recency和money无相关性。

from lifetimes.utils import summary_data_from_transaction_data
df = data[['买家昵称','付款日期','实付金额']]
summary = summary_data_from_transaction_data(df, '买家昵称', '付款日期','实付金额',observation_period_end='2019-6-30')
summary = summary[summary['frequency']>0]
summary[['frequency','monetary_value']].corr()

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

确定无关后,预测客户预期的lifetime value.

rom lifetimes import GammaGammaFitter
ggf = GammaGammaFitter(penalizer_coef = 0)
ggf.fit(summary['frequency'],        
        summary['monetary_value'])
print(ggf)
求得参数

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

print(ggf.conditional_expected_average_profit(        
  summary['frequency'],        
  summary['monetary_value']    
).head())

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

print(ggf.customer_lifetime_value(    
  bgf, #the model to use to predict the number of future transactions    
  summary_with_money_value['frequency'],    
  summary_with_money_value['recency'],   
  summary_with_money_value['T'],    
  summary_with_money_value['monetary_value'],    
  time=12, # months    
  discount_rate=0.01 # monthly discount rate ~ 12.7% annually
  ).head()

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

相关概念

CLP Customer Lifetime Profit 顾客全生命周期利润

CCV Customer Current Value 客户当前生命价值

CPV Customer Potential Value 客户增值潜力

张春莲. 客户购买行为的BG/NBD预测模型及其应用研究[D].哈尔滨工业大学,2006.

数据集地址:

https://github.com/seizeeveryday/DA-cases/tree/master/RFM

文源:数据管道

很显然在目前的信息时代,借助类似于FineBI的这些工具,可以让企业加速融入企业数据分析的趋势。备受市场认可的软件其实有很多,选择时必须要结合实际的情况。一般的情况下,都建议选择市面上较主流的产品,比较容易达到好的效果,目前企业数据分析BI软件市场占有率前列的,就是帆软BI软件——FineBI。

用户生命周期管理,RFM价值模型,BG/NBD模型,CLV分析

商业智能BI产品更多介绍: www.finebi.com

产品体验

相关内容

目录
立即体验 立即体验

商务咨询

在线咨询
专业顾问帮您解答问题

电话咨询

技术问题

投诉入口

微信咨询

返回顶部