你做数据分析却不懂RFM模型?开什么玩笑!
在互联网时代做数据分析,首要的工作是了解用户。怎样去了解用户呢?做用户画像!用户画像包含多个方面:用户属性、用户消费特征、用户关联、用户非消费行为……
做用户画像的工作量很大,我们做数据分析的最终目的是为了解决业绩瓶颈问题,提升业绩。而用户画像中最核心、与业绩最直接相关的指标是什么呢?是用户消费特征。RFM模型就是根据消费特征对用户进行分层。
一、什么是RFM模型?
RFM模型是根据最近消费时间(Recency)、消费频率(Frequency)、消费金额(Monetary)三个指标构建的用户分层模型。RFM就是三个指标对应英文单词首字母的缩写。
1. R(Recency):用户最近一次消费时间
用最通俗的话说就是,用户最后一次下单时间距今天有多长时间了。
这个指标与用户流失和复购直接相关:一个很长时间不下单的用户比最近下过单的用户流失的可能性更大;一个最近消费过的用户比一个很长时间没有消费过的用户复购的可能性更大。
2. F(Frequency):用户下单频率
通俗一点儿就是,用户在固定的时间段内消费了几次。这个指标反映了用户的消费活跃度。
3. M(Monetary):用户消费金额
M其实就是用户在固定的周期内在平台上花了多少钱,直接反映了用户对公司贡献的价值。
二、RFM模型怎么用?
指标计算
作为经常使用的指标,怎么能缺少查询操作呢?
(1)求R的hive sql语句实现:datediff(’day’, ‘end date’, ‘start date’),这里默认为day,也可以设置成month和year,但在RFM模型中必然是取day了。
在求R时,end date可以取now()或者你自己定义的某一个固定时间;start date则为用户最后一次下单时间。根据用户id分组,求max(order_date)即可求得最后一次下单时间。
(2)求F的hive sql语句实现
根据用户id分组,count(distinct order_id)即可,可限制order状态是否成功。
(3)求M的hive sql语句实现
根据用户id分组,sum(order_price)即可,同样可限制订单状态是否成功。
根据RFM模型对用户分层
(1)等级变量划分法
根据R、F、M三个指标数据,将其转化为等级变量,如高、低,具体划分标准可依据指标数据分布确定(可取中位数或平均数作为分界线),再根据三个指标等级划分用户等级。
如果每个指标划分为高、低两种等级,则用户可出现2^3=8种,但可根据实际需要将用户划分为3种等级,如下表所示:
(2)加权得分法
A) 将每一个指标归一化,x1=(x-min)/(max-min),将每个指标都转化到0~1的区间内。需要注意的是R的取值需要进行转化,取x2=1-x1;
B) 赋予指标权重;
C) 计算用户的加权得分,根据得分对用户进行分层。
(3)将指标取值转化为顺序变量,再计算加权得分
A) 根据分位数(如四分位数)将各项指标转化为1,2,3,4顺序变量
B) 赋予指标权重;
C) 计算用户的加权得分,根据得分对用户进行分层。
以上三种方法可以根据不同需求选用,一般第一种方法最常用,因为可以直观反映用户价值和重要性,然后根据用户价值和重要性采取不同策略,可操作性强。
“数学算法的世界”后期会陆续推出数据分析常见面试题系列文章,敬请关注!