当前位置:   article > 正文

100种分析思维模型(5)

100种分析思维模型


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

作者:林骥

来源:林骥

很多分析思维模型,本质上都是在研究人的行为。

下面介绍的 RFM 分析思维模型,本质上也是在研究人的行为。

1. 模型介绍

美国有一个叫 Arthur Hughes 的研究所,从客户数据库中发现了 3 个神奇的要素:

(1)Recency 最近购买时间,离得越近,价值越大。

(2)Frequency 累计购买次数,次数越多,价值越大。

(3)Monetary 累计购买金额,金额越高,价值越大。

将这 3 个要素分别按价值的高、低进行分组,从而得到 8 种不同类型的客户,分别采取不同的营销策略。

运用之前介绍过的矩阵分析模型,把 8 种类型按照 M 的高低分成两个矩阵,一个矩阵是针对重要客户的营销策略:

1重要价值客户:R 高 F 高 M 高,可以提供个性化的 VIP 服务,提升品牌的价值。

2重要发展客户:R 高 F 低 M 高,可以制订客户忠诚度培养计划,帮助他们成为重要价值客户。

3重要保持客户:R 低 F 高 M 高,可以推送个性化的激励活动,以重新建立连接,提高复购率。

4重要挽留客户:R 低 F 低 M 高,可以采取召回策略,调查问题之所在,想办法进行挽留。

另一个矩阵是针对一般客户的营销策略:

5一般价值客户:R 高 F 高 M 低,可以提供优惠活动,以吸引他们提高客单价。

6一般发展客户:R 高 F 低 M 低,可以提供试用活动,以提高客户购买的兴趣。

7一般保持客户:R 低 F 高 M 低,可以改变宣传策略,以刺激客户继续购买。

8一般挽留客户:R 低 F 低 M 低,可以适当减少预算,以降低营销的成本。

2. 应用举例

以我在知识星球分享过的超市数据集为例,用 Python 实现自动读取和处理数据,对客户价值进行分类,并用条形图展现不同类型的客户数量占比。

从图中可以看出,「一般挽留客户」的占比较大,「重要发展客户」的占比较小,说明客户的忠诚度有待提升。

建议制订客户忠诚度培养计划,通过促销活动等形式,激活重要保持客户,深挖重要发展客户,吸引客户重复购买,提升客户的忠诚度,不断产生新的重要价值客户。

假设你的营销预算不多,只能给 20% 的客户提供服务,你是选择服务重要价值客户,还是选择服务一般挽留客户呢?同样的成本,不同的营销策略,带来的收益差异可能是巨大的。

下面是用 Python 进行 RFM 分析的完整代码:

  1. # 导入所需的库
  2. import os
  3. import numpy as np
  4. import pandas as pd
  5. import datetime as dt
  6. import matplotlib.pyplot as plt
  7. # 正常显示中文标签和负号
  8. plt.rcParams['font.sans-serif'] = ['SimHei']
  9. plt.rcParams['axes.unicode_minus']=False
  10. # 读取 Excel 文件(公众号后台回复:超市)
  11. df_excel = pd.read_excel('../data/超市数据.xlsx')
  12. # 最近购买时间
  13. R = df_excel.pivot_table(values=['订单日期'], index='客户 ID', aggfunc=max)
  14. # 累计购买次数
  15. F = df_excel.drop_duplicates(subset=['订单 ID', '客户 ID'], keep='first').pivot_table(values=['订单 ID'], index='客户 ID', aggfunc='count')
  16. # 累计购买金额
  17. M = df_excel.pivot_table(values=['销售额'], index='客户 ID', aggfunc=sum)
  18. # 合并RFM
  19. RFM = R.join(F).join(M)
  20. # 定义列名
  21. RFM.columns = ['R', 'F', 'M']
  22. # 计算间隔天数
  23. R_date = dt.datetime(2021, 2, 13)
  24. RFM['R_days'] = (R_date - RFM['R']).dt.days
  25. # 分类标签
  26. labels = ['高', '低']
  27. # 计算 R 分类,间隔天数越少,价值越高
  28. bins = RFM.R_days.quantile(q=np.linspace(0, 1, num=3), interpolation='nearest')
  29. RFM["R_type"] = pd.cut(RFM.R_days, bins=bins, labels=labels, include_lowest=True)
  30. # 计算 F 分类,购买次数越多,价值越高
  31. bins = RFM.F.quantile(q=np.linspace(0, 1, num=3), interpolation='nearest')
  32. RFM["F_type"] = pd.cut(RFM.F, bins=bins, labels=labels[::-1], include_lowest=True)
  33. # 计算 M 分类,购买金额越大,价值越高
  34. bins = RFM.M.quantile(q=np.linspace(0, 1, num=3), interpolation='nearest')
  35. RFM["M_type"] = pd.cut(RFM.M, bins=bins, labels=labels[::-1], include_lowest=True)
  36. # 对客户价值进行分类
  37. RFM['type'] = ''
  38. RFM.loc[(RFM['R_type']=='高') & (RFM['F_type'] == '高') & (RFM['M_type'] == '高'), 'type'] = '1重要价值客户'
  39. RFM.loc[(RFM['R_type']=='高') & (RFM['F_type'] == '低') & (RFM['M_type'] == '高'), 'type'] = '2重要发展客户'
  40. RFM.loc[(RFM['R_type']=='低') & (RFM['F_type'] == '高') & (RFM['M_type'] == '高'), 'type'] = '3重要保持客户'
  41. RFM.loc[(RFM['R_type']=='低') & (RFM['F_type'] == '低') & (RFM['M_type'] == '高'), 'type'] = '4重要挽留客户'
  42. RFM.loc[(RFM['R_type']=='高') & (RFM['F_type'] == '高') & (RFM['M_type'] == '低'), 'type'] = '5一般价值客户'
  43. RFM.loc[(RFM['R_type']=='高') & (RFM['F_type'] == '低') & (RFM['M_type'] == '低'), 'type'] = '6一般发展客户'
  44. RFM.loc[(RFM['R_type']=='低') & (RFM['F_type'] == '高') & (RFM['M_type'] == '低'), 'type'] = '7一般保持客户'
  45. RFM.loc[(RFM['R_type']=='低') & (RFM['F_type'] == '低') & (RFM['M_type'] == '低'), 'type'] = '8一般挽留客户'
  46. # 统计各类客户的数量及其占比
  47. df = RFM.pivot_table(values=['R'], index='type', aggfunc='count')
  48. df['占比'] = round(df.R/df.R.sum()*100, 2)
  49. # 用条形图展现客户价值的分布
  50. from pyecharts import options as opts
  51. from pyecharts.charts import Bar
  52. num = list(df.占比[::-1])
  53. lab = list(df.index[::-1])
  54. bar = (
  55.     Bar(init_opts=opts.InitOpts(width='900px', height='600px', page_title='RFM'))
  56.     .add_xaxis(lab)
  57.     .add_yaxis('', num)
  58.     .set_colors('#00589F')
  59.     # 坐标轴翻转
  60.     .reversal_axis()
  61.     .set_series_opts(label_opts=opts.LabelOpts(position='right'))
  62.     .set_global_opts(title_opts=opts.TitleOpts(title='RFM分析:不同类型的客户数量占比(%)'))
  63.     .render('RFM.html')
  64. )

如果把微信通讯录中的联系人当作客户,那么也可以运用 RFM 分析模型,管理我们的重要人脉资源,按照最近联系时间间隔 R、联系次数 F、联系深度 M 进行分类,我们可以重点关注前 4 类人:

1重要价值的人:联系多间隔短,包括亲密的家人、很好的朋友、重要的客户、领导、同事等,与他们保持良好的关系。

2重要发展的人:联系少间隔短,包括联系次数不多的朋友等,增加与他们的互动,增进感情。

3重要保持的人:联系多间隔长,包括很久没有联系过的朋友等,跟他们主动联络,保持沟通。

4重要挽留的人:联系少间隔短,包括联系次数不多,且很久没有联系过的朋友等,分析疏远的原因,并想办法努力挽回。

保持对爱的热忱,学会关心那些对你很重要的人,不要让他们变成像陌生的路人一样。

小结

RFM 分析模型,是一种客户细分的技术,原理简单易懂,几乎不用任何专业的知识,就能快速对客户进行分类,并针对不同类型的客户,制定差异化的营销策略,从而做出更加明智的决策,这反过来又能提升客户的忠诚度。

RFM 分析模型实现起来也很方便,用 Excel 就可以做,用 Python 也能做,其他分析工具基本也都可以做。

学习 RFM 分析模型,我得到的一点启发是:要重点维护好那些对自己很重要的人,这比学会用 Python 建模更重要。

点击????链接

100种分析思维模型(004号)

100种分析思维模型(003号)

100种分析思维模型(002号)

◆ ◆ ◆  ◆ ◆麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
  1. 数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
  2. 管理员二维码:
  3. 猜你喜欢
  4. ● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
  5. ● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/564707
推荐阅读
相关标签
  

闽ICP备14008679号