作者 | leo

管理学中有一个重要概念那就是客户关系管理(CRM),它核心目的就是为了提高企业的核心竞争力,通过提高企业与客户间的交互,优化客户管理方式,从而实现吸引新客户、保留老客户以及将已有客户转化为忠实客户的运营机制。

而这其中最为经典的实现模型那就是RFM模型,它主要通过对每个客户的近期消费时间,购买频率和购买金额来对不同的客户进行价值状态划分。

从而使得我们可以有针对性的对不同用户进行个性化运营和营销。

01 RFM模型核心维度

针对上述3个维度,我们的预期:

最近一次消费的时间(Recency):

该维度指的是最近一次消费时间间隔(R), 也就是上一次消费的时间间隔,该值越小客户价值越高,这是因为消费间隔越近的客户越有可能产生二次消费。

某段时间内消费频率次数(Frequency):

消费频次(F)体现了客户的购买频率,那么购买频次越高,越能体现用户的消费活跃程度,因此,客户价值也就越高。

某段时间消费的总金额(Monetary):

消费金额(M)这个从字面意思即可知道,用户的消费金额越高,用户的消费能力越强,那么自然用户的价值也就越高。

02 RFM划分用户类型及对应运营策略

03 Excel中实现RFM模型

为了解决现存方法的缺陷,作者首次提出了将MCL、SSL和Excel是实现RFM模型的一个重要且十分直接的工具,只需要灵活使用Excel自带的函数就可以实现数据的汇总计算,得到RFM模型的三个指标值,从而将用户的价值类型提取出来,让我们有针对性的进行业务推广策略。

接下来我们给大家演示一个用Excel实现的RFM模型:

【数据来源】

某淘宝店铺的月份销售数据

【分析目标】

根据现有订单数据,构建店铺用户价值模型,从而为后续的精细化运营不同的客户群体打下基础

【数据预处理】

数据量大概有3989条,可以在excel内处理,也可以使用python对大批量的数据进行处理。

3.1 提取关键词字段:

【买家会员名】、【总金额】、【订单付款时间】、并设置对应的数据类型,我们要在同页面进行RFM值的计算。

3.2 计算Recency, Monetary,Frequency

Recency: 通过对【买家会员名】、【总金额】、【订单付款时间】三列数据做透视表,对订单付款时间求最大值,即最近消费时间,然后与观测时间进行求差运算,可得R值

Monetary:对总金额下的客户不同消费进行平均值运算,即可获得该客户的M值

Frequency:对订单付款时间进行计数运算,就是该客户的消费频次F值

3.3 客户RFM模型建立

计算完客户的R、F、M值后,接下来就可以实现客户RFM模型的评估了。

【简单实现】

此时可以先计算出来R、F、M三个值的平均值,然后对客户的每个维度与该维度的平均值进行比较,如果超出平均值就是高,否则就是低。

然后将三列字段通过’&’连接符链接起来,生成RFM辅助列。

然后通过我们预先准备好的价值模型参考表,生成用户价值模型。

最后通过excel的vlookup函数提取客户类型字段到计算表中,就实现了我们的最终结果。

【计分法】

通过用户的R、F、M值与对应值的极差(最大值与最小值的差),来确定R-Score, F-Score,M-Score。

因此首先计算R、F、M的最大值、最小值、极差三等分距

最大值:通过“=max(B5:B1204)” 计算,(计算F时B换成C,M时B换成D即可)

最小值:通过“=min(B5:B1204)”计算(计算F时B换成C,M时B换成D即可)

极差:通过“=(F1-F2)/3”计算(计算F时F换成G,M时F换成H即可)

R-Score计算方式:在E5单元格输入:

“=IF(ROUNDUP((B5-$F$2)/$F$3,0)=0,1,ROUNDUP((B5-$F$2)/$F$3,0)) ”

F-score和M-score计算方式类似:

“=IF(ROUNDUP((C5-$G$2)/$G$3,0)=0,1,ROUNDUP((C5-$G$2)/$G$3,0))”

“ =IF(ROUNDUP((D5-$H$2)/$H$3,0)=0,1,ROUNDUP((D5-$H$2)/$H$3,0))”

