关于RFM模型的介绍和pyhton实现过程见之前发过的文章!
《用python轻松实现数据分析中的RFM建模》
本文旨在通过2015-2018的客户订单分析,了解各大区销售经营情况、不同偏好,并通过RFM模型来进行客户价值分类,实现定向营销。
现在开始手把手教学RFM实战的软件操作:
数据已经提供了,该数据是2015-2018的客户订单经过脱敏后得到的数据,共包含了8987条记录,该数据的字段很多,但是对于RFM建模,我们只需要“客户名称”、“销售额”、“日期”,就可以完成RFM模型的构建。下面我们只截图展示表中的部分数据。
其实RFM的值,我们这里利用一个SQL语句就可以解决,但是我们为了更细致的讲解RFM值的计算过程,这里分开进行 一一叙述。
select
客户名称,
max(日期) 最后一次消费时间,
datediff("2019-04-01",max(日期)) R值
from dingdan
group by 客户名称;
结果如下:
select
客户名称,
count(distinct(日期)) F值 # 注意这里的去重操作
from dingdan
group by 客户名称;
结果如下:
select
客户名称,
count(distinct(日期)) F值,
sum(销售额) 总额,
round(sum(销售额)/count(distinct(日期)),2) M值
from dingdan
group by 客户名称;
结果如下:
select
客户名称,
datediff("2019-04-01",max(日期)) R值,
count(distinct(日期)) F值,
sum(销售额) 总额,
round(sum(销售额)/count(distinct(日期)),2) M值
from dingdan
group by 客户名称;
结果如下:
注意:我们这里采用5级打分规则(业内一般都是这样打分的),但是分段标准是根据实际业务为驱动,进行讨论后得出。
同理,我们可以计算出“F_SCORE”和“M_SCORE”,操作如上,这里就不详细进行说明。F_SCORE的计算如下:
M_SCORE的计算如下:
R_SCORE的平均值:
F_SCORE的平均值:
M_SCORE的平均值:
分别将“R_SCORE”、“F_SCORE”、“M_SCORE”和“R平均值”、“F平均值”、“M平均值”进行一一比较,大于平均值就是1,否则为0。R值高低的判断
F值高低的判断
M值高低的判断
IIF([R值高低的判断]=1 and [F值高低的判断]=1 and [M值高低的判断]=1,'重要价值客户',
IIF([R值高低的判断]=0 and [F值高低的判断]=1 and [M值高低的判断]=1,'重要唤回客户',
IIF([R值高低的判断]=1 and [F值高低的判断]=0 and [M值高低的判断]=1,'重要深耕客户',
IIF([R值高低的判断]=0 and [F值高低的判断]=0 and [M值高低的判断]=1,'重要挽留客户',
IIF([R值高低的判断]=1 and [F值高低的判断]=1 and [M值高低的判断]=0,'潜力客户',
IIF([R值高低的判断]=1 and [F值高低的判断]=0 and [M值高低的判断]=0,'新客户',
IIF([R值高低的判断]=0 and [F值高低的判断]=1 and [M值高低的判断]=0,'一般维持客户',
IIF([R值高低的判断]=0 and [F值高低的判断]=0 and [M值高低的判断]=0,'流失客户','错误检测'))))))))
上表由于“客户”太多,怎么设置“分页显示”呢?(一个牛逼操作)
注意:使用同样的操作,我们还可以添加一个“客户名单”筛选器,效果如下。
怎么将上述标签,改成百分比展示呢?
效果如下:
怎么给这个饼图添加百分比标签呢?(这个技巧需要注意)
怎么讲这个饼图变为圆环图呢?(圆环图更好看一些),这里虽然有些难度,但是留给大家自己下去思考一下,实在不会可以问我。
只要是做RFM分析,业内人士都喜欢拿RF值去看M,或者拿FM值去看R,或者拿RM值去看F,下面我们简单举一个例子,通过RF值去看M。
这里说的“忠诚度”,指的就是某个用户老来买,说明很喜欢这个产品,对该产品忠诚度较高,即“忠诚度”的衡量使用的是“F值(频度)”。
(这里有一个技巧)
最后将之前做好的一个个图形,按住shift键,将其一个个拖动到右侧进行布局。