【数据分析实战经验】淘宝用户行为分析①-AARRR、RMF模型(数据量:百万级,工具mysql)
电商平台的用户行为分析,能一定程度的推动运营、产品等迭代,提供决策支持。
数据集来源: 阿里云池 样本量: 3835331 方法工具:
本文用2017年11月至12月的淘宝用户行为,AARRR模型及RMF模型利用进行分析。数据虽有点旧,但重在锻炼分析框架。
本文使用的分析工具以MySQL为主,涉及分组汇总,引用变量,视图,关联查询等内容。
一、分析思路
第一,基于AARRR漏斗模型,使用常见电商分析指标pv uv,从新增用户数量、各环节转化率、新用户留存率三个方面进行分析,确定影响新增用户数量的因素,找到需要改进的转化环节,发现留存现存问题。
第二,将颗粒度逐渐细化,探寻用户的商品偏好,哪类商品销量最好,最坏,复购率、回购率最好的商品是什么
第三:研究用户在不同时间尺度下的行为规律,找到用户在不同时间周期下的活跃规律
第三,根据用户画像及价值分类,选择合适的推广方式。用户什么时段最活跃。
第四:利用RFM模型,进行客户分类评分,找出对应策略。
二、数据处理
(1)数据导入
因为数据量比较大,一共383万,具体怎么导我之前的文章介绍有过。
以下是代码,等待一段时间才可载入
D:\> cd change\mysql-8.0.19-winx64\bin
D:\change\mysql-8.0.19-winx64\bin>mysql --local-infile -u root -p
mysql> load data local infile'D:/xcw/work/数据面试/电商平台用户分析/UserBehavior.csv' into table taobao.xwfx-> fields terminated by ',';
如图所示:3835331数据。
(2)数据清洗
数据清洗的一般步骤
desc xwfx
看看大概数据类型和数据是否含null值,最后两行是我后加的,下文会讲到。
我们发现最后一列是时间戳,查过之后发现是一种以秒来记录的,与格林威治标准时间的相差秒数,因此,我们把他换算成日期和时间
先插入两列
ALTER TABLE xwfx ADD date_ymd VARCHAR(255);
# 日期列
ALTER TABLE xwfx ADD date_time VARCHAR(255);
#时间列
原先在这里我没有添加主键,导致一直报错,还用到了安全模式,这个方法是不可取的,建议先加好一列主键,再进行操作
SET SQL_SAFE_UPDATES = 0 #没有主键更新或删除时会报错,我得先设置安全模式关闭。
UPDATE xwfx
SET date_ymd = FROM_UNIXTIME(timestamp,'%Y-%m-%d') where userid >0
##记得要加where,不然有的版本会报错
SET SQL_SAFE_UPDATES = 0
UPDATE xwfx
SET date_time = FROM_UNIXTIME(timestamp,'%H:%i:%s') where userid >0;
上面可能会出现失去与服务器连接,因为数据量有点大,需要自己先设置一下DBMS connection read time out(in seconds)适当调大。
最后得到下图,日期转换结束
SELECTMAX(date_ymd),MIN(date_ymd)
FROM xwfx;
发现有脏数据
看看数据集范围量,选择目标时间
SELECTMAX(date_ymd),MIN(date_ymd),count( distinct userid),count(1)
FROM xwfx
WHERE date_ymd >='2017-11-25 '
and date_ymd <='2017-11-30 '
选择2017.11.25至2017.11.30号这6天的数据
同样的就得删去这6天之外的数据
SET SQL_SAFE_UPDATES = 0
Delete
FROM xwfx
WHERE date_ymd <'2017-11-25 '
or date_ymd > '2017-11-31 '
最终剩下2353708 row(s) ,正式开始分析啦…
三、数据分析
(1)获客:每日新增用户数
定义首次购买的用户为新增客户,每天都有新增用户,但是新增用户在递减。并未出现回升现象,发现问题应及时采取一定拉新策略。
select count(distinct t.userid)as 新增用户数,t.日期 from (SELECT userid,min(date_ymd)as'日期'FROM taobao.xwfxwhere behavior='buy' group by userid)t
group by t.日期
(2)激活:用户数、商品数、类目数
SELECT COUNT(DISTINCT userid) AS num_user,
COUNT(DISTINCT itemid) AS num_item,
COUNT(DISTINCT categoryid) AS num_category
FROM taobao.xwfx
整体上看本次分析共涉及37367名用户,近70万商品,近7000个品类。
(2)pv、uv、日均pv
分析pv(总体访问量)及uv(独立访客数)
总体访问量2107723人次,但独立访客数37367人次。
SELECT count(1) as 总体访问量 FROM taobao.xwfx
where behavior = 'pv'
(3)分析日均访问量
日均访问量维持在33万~36万人次左右,流量还是很大且比较稳定的
而11月25-26数据量大原因是碰到周末啦!!!!,果然周末还是量比较大的
而11月28号这天是周二哦,来个狂欢星期二吧,开个玩笑哈哈
SELECT date_ymd as 日期,count(behavior) as 日均访问人数 FROM taobao.xwfx
where behavior = 'pv' and date_ymd >='2017-11-25'
group by date_ymd
order by date_ymd
(4)留存转化:各阶段行为人数及漏斗图
SELECT behavior as 阶段,count(1) as 人数,count(distinct userid) as 用户ID FROM taobao.xwfx
group by behavior
order by count(1) desc
将收藏和加入购物车但没有买的整合成第二阶段
漏斗图
(5)流量转化率、成交转化率、跳出率
流量转化率=购买订单数量/浏览页面次数=48892/2107723=2.32%
平均每次访问会带来2.32%的购买订单数量,
成交转化率=购买订单数量/UV=48892/37095=1.32%
平均每一访问用户购买1.32商品。
跳出率 看出仅浏览,但不去加购也不去收藏的用户比例.
跳出率=5447/110017=4.95%
约有4.95%的用户浏览了一次页面就跳出了。相对来说我觉得表现的很不错了,基本大部分还是有选择加购和收藏的。
SELECT COUNT(*) AS pv_quit,
count(DISTINCT userid) AS user_quit
FROM xwfx
WHERE
userid IN
(SELECT DISTINCT userid FROM xwfx
WHERE behavior='pv')
AND
userid NOT IN
(SELECT DISTINCT userid FROM xwfx
WHERE behavior IN ('fav','cart','buy'));
(6)次日留存回购人数、3日留存回购人数
- 次日留存
select t1.date_ymd,count(t1.date_ymd),count(t2.date_ymd),
count(t2.date_ymd)/count(t1.date_ymd) as 留存率 from
(SELECT userid,date_ymd FROM taobao.xwfx
where behavior='buy'
group by date_ymd,userid)t1
left join
(SELECT userid,date_ymd FROM taobao.xwfx
where behavior='buy'
group by date_ymd,userid)t2
on t1.userid=t2.userid
and t1.date_ymd=date_sub(t2.date_ymd,interval 1 day)
group by t1.date_ymd
- 3日留存
当日购买后,3天后再次购买的人数
select t1.date_ymd,count(t1.date_ymd),count(t2.date_ymd),
count(t2.date_ymd)/count(t1.date_ymd) as 留存率 from
(SELECT userid,date_ymd FROM taobao.xwfx
where behavior='buy'
group by date_ymd,userid)t1
left join
(SELECT userid,date_ymd FROM taobao.xwfx
where behavior='buy'
group by date_ymd,userid)t2
on t1.userid=t2.userid
and t1.date_ymd=date_sub(t2.date_ymd,interval 2 day)
group by t1.date_ymd
整体上看,次日留存率在23-24%间,3日留存率在22-23%,起码在数据集时间范围内回购率还是很高的。
(6)复购率
用户中购买1次以上的占总购买数的比例
select count(t.购买次数),count(if(t.购买次数>1,1,null)),
count(if(t.购买次数>1,1,null))/count(t.购买次数) as 复购率 from(select userid ,count(userid) as 购买次数 from xwfxwhere behavior='buy'group by userid )t
超过55.8%的用户购买了一次以上。
基于商品维度了解用户的行为习惯
(一)热销商品、热销类别
标签为3122135这个商品销量最好,共有34个用户购买了,我很好奇是什么
select itemid,count(distinct userid) from xwfx
where behavior='buy'
group by itemid
order by count(distinct userid) desc
从类别上看,1464116标签号类别销量最好,有808个用户购买这一类商品,生活用品类吧感觉是
select categoryid,count(distinct userid) from xwfx
where behavior='buy'
group by categoryid
order by count(distinct userid) desc
基于时间维度了解用户的行为习惯
(1)一天中用户活跃时段分布
select hour(date_time), count(behavior),
sum(case when behavior='pv' then 1 else 0 end) as '点击次数',
sum(case when behavior='cart' then 1 else 0 end) as '加购次数',
sum(case when behavior='fav' then 1 else 0 end) as '收藏次数',
sum(case when behavior='buy' then 1 else 0 end) as '购买次数'from xwfx
group by hour(date_time)
order by hour(date_time)
我们可以看出:
1、每日1点到5点用户活跃度快速降低,降到一天中的活跃量最低值,6点到10点用户活跃度逐渐上升
2、下午整体时段的用户活跃度较平稳,下午5点至7点有所回落,应该还是符合用户生活习惯,该时间段大多数处于下班、接放学、煮吃这样一个生活状态,相对在电商时间较少
3、用户整体在晚上活跃度高,在10点-11点见达到流量峰值,是下午时段的2倍左右。
(2)一周中用户行为分析
select date_format(date_ymd,'%w') +1 as '星期',count(behavior)as 用户行为总量,
sum(case when behavior ='pv' then 1 else 0 end) as '浏览量',
sum(case when behavior ='cart' then 1 else 0 end) as '加购物车',
sum(case when behavior ='fav' then 1 else 0 end) as '收藏量',
sum(case when behavior ='buy' then 1 else 0 end) as '购买量' from xwfx
group by date_ymd
order by date_format(date_ymd,'%w')
漏了一天是因为我之前最开始就只选了其中6天的数据,不过先试着分析看看
(1)说明在选取的11.25-11.30这个时段,商家及平台并未做太多活动,用户的各阶段表现相对平稳。
(2)周天的浏览量相对高,但此时购买量并未有显著上升,相反表现不如周一。
四、用RMF模型进行客户价值分类
使用RFM模型对所有的客户进行客户价值分类,可以使推广方式更有针对性。
RFM模型:
R(Recency):是指最近一次消费
F(Frequency):是指消费频率
M(Monetary):是指消费金额
(1)计算最近一次消费时间和消费频率
select userid,
datediff(‘2017-12-01’,max(date_ymd))as ‘最后一次交易距今时间’,
count(behavior)as ‘交易次数’
from xwfx
where behavior =‘buy’
group by userid
看一看最大值值
select max(t.最后一次交易距今时间),max(t.交易次数) from(
select userid,
datediff(‘2017-12-01’,max(date_ymd))as ‘最后一次交易距今时间’,
count(behavior)as ‘交易次数’
from xwfx
where behavior =‘buy’
group by userid)t
因为数据集中没含消费金额,我们假设他们的M值普遍较高,都为高消费金额的客户。
重点看R与F值的分析。
(2)对客户进行评分
select userid,
(case when t.最后一次交易距今时间 in(0,1) then 4when t.最后一次交易距今时间 in(2,3) then 3when t.最后一次交易距今时间 in(4,5) then 2when t.最后一次交易距今时间 in(6,7) then 1when t.最后一次交易距今时间 >7 then 0
else null
end) as Recent,
(case when t.交易次数 >=16 then 4when t.交易次数 between 11 and 15 then 3when t.交易次数 between 6 and 10 then 2when t.交易次数 between 1 and 5 then 1when t.交易次数 =0 then 0
else null
end) as Frequentfrom(select userid,datediff('2017-12-01',max(date_ymd))as '最后一次交易距今时间',count(behavior)as '交易次数'from xwfxwhere behavior ='buy'group by userid)as t
group by userid
order by Recent desc
数值高的客户为优质,数值低的待改进
导出计算得R的均值为2.85,F的均值为1.10
下图是以分值来划分客户类型,因为看了一下整体F均值才1.1,
故我想用均值来划分四个客户层次,新建了一个RMF表:
注:如果有M,参考一下底下的图片及对应策略
(3)客户分层绘图
SELECT userid, Recent, Frequent,
(CASE WHEN Recent>=2.85 AND Frequent>=1.10 THEN '重要价值客户'WHEN Recent<2.85 AND Frequent>=1.10 THEN '重要唤回客户'WHEN Recent>=2.85 AND Frequent<1.10 THEN '重要推广客户'WHEN Recent<2.85 AND Frequent<1.10 THEN '重要挽留客户'
END) '客户分类' FROM taobao.rmf
ORDER BY Recent DESC,Frequent DESC
计算一下各类客户的数量
select t.客户分类,count(t.userid) from
(SELECT userid, Recent, Frequent,
(CASE WHEN Recent>=2.85 AND Frequent>=1.10 THEN '重要价值客户'WHEN Recent<2.85 AND Frequent>=1.10 THEN '重要唤回客户'WHEN Recent>=2.85 AND Frequent<1.10 THEN '重要推广客户'WHEN Recent<2.85 AND Frequent<1.10 THEN '重要挽留客户'
END) '客户分类' FROM taobao.rmf
ORDER BY Recent DESC,Frequent DESC)t
group by t.客户分类
哈哈哈,以下就是最后的结果啦,还是有成就感的对不对哈哈
五、结论
(1)本次数据集6天总计200多万流量,70万种商品,7000条类目,37000的独立访客,日均访问量在35-36万间。
(2)近6日逐日新增用户数递减,最终成交转化率在2.32%,从浏览到有购买意向只有2.32%的转化率,除去有一部分用户是直接购买,但也说明大多数用户以浏览页面为主而购买转化较少,此处为转化漏斗中需要改善和提高的环节。
针对这一环节改善转化率的建议有:
①优化电商平台的搜索匹配度和推荐策略,主动根据用户喜好推荐相关的商品,优化商品搜索的准确度和聚合能力,对搜索结果排序优先级进行优化;
②给客户提供同类产品比较的功能,让用户不需要多次返回搜索结果反复查看,便于用户确定心怡产品;
③在商品详情页的展示上突出用户关注的重点信息,精简信息流的呈现方式,减少用户寻找信息的成本;
(3)复购、回购
次日回购及3日回购,均保持较高水平,达到22%,复购率在55%。虽然成交转化率不高,但用户多次购买及回购的频率还是不错的,买过都说好哈哈。
1、营销活动能为提升留存带来一定正向的影响,可以多推出一些营销活动,让用户提高使用淘宝电商平台的频率。
2、高复购次数的用户少,商家可以从商品质量、服务质量、物流体验三方面寻找原因,定位所在问题点,寻求高复购率。
(3)3122135为6日内最热销商品,1464116为最热销类目,也可以分析一下最不受欢迎的商品,提供改进措施
根据购买环节的前十品类,app的展现页面对这些品类首要进行展现,便于满足用户购买需求。
(4)活跃时段集中在夜晚,22-23点达到单时段近12000的流量峰值,一周来看,用户行为并未在周末有显著的变化。
(5)
重要推广客户数(R大F小):11769
重要价值客户数(R大F大):1323
重要唤回客户(R小F小):137
重要挽留客户(R小F大):6626
重要价值用户:需要重点关注。并且活动投放时需谨慎对待,不要引起用户反感。
重要推广客户:运营活动可以重点针对这部分用户,提高用户的产品使用频率,通过拼团打折、积分兑换等活动唤起用户注意力。
重要挽留客户:可以通过推送提醒,短信召回等方式,含促销活动等字眼,进行吸引唤回
保持渴求,不要沉寂
【数据分析实战经验】淘宝用户行为分析①-AARRR、RMF模型(数据量:百万级,工具mysql)相关推荐
- 数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析
数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析 淘宝行为分析Tableau可视化展示 数据分析实战之淘宝用户行为分析(5) - 数据分析报告 数据分析实战之淘宝用户行为分析(4) - 用 ...
- 数据分析实战:淘宝用户行为分析
文章目录 1. 数据概述 2. 分析思路 提出问题 提出假设 数据分析 3. 数据预处理 选择子集 补全表格 删除重复值 处理缺失值 处理日期时间(数据一致性) 异常值处理 表格预览 4. 数据分析 ...
- Python项目实战 —— 04. 淘宝用户行为分析
Python项目实战 Python项目实战--目录 Python项目实战 -- 04. 淘宝用户行为分析 一.背景 二.解题思路 三.数据分析 3.1 数据清洗 3.2 数据分析 3.2.1 用户整体 ...
- 数据分析项目实战1——淘宝用户购买行为分析(天池)
一.分析背景.数据来源.数据解释 https://tianchi.aliyun.com/dataset/649 由于userbehavior数据集的数据量较大,本次分析使用Navicat将前10万条数 ...
- 数据分析案例之淘宝用户行为分析完整报告
一.项目背景 UserBehavior为淘宝用户行为的数据集,数据集包括了2017年11月25日至2017年12月3日之间,有大约82万随机用户的用户行为(行为包括点击pv,购买buy,加购物车cha ...
- 【数据分析实战】淘宝用户行为模式分析
文章导览 目标定义 数据获取 数据抽样 探索性分析 数据清洗 用户行为分析 用户消费行为分析 漏斗分析 用户行为和商品种类分析 用户价值度RFM模型分析 1.目标定义 以淘宝APP2014年11月18 ...
- 哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...
数据来源https://tianchi.aliyun.com/dataset/dataDetail?dataId=46 用户行为表:用户ID,商品ID,用户行为.用户地点,商品大类ID,时间 需求:该 ...
- MySQL数据项目分析实战——淘宝用户行为分析
MySQL数据项目分析实战--淘宝用户行为分析 一.项目背景 二.项目目标 2.1分析目的 2.2分析维度 三.数据的收集与整理 3.1数据来源 3.2数据说明 3.3理解数据 3.4导入数据 四.数 ...
- Python数据分析案例—淘宝用户行为分析
赛题与数据 一.项目背景 本数据报告以淘宝app平台为数据集,通过行业的指标对淘宝用户行为进行分析,从而探索淘宝用户的行为模式,具体指标包括:日PV和日UV分析,付费率分析,复购行为分析,漏斗流失分析 ...
最新文章
- 【转】POJ 2104 K-th Number(2)
- 实践重于理论——创建一个监控程序探测WCF的并发处理机制
- 你必须知道的 SmartSql
- foreach循环符合就不往下走了_柴油发电机组冷却液循环故障解决方法
- Angular4中常用管道
- 看面试题感觉生疏的知识点
- python反距离权重法_反距离权重法 (Spatial Analyst)—ArcMap | 文档
- oracle存储过程(PL/SQL)
- [转]Linux芯片级移植与底层驱动(基于3.7.4内核)
- 《SQL必知必会》附录
- 生物信息小知识_1_reads.contigs.scaffolds...
- Mongodb副本集RECOVERING
- 机械革命 无界16pro闪屏
- 互联网技术架构——画龙点睛
- 天桥脑科学研究院推出“对话大脑”院士论坛:国际大咖畅谈脑机接口
- 一线互联网大厂中高级Android面试真题收录!大厂直通车!
- XML报表打印出错,乱码问题
- 谷歌seo关键词怎么做?Google如何优化关键词
- Android高德地图的定位
- webview打开淘宝天猫链接问题