RFM-Score计算采用将R、F、M以百分位、十分位、个位组成三位数的方式实现,共有3*3*3=27种组合方式。

H5单元格的公式:“=E5*100+F5*10+G5”

下拉填充柄应用于整个列表,得到最后结果:

然后对数据表区域A4到H3996进行数据透视:汇总不同的RFM-Score对应的客户群体。

可以采用数据条的方式直观显示客户分布情况。

04 Python实现RFM模型

通过Python处理数据时,我们首先需要关注我们提取进来的数据是否需要预处理,比如数据的类型是否符合预期,字段名是否需要调整,缺失值是否需要填充,重复值是否需要去除等等,因此第一步我们首先需要对数据进行初步的熟悉了解:

4.1 熟悉数据源

常用于初步了解数据的方法有很多比如:shape(了解数据的大小,几行几列),head(显示其中的前几条数据),tail(显示数据源最后几条数据),sample(随机提取几条数据),info(显示数据源的各字段数据类型),describe(对数据源进行数学描述)。

显示结果如下:

通过上图我们发现交易记录里面会有一些无效订单,那么我们首先就要排除这类订单,那么就可以通过pandas的布尔索引来进行数据的筛选:

结果如下:

4.2 选取字段

鉴于我们仅需要买家付款时间,购买日期,实付金额这三个字段,我们仅需要对他们进行数据处理,因此可以排除其他字段。

结果如下:

缺失值处理:

4.3 RFM建模:

A. 计算R值

添加天数字段,将付款时间与观察日期进行日期计算得到R值

运行结果如下:

B. 计算R、F、M值

通过聚合函数,对买家昵称进行计数运算获得消费频次F值,计算天数字段的最小值获得客户的R值,通过实付金额的求和运算获得客户的M值。

运行结果如下:

C. 用户价值评分

通过上述计算,我们可以根据不同的分数段来对客户R、F、M值进行打分,就本案例来讲:

R值:我们得出的最小值是660,以30天作为间隔,660-690天,打5分;690-720,打4分;720-750打3分;750-780打2分;>780,打1分。

F值:我们得出的最小值是1次,以1次作为时间间隔,0-2,打1分;2-3,打2分;3-4,打3分;4-5,打4分;>5,打5分。

M指:我们得出的最小值是0.005元,我们以500元作为时间间隔,0-50,打1分;50-100,打2分;100-150,打3分;150-200,打4分;>200,打5分。

依据上述标准建立程序方法:

运行结果:

D. 用户标签设定:

第一步:计算用户R、F、M平均值:

运行结果

第二步:验证用户各项指标是否超出平均值,是则计一分,否则不计分。

运行结果如下:

第三步:生成用户标签列:

运行结果如下:

E. 可视化呈现:

柱状图:

运行结果如下:

通过以上数据分析工具的分析,我们可以发现在实现RFM模型的方法中,Python具有更为强大的可用性和灵活性,且拥有完备的数据分析手段,从数据预处理、分析到最后的数据呈现。

而Excel在实际工作中应用场景也是非常多见的,通过本案例可以很好的实践Excel相关函数,希望本文对你的数据分析之旅有所帮助。

数据分析之客户价值模型(RFM)技术总结的更多相关文章

  1. 航空客户价值分析特色LRFMC模型——RFM升级

    本文转载自微信公众号TIpDM. 每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 我们说RFM ...

  2. 用户价值和RFM模型

    什么是用户价值? 用户价值就是对公司来说有用的地方,比如有的公司看中用户的消费能力,有的公司则看中用户的忠诚度 .各公司的业务目的不同,用户价值的体现自然也不同.这里主要说一下适用于电商的RFM模型. ...

  3. 技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good

    作为一个依靠技术来谋生的程序员,我最近一直在思考一个问题,有限的生命里,面对无限的技术更新,我要研究到什么程度才能算是完成我的成为技术大牛的目标呢?换而言之,那就是技术的止境在哪儿呢?深入的思考下去, ...

  4. 用户价值模型 CITE :https://www.jianshu.com/p/34199b13ffbc

    RFM用户价值模型的原理和应用  ▌定义 在众多的用户价值分析模型中,RFM模型是被广泛被应用的:RFM模型是衡量客户价值和客户创利能力的重要工具和手段,在RFM模式中,R(Recency)表示客户购 ...

  5. Python使用RMF聚类分析客户价值

    投资机构或电商企业等积累的客户交易数据繁杂.需要根据用户的以往消费记录分析出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略. 用户分析指标 根据美国数据库营销研究所Arthur Hughe ...

  6. 向量自回归模型VS风险价值模型(VAR&VaR)

    单从外观上看,VAR&VaR两个模型很容易混淆,但就模型方法和用处两者截然不同,R语言作为数据分析的有力工具,其函数包库中包含各种各样的统计模型.通过vars包可以调用向量自回归模型,通过Pe ...

  7. 如何通过CRM评估客户价值和提高客户忠诚度?

    随着市场经济的日益繁荣,同行业之间企业的竞争越来越激烈,企业纷纷各出奇招吸引和挖掘客户,力求让自己的品牌成为更多客户的第一选择.那么,我们可以用什么方法来评估客户价值,提高客户忠诚度呢? 在互联网时代 ...

  8. 8月7号晚7点Autodesk北京办公室,我们来聊聊HTML5/ WebGL 3D 模型浏览技术

    Autodesk 发布了一款完全无需插件的三维模型浏览器 Autodesk 360 Viewer,大家有没有兴趣,下班后过来聊聊吧!   8月7号 周四, 19:00~21:00 Autodesk北京 ...

  9. k-means实战-RFM客户价值分群

    数据挖掘的十大算法 基本概念 导入数据集到mysql数据库中 总共有940个独立消费数据 K-Means 算法 K-Means 算法是一个聚类算法.你可以这么理解,最终我想把物体划分成 K 类.假设每 ...

随机推荐

  1. Pytest_fixture(9)

    什么是fixture fixture是pytest特有的功能,使用装饰器 @pytest.fixture 标记的函数在其他函数中能被当作参数传入并被调用. fixture有明确的名字,在其他函数,模块 ...

  2. CentOS7 安装mysql并解决安装慢的问题

    0.centOS7 mini版安装及网络配置 //可从我的网盘保存下载,可用虚拟机安装 链接:https://pan.baidu.com/s/10_AHxN0DtJ75s1oFOaaZ3A 密码:ud ...

  3. 解决ubuntu18.04重启后蓝牙鼠标需要重新配对的问题

    打开bash,运行bluetoothctl命令 # bluetoothctl 列出可用的蓝牙控制器 [bluetooth]# list 选择使用的蓝牙控制器 [bluetooth]# select 0 ...

  4. Kong 微服务网关在 Kubernetes 的实践

    来源:分布式实验室译者:qianghaohao本文主要介绍将 Kong 微服务网关作为 Kubernetes (https://www.alauda.cn)集群统一入口的最佳实践,之前写过一篇文章使用 ...

  5. MongoDB之几种情况下的索引选择策略

    一.MongoDB如何选择索引 如果我们在Collection建了5个index,那么当我们查询的时候,MongoDB会根据查询语句的筛选条件.sort排序等来定位可以使用的index作为候选索引:然 ...

  6. 端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手四次挥手,滑动窗口(整理转发)

    网上查了一下端口状态的资料,我下面总结了一下,自己学习学习: TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死 ...

  7. Keil MDK STM32系列(五) 使用STM32CubeMX创建项目基础结构

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  8. Android学习笔记2

    4,用intent在activity之间传递数据(两个Activity可能不是在一个应用程序中) (1),从MainActivity向HelloActivity传递参数123 package com. ...

  9. 【笔记】thanos receiver的router模式

  10. zookeeper,kafka,redis等分布式框架的主从同步策略

    1 zookeeper选主机制 1.1 LeaderElection选举算法 选举线程由当前Server发起选举的线程担任,他主要的功能对投票结果进行统计,并选出推荐的Server.选举线程首先向所有 ...