本次数据分析基于阿里云天池数据集(用户行为数据集),使用转化漏斗,AARRR模型,对常见电商分析指标,包括转化率,PV,UV,留存率,复购率等进行分析,分析过程中使用MySQL以及Navicat进行数据预览与清洗处理,使用Excel进行数据可视化。
字段 | 说明 |
---|---|
user_id | 整数类型,序列化后的用户ID |
item_id | 整数类型,序列化后的商品ID |
category_id | 整数类型,序列化后的商品所属类目ID |
behaviortype | 字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’) |
timestamps | 行为发生的时间戳 |
该数据集记录用户在淘宝网站浏览商品产生的行为信息。由于数据集过大 ,选取其中10200位用户,共105万条数据。
1)了解网站流量情况;
2)了解该阶段网站用户粘性以及用户行为习惯;
3)了解网站商品销售情况;
分析逻辑如下:
MySQL建表,使用Navicat导入数据
use userbehavior;
create table user(
user_id int not null,
item_id int not null,
category_id int not null,
behavetype varchar(10) not null,
times int not null,
constraint user_behave PRIMARY KEY (user_id,item_id,times))
(1)日期处理
将行为发生时间转为datetime类型,获取其发生日期及时间
SET SQL_SAFE_UPDATES = 0;
ALTER TABLE user ADD COLUMN datentime TIMESTAMP(0) NULL;
UPDATE user
SET datentime = FROM_UNIXTIME(times);
ALTER TABLE user ADD COLUMN dates CHAR(10) NULL;
UPDATE user
SET dates = SUBSTRING(datentime FROM 1 FOR 10);
ALTER TABLE user ADD COLUMN hours CHAR(10) NULL;
UPDATE user
SET hours = SUBSTRING(datentime FROM 12 FOR 2);
(2)数据清洗
DELETE FROM user
WHERE datentime < '2017-11-25 00:00:00'
OR datentime > '2017-12-04 00:00:00';
use taobaouser;
create view userbehave as
select user_id,count(behavetype) num,sum(if(behavetype='pv',1,0)) pv,sum(if(behavetype='cart',1,0)) cartbox,sum(if(behavetype='fav',1,0)) favor,sum(if(behavetype='buy',1,0)) buy,dates,hours
from user
group by user_id,dates,hours
order by user_id,dates,hours
SELECT distinct user_id,dates
FROM taobaouser.user
where behavetype='pv'
order by dates
分析:11月25日至12月1日使用用户数变化幅度小,范围在7000到8000之间,从12月2日有较大幅度增加,对比11月25,26(周末)有较大的提升,可能是周末的双12预热营销活动效果。
(2)网站购买转化率(uv)(支付转化率=支付访客数/总访客数)
select activeuser.dates,activeuser.ac,alluser.au,concat(round(activeuser.ac/alluser.au*100,2),'%') conversion
from
(SELECT dates,count(distinct user_id) ac FROM taobaouser.userbehave where buy<>0 group by dates) as activeuser
join
(SELECT dates,count(distinct user_id) au FROM taobaouser.userbehave group by dates) as alluser
on activeuser.dates=alluser.dates
(3)转化漏斗
独立访客转化率能达到69.9%,但是从访客行为来看,浏览到购买转化率只有2.3%,若要了解具体环节的转化率,需要对整个流程接触到的版面进行细化的数据分析。
(数据有限,用户新增及激活不做分析)
(1)留存
计算新增留存率与活跃留存率,视该时间段内首次登陆为新增用户,购买为活跃用户
新增活跃率:
#计算留存率
select first_login,
concat(round(day_0/day_0*100,2),'%') day0,concat(round(day_1/day_0*100,2),'%') day1,
concat(round(day_3/day_0*100,2),'%') day3,concat(round(day_6/day_0*100,2),'%') day6,concat(round(day_7/day_0*100,2),'%') day7
from
#计算不同留存用户
(select first_login,
sum(if(by_date=0,1,0)) as day_0,sum(if(by_date=1,1,0)) as day_1,
sum(if(by_date=3,1,0)) as day_3,sum(if(by_date=6,1,0)) as day_6,sum(if(by_date=7,1,0)) as day_7
from
#比较浏览时间与第一次浏览时间比较,确定时间差
(select l.user_id,l.dates login_date,f.first_login,timestampdiff(day,f.first_login,l.dates) by_date
from taobaouser.userlogin l join
(SELECT user_id,dates first_login
FROM taobaouser.userlogin group by user_id order by dates) as f
on l.user_id=f.user_id) as b
group by first_login
order by first_login) as retent
将25日登陆用户作为新增用户来看,次日,3日留存率能达到60%以上,7日留存率达到了90%以上,用户粘性很好,高新增留存率可能与处于双十一促销时段有关,说明产品新手引导性很好。
活跃留存率:
活跃留存率在20%上下浮动,同时在12月3日有稍大幅度的上升,由于用户新增时期未知,活跃留存率维持在20%是不错的现象。
(2)变现——复购分析
SELECT user_id,count(*) FROM taobaouser.user where behavetype='buy'
group by user_id
复购次数集中在1-5次,呈长尾分布,该阶段用户消费欲望不大。
(3)用户消费习惯分析
一天中各时段用户行为分析:
使用切片器分别观察每天用户行为:
用户浏览量峰值在晚上20-23点;加购率往往在早间6-7点,晚间22-23点达到峰值;收藏率往往在早间5-7点,下午16-18点达到峰值;夜间3-4点(消费欲望),上午10-11点,下午14-15点,晚上20点22点为购买转化率峰值,其中10-11点转化率最高。
网站可以利用这些时间点进行营销活动安排。
另外总体来看购买转化率更贴近于收藏率,可以适当利用来进行销售量预测。
(4)用户价值分析
借鉴RFM 模型,暂时不考虑M维度,对R(最近一次购买时间)F(购买频率)进行打分,完成用户分层
select allrank.user_id,allrank.recent,allrank.buynum,
concat(CASE WHEN allrank.r_r<=(6718)/4 THEN '4'
WHEN allrank.r_r>(6718)/4 AND allrank.r_r<=(6718)/2 THEN '3'
WHEN allrank.r_r>(6718)/2 AND allrank.r_r<=6718/4*3 THEN '2'
ELSE '1' END,
CASE WHEN allrank.f_r<=(7001)/4 THEN '4'
WHEN allrank.f_r>(7001)/4 AND allrank.f_r<=(7001)/2 THEN '3'
WHEN allrank.f_r>(7001)/2 AND allrank.f_r<=7001/4*3 THEN '2'
ELSE '1' END
)AS user_value
from(
select recent_value.user_id,recent_value.recent,rank()over(order by recent_value.recent) r_r, frequency_value.buynum,rank()over(order by frequency_value.buynum desc) f_r
from
(select user_id,datediff('2017-12-04',max(dates)) recent
FROM taobaouser.user
where behavetype='buy'
group by user_id) as recent_value join
(select user_id,count(user_id) buynum
FROM taobaouser.user
where behavetype='buy'
group by user_id) as frequency_value
on recent_value.user_id = frequency_value.user_id
) as allrank
(1)商品销售分布
大部分销售来源于销售次数为1的16190个商品,说明该时段销售主要源于长尾部分,而非销售数量较高的畅销品。
(2)畅销品及其品类分析
SELECT category_id,item_id,cartbox,dense_rank() over (order by buy desc) r
FROM taobaouser.onitem
where buy<>0
limit 20
查看销量top20的商品及品类分布:销量为前3的商品为3122135,2964774,3237415,分属1516409,1265358,3231625类
查看浏览top20的商品及品类分布:浏览量为前3的商品为812879,138964,3845702,分属4756105,3607361类
查看收藏top20的商品及品类分布:收藏量为前3的商品为2818406,2308741,3330337,分属982926,4827153,4756105类
查看加购商品top20及品类:加购量为前3的商品为1535294,2331370,3031354,分属3848953,3607361,2735466类
通过分析销量高的品类的商品销量都不低,建议通过调研等方式推出细分市场的商品类型,并跟进后续数据。
(3)商品购买转化率
SELECT item_id,category_id,pv,buy,concat(round(buy/pv*100,2),'%') conversion
FROM taobaouser.onitem
order by conversion desc
limit 200
对于商品浏览量高,而转化率非常低的,建议商家对商品购买流程使用转化漏斗进行分析并进行改善。
一起学习,共同进步,欢迎大家评论!