电商用户行为分析
2.3用户价值分析
根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有3个神奇的要素,这3个要素构成了数据分析最好的指标:
最近一次消费 (Recency)
消费频率 (Frequency)
消费金额 (Monetary)
根据三个指标分数的高低,能大概将客户分成下面4类(1代表高,0代表低)
重要价值客户(111)、重要保持客户(011)
重要发展客户(101)、重要挽留客户(001)。
下面我们将根据已有的数据来搭建RFM模型(由于数据中没有金额所以我们只能打出R和F的分值)
也许更应该叫RF模型?
最近一次的消费即为用户最后消费的日期和12月3日的差值,消费频率则是在这9天里用户的消费次数,
首先我们要对消费次数和时间差进行分数的定义,
先计算出最大值和最小值
select max(消费次数), min(消费次数), max(时间差), min(时间差)
from(select user_id,count(*) as 消费次数,datediff('2017-12-03', MAX(date)) as 时间差
from ubd
where behavior_type = 'buy'
group by user_id) as a
对于”最近一次消费“,时间差只有0-8,我们将其分为三个档次
分值 | 时间差 |
---|---|
1 | 0-2天 |
2 | 3-5天 |
3 | 6-8天 |
同样我们将“消费频率“也分为三个档次
分值 | 消费次数 |
---|---|
1 | 1-31次 |
2 | 32-63次 |
3 | 64-94次 |
其中上面这个sql语句中的子表a可以单独拿出来查询,这样就可以得到每个用户的情况了
select user_id,count(*) as 消费次数,datediff('2017-12-03', MAX(date)) as 时间差
from ubd
where behavior_type = 'buy'
group by user_id
以此来计算R和F的分值
select user_id,
(case when 时间差 BETWEEN 0 and 2 THEN 3
when 时间差 BETWEEN 3 and 5 THEN 2
when 时间差 BETWEEN 6 and 8 THEN 1
else null end
) as R,
(case when 消费次数 BETWEEN 1 and 31 THEN 1
when 消费次数 BETWEEN 32 and 63 THEN 2
when 消费次数 BETWEEN 64 and 94