下面介绍的 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 分析的完整代码:
# 导入所需的库import osimport numpy as npimport pandas as pdimport datetime as dtimport matplotlib.pyplot as plt# 正常显示中文标签和负号plt.rcParams["font.sans-serif"] = ["SimHei"]plt.rcParams["axes.unicode_minus"]=False# 读取 Excel 文件(公众号后台回复:超市)df_excel = pd.read_excel("../data/超市数据.xlsx")# 最近购买时间R = df_excel.pivot_table(values=["订单日期"], index="客户 ID", aggfunc=max)# 累计购买次数F = df_excel.drop_duplicates(subset=["订单 ID", "客户 ID"], keep="first").pivot_table(values=["订单 ID"], index="客户 ID", aggfunc="count")# 累计购买金额M = df_excel.pivot_table(values=["销售额"], index="客户 ID", aggfunc=sum)# 合并RFMRFM = R.join(F).join(M)# 定义列名RFM.columns = ["R", "F", "M"]# 计算间隔天数R_date = dt.datetime(2021, 2, 13)RFM["R_days"] = (R_date - RFM["R"]).dt.days# 分类标签labels = ["高", "低"]# 计算 R 分类,间隔天数越少,价值越高bins = RFM.R_days.quantile(q=np.linspace(0, 1, num=3), interpolation="nearest")RFM["R_type"] = pd.cut(RFM.R_days, bins=bins, labels=labels, include_lowest=True)# 计算 F 分类,购买次数越多,价值越高bins = RFM.F.quantile(q=np.linspace(0, 1, num=3), interpolation="nearest")RFM["F_type"] = pd.cut(RFM.F, bins=bins, labels=labels[::-1], include_lowest=True)# 计算 M 分类,购买金额越大,价值越高bins = RFM.M.quantile(q=np.linspace(0, 1, num=3), interpolation="nearest")RFM["M_type"] = pd.cut(RFM.M, bins=bins, labels=labels[::-1], include_lowest=True)# 对客户价值进行分类RFM["type"] = ""RFM.loc[(RFM["R_type"]=="高") & (RFM["F_type"] == "高") & (RFM["M_type"] == "高"), "type"] = "1重要价值客户"RFM.loc[(RFM["R_type"]=="高") & (RFM["F_type"] == "低") & (RFM["M_type"] == "高"), "type"] = "2重要发展客户"RFM.loc[(RFM["R_type"]=="低") & (RFM["F_type"] == "高") & (RFM["M_type"] == "高"), "type"] = "3重要保持客户"RFM.loc[(RFM["R_type"]=="低") & (RFM["F_type"] == "低") & (RFM["M_type"] == "高"), "type"] = "4重要挽留客户"RFM.loc[(RFM["R_type"]=="高") & (RFM["F_type"] == "高") & (RFM["M_type"] == "低"), "type"] = "5一般价值客户"RFM.loc[(RFM["R_type"]=="高") & (RFM["F_type"] == "低") & (RFM["M_type"] == "低"), "type"] = "6一般发展客户"RFM.loc[(RFM["R_type"]=="低") & (RFM["F_type"] == "高") & (RFM["M_type"] == "低"), "type"] = "7一般保持客户"RFM.loc[(RFM["R_type"]=="低") & (RFM["F_type"] == "低") & (RFM["M_type"] == "低"), "type"] = "8一般挽留客户"# 统计各类客户的数量及其占比df = RFM.pivot_table(values=["R"], index="type", aggfunc="count")df["占比"] = round(df.R/df.R.sum()*100, 2)# 用条形图展现客户价值的分布from pyecharts import options as optsfrom pyecharts.charts import Barnum = list(df.占比[::-1])lab = list(df.index[::-1])bar = ( Bar(init_opts=opts.InitOpts(width="900px", height="600px", page_title="RFM")) .add_xaxis(lab) .add_yaxis("", num) .set_colors("#00589F") # 坐标轴翻转 .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="RFM分析:不同类型的客户数量占比(%)")) .render("RFM.html"))
如果把微信通讯录中的联系人当作客户,那么也可以运用 RFM 分析模型,管理我们的重要人脉资源,按照最近联系时间间隔 R、联系次数 F、联系深度 M 进行分类,我们可以重点关注前 4 类人:
1重要价值的人:联系多间隔短,包括亲密的家人、很好的朋友、重要的客户、领导、同事等,与他们保持良好的关系。
2重要发展的人:联系少间隔短,包括联系次数不多的朋友等,增加与他们的互动,增进感情。
3重要保持的人:联系多间隔长,包括很久没有联系过的朋友等,跟他们主动联络,保持沟通。
4重要挽留的人:联系少间隔短,包括联系次数不多,且很久没有联系过的朋友等,分析疏远的原因,并想办法努力挽回。
保持对爱的热忱,学会关心那些对你很重要的人,不要让他们变成像陌生的路人一样。
小结
RFM 分析模型,是一种客户细分的技术,原理简单易懂,几乎不用任何专业的知识,就能快速对客户进行分类,并针对不同类型的客户,制定差异化的营销策略,从而做出更加明智的决策,这反过来又能提升客户的忠诚度。
RFM 分析模型实现起来也很方便,用 Excel 就可以做,用 Python 也能做,其他分析工具基本也都可以做。
学习 RFM 分析模型,我得到的一点启发是:要重点维护好那些对自己很重要的人,这比学会用 Python 建模更重要。
End.
爱数据网专栏作者:林骥
作者介绍:数据赋能者,专注数据分析 10 多年。
个人公众号:林骥(linjiwx)
本文为挖数网专栏作者原创文章,未经允许禁止转载,需要转载请微信联系授权(微信号:lovedata0520)
更多文章前往爱数据社区网站首页浏览http://www.itongji.cn/
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论