一、数据来源及说明
本文从数据集中选取包含了2014年11月18日至2014年12月18日之间,8477名随机用户共1048575条行为数据,数据集的每一行表示一条用户行为,共6列。
本文主要字段如下:
user_id:用户ID
item_id:商品ID
behavior_type:用户消费行为类型(包含点击、收藏、加购物车、购买四种行为,分别用数字1、2、3、4表示)
user_geohash:用户地理位置(有较多空值)
item_category:商品类别ID(商品所属的品类)
time:用户行为发生的时间
date:用户行为发生的日期
二、相关问题
1、整体用户的购物情况
pv(总访问量)、日均访问量、uv(用户总数)、有购买行为的用户数量、用户的购物情况、复购率分别是多少?
2、用户行为转化漏斗
点击— 加购物车— 收藏— 购买各环节转化率如何?购物车遗弃率是多少,如何提高?
3、购买率高和购买率为 0 的人群有什么特征
4、基于时间维度了解用户的行为习惯
5、基于RFM模型的用户分析
三、数据清洗
1、导数
由于数据量多达100多万,我在这里使用ETL工具kettle进行导数,能够提高导数效率,也方便后续实现报表自动化处理,数据库的表名为user。
2、缺失值处理
从如下图的数据表中,我们可以看到item_category字段有大量的缺失值,无法进行有效研究,因此后续就不对item_category进行分析。
3.数据类型处理
通过查询表结构,我们发现date列不是日期类型。
将date 列改成日期类型:
四、数据分析过程
1.总体客户购物情况
(1)pv(总体访问量)
(2)日均访问量
(3)uv(用户数量)
(4)发生购买行为的用户数量
(5)用户购买情况
(6)复购率:产生两次或者两次以上购买行为的用户所占的比例
2、用户行为转化漏斗
一般情况下,在购物环节中收藏和加入购物车两个环节没有先后之分,所以将这两个环节可以放在一起作为购物环节的一步。最终得到用户购物行为各环节转化率,如下:
(1)用户购买行为统计
(2)用户购买行为转化率:
从上图中,我们可以看到,用户点击后收藏或加购物车的转化率在 5% 左右,而最后真正购买的只有 1%,购买转化率比较低,故而用户行为转化率还有很大的增长空间。
3、购买率高的和购买率低的客户群体有什么特征
(1)购买率高用户特征:
我们可以从上图中可以看到,购买率高的人反而不是那些点击次数最多的用户,一部分点击次数都没有超过5次就直接下单购买,由此可以推断,点击次数少,收藏也少但是购买次数越高的人是有目的的购物。这类用户更喜欢看准目标就直接下单,此类用户目标明确,一般都是缺啥买啥,鲜少会为了促销而冲动购物,为理智购物型。
此类用户可以认为是等待型或克制型用户,该类用户在一个月里购物欲望为0,如果点击次数较少,可能是不太会购物的或者不喜欢上网的用户;如果点击次数较多,加购或收藏较多,有可能考虑是为商家活动做准备,该类用户,下单欲望较少且自制力较强,思虑多或者不会支付,购物难度较大。
4、基于时间维度了解用户的行为习惯
(1)一天中用户活跃时段分布
我们可以看出,每日0点到5点用户活跃度快速降低,降到一天中的活跃量最低值,6点到10点用户活跃度快速上升,10点到18点用户活跃度较平稳,17点到23点用户活跃度快速上升,达到一天中的最高值。与用户产生互动的运营行为可以参考用户比较活跃的时间段。
(2)一周中用户活跃时段分布
由于第一和第五周数据不全,第一和第五周数据不考虑到此次数据分析中。每周用户活跃度较稳定,每周五活跃度会有小幅降低,但是周末会慢慢回升。其中第四周周五用户活跃度突增是由双十二大促活动引起。
5、基于RFM模型找出高价值客户
这里参考著名的 RFM 模型(如下图):
R-Recency(最近一次购买时间)
F-Frequency(消费频率)
M-Money(消费金额)
由于本项目中,数据源没有相关的金额数据,暂且通过 R 和 F 的数据对客户价值进行打分。
SELECT r.user_id,f.frequency,recent_rank,freq_rank,
CONCAT(
CASE WHEN recent_rank<=(4330)/4 THEN '4'
WHEN recent_rank>(4330)/4 AND recent_rank<=(4330)/2 THEN '3'
WHEN recent_rank>(4330)/2 AND recent_rank<=4330/4*3 THEN '2'
ELSE '1' END,
CASE WHEN freq_rank<=(4330)/4 THEN '4'
WHEN freq_rank>(4330)/4 AND freq_rank<=(4330)/2 THEN '3'
WHEN freq_rank>(4330)/2 AND freq_rank<=4330/4*3 THEN '2'
ELSE '1' END
)AS user_value
FROM
(SELECT a.*,(@rank:=@rank+1) AS recent_rank FROM
(
SELECT user_id,
DATEDIFF('2014-12-19',max(date)) AS recent
FROM user AS t1 WHERE behavior_type='buy' GROUP BY user_id ORDER BY recent
)AS a,(SELECT @rank:=0) AS b) AS r,
(SELECT *,(@rank2:=@rank2+1) AS freq_rank FROM
(SELECT user_id,count(*) AS frequency FROM user WHERE behavior_type='buy'
GROUP BY user_id ORDER BY frequency DESC)
AS a,(SELECT @rank2:=0)AS b) AS f
WHERE r.user_id=f.user_id;
我们可以通过打分可以了解每位顾客的特性,从而实现差异化营销。比如对于 user_value = 44 的用户,为重点用户需要关注;对于user_value = 41 这类忠诚度高而购买能力不足的,可以可以适当给点折扣或捆绑销售来增加用户的购买频率。
五、总结
1、总体转化率只有 1%,用户点击后收藏或加购物车的转化率在 5% ,需要提高用户的购买意愿,可通过活动、精准营销等方式。
2、购买率高且点击量少的用户是比较理智购物的群体,一般是缺什么就买什么只买需要的。而购买率低的用户可以认为是等待型或克制型用户群体,下单欲望较少且自制力较强,购物难度较大。
3、大部分用户的主要活跃时间在10点到23点,在19点到23点达到一天的顶峰。每周五的活跃度有所下降,但周末开始回升。
4、通过 R 和 F 的数据对用户行为进行打分,通过打分可以对每位用户进行精准化营销。