RFM模型

RFM模型介绍

RFM模型是衡量客户价值和客户创利能力的重要工具和手段。在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的。该机械模型通多一个客户的近期购买行为、购买总体频率,以及花了多少钱3项指标来描述该客户的价值状况。

最近一次消费(Recency)

消费频率(Frequency)

消费金额(Monetary)

R/F/M计算(sql处理法)

1、R值计算

可选取2020-12-31日(最后一天)作为判断最近一次消费的距离日期

SELECT customerid,(to_date('2020-12-31','yyyy-mm-dd')-to_date(MAX(date_id),'yyyy-mm-dd')) R_timeFROM customer_orderGROUP BY customeridORDER BY R_time

RFM模型

  • 根据分析结果显示的天数差来反应客户忠诚度。天数差越小说明客户忠诚度越高2、F值计算频率帮助我们了解客户进行了多少次消费
SELECT customerid,count(DISTINCT invoiceno) as F_timesFROM customer_orderGROUP BY customerid;

RFM模型

3、M值计算

SELECT customerid,sum(total_price) M_timesFROM customer_orderGROUP BY customerid;
  • 根据计算可以了解到交易金额的主要范围

4、RFM数据汇总为方便后续数据处理,为RFM值创建视图

CREATE VIEW view_rfm AS(select CustomerID,       (to_date('2020-12-31','yyyy-mm-dd')-to_date(MAX(date_id),'yyyy-mm-dd')) "天数差",       count(DISTINCT invoiceno) "消费次数",       sum(total_price) "消费金额" sfrom customer_ordergroup by CustomerID

5、RFM评分

#N,n,a自定义界值SELECT CustomerID,天数差,消费次数,消费金额,(case when 天数差<=N1 then 5when  天数差 >N1 and 天数差 <=N2 then 4 when 天数差>N2 and 天数差<=N3 then 3  when 天数差>N3 and 天数差<=N4 then 2 else 1 END) "R评分",(case when 消费次数<=n1 then 1when  消费次数 >n1 and 消费次数 <=n2 then 2 when 消费次数>n2 and 天数差<=n3 then 3 when 消费次数>n3 and 消费次数<=n4 then 4 else 5 END) "F评分",(case when 消费金额<=a1 then 1when  消费金额 >a1 and 消费金额 <=a2 then 2 when 消费金额>a2 and 消费金额<=a3 then 3  when 消费金额>a3 and 消费金额<=a4 then 4 else 5 END) "M评分"from view_rfm;

RFM模型

6、客户分层阈值RFM评分完成,保存视图为view_rfm1,用各自的平均值做为客户划分的阈值,再做最后的客户分层处理

select ROUND(avg(R评分),1) "R平均值",ROUND(avg(F评分),1) "F平均值",ROUND(avg(M评分),1) "M平均值"FROM view_rfm1;

RFM模型

select CustomerID,(case when R评分>3 then 1 else 0 END)  "R值",(case when F评分>1 then 1 else 0 END)  "F值",(case when M评分>1.1 then 1 else 0 END)  "M值"FROM view_rfm1;# RFM完成后,保存视图为view_rfm2

RFM模型

7、客户分层根据RFM阈值和客户评分分层表,对客户行为进行分层处理

RFM模型

SELECT CustomerID,(case when R值=1 and F值=1 and M值=1 then '重要价值客户'  when R值=0 and F值=1 and M值=1 then '重要唤回客户'  when R值=1 and F值=0 and M值=1 then '重要发展客户'        when R值=0 and F值=0 and M值=1 then '重要挽留客户'  when R值=1 and F值=1 and M值=0 then '一般价值客户'  when R值=1 and F值=0 and M值=0 then '一般发展客户'  when R值=0 and F值=1 and M值=0 then '一般保持客户' ELSE '一般挽留客户' END) "客户分层"from view_rfm2
  • 重要价值客户,RFM值都很高,可为其提供优质专属服务,提高其消费体验,增加客户忠诚度

    重要发展客户,消费频率低,但是R和M值都很高,可以进行定向推广或提供价格优惠,提高其消费频次

    重要唤回客户,最近消费的时间较为久远,可能存在流失,但以前的消费金额与频率较高,需了解具体长时间未消费的原因,针对性提供对策

    重要挽留客户,消费金额高,但长时间未进行消费且消费频率低,可主动联系或举行老客户召回活动,尽可能挽留

R/F/M计算(python处理法)

#画RFM,先对数据进行透视rfm=df.pivot_table(index='user_id',               values=['date_id','total_price','invoiceno'],               aggfunc={'date_id':'max',                       'total_price':'sum',                       'invoiceno':'sum'})

RFM计算:

#获取最近消费,可选取2020年最后一天作为判断最近一次消费的距离日期rfm['R']= (rfm.to_date('2020-12-31','yyyy-mm-dd') - rfm.order_dt.max())/np.timedelta64(1,'D')# 重命名 R :消费时间  F:消费金额  M:消费频次rfm.rename(columns={'order_products':"F",'order_amount':'M'},inplace=True)#和各自的均值比较rfm[['R','F','M']].apply(lambda x:x-x.mean())#定义打标签的函数def rfm_func(x):    level=x.apply(lambda x:'1' if x>=0 else '0')    # level 的类型是 series,index 是 R、F、M    label=level.R + level.F + level.M    d={# R 为1 表示比均值大,离最早时间近,F为1 表示 消费金额比较多,M 为1 表示消费频次比较多,所以是重要价值客户        '111':'重要价值客户',        '011':'重要保持客户',        '101':'重要发展客户',        '001':'重要挽留客户',        '110':'一般价值客户',        '010':'一般保持客户',        '100':'一般发展客户',        '000':'一般挽留客户',    }    result=d[label]    return result# 注意这里是要一行行的传递进来,所以 axis=1,传递一行得到一个 111,然后匹配返回一个值rfm['label']=rfm[['R','F','M']].apply(lambda x:x-x.mean()).apply(rfm_func,axis=1)

导入excel表中进行Powerbi作图

#对标签求和计数rfm.groupby('label').sum()rfm.groupby('label').count()#导入excel表中rfm.to_excel(r'.临时表RFM模型.xlsx'

RFM模型

  • RFM 的划分标准应该以业务为准,也可以通过切比雪夫去除极值后求均值,并且 RFM 的各个划分标准可以都不一样
  • 尽量用小部分的用户覆盖大部分的额度;不要为了数据好看划分等级

作者:宁夏1991

链接:https://www.jianshu.com/p/d582a6ecdc59

 

去年今日运营文章

  1. 2020:  用户增长方法论:五个步骤,构建95分APP增长方案(0)
  2. 2020:  LTV及DAU的计算、预估方法(0)
  3. 2020:  这30+个免费无版权网站,你一定要知道!(0)
  4. 2019:  如何进行需求收集?(0)
  5. 2019:  从需求到落地,产品全链路实现流程(0)

本文转载于宁夏1991,本文观点不代表爱运营立场,转载请联系原出处。如内容、图片有任何版权问题,请联系爱运营处理。

发表评论

登录后才能评论