数据分析之客户价值模型(RFM)技术总结

©作者 | 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相关函数,希望本文对你的数据分析之旅有所帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容