用户行为分析(SQL+Tableau+AARRR模型)

一、数据来源及含义

1、数据来源

阿里云天池:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1
UserBehavior.csv
原始数据有100150806条,数据量过大,不方便使用Mysql进行操作,本例先使用python对数据进行处理,选取其中的999999条数据用于本次用户行为分析。

2、字段含义

用户行为分析(SQL+Tableau+AARRR模型)_第1张图片
user_id:用户id
item_id:商品Id
category_id:商品类别id
behavior_type:用户行为类型
timestamp:时间戳

其中behavior_type包括:
pv(点击)
cart(加入购物车)
fav(收藏)
buy(购买)

二、数据清洗

1、添加辅助字段

① 时间戳转日期型

ALTER TABLE userbehavior_random ADD COLUMN datetime TIMESTAMP(0) NULL; 
UPDATE userbehavior_random SET datetime = FROM_UNIXTIME(timestamp);

② 提取年月日

ALTER TABLE userbehavior_random ADD COLUMN dates CHAR(10) NULL;
UPDATE userbehavior_random SET dates =SUBSTR(datetime,1,10);

③ 提取时分秒

ALTER TABLE userbehavior_random ADD COLUMN hours CHAR(10) NULL;
UPDATE userbehavior_random SET hours = SUBSTR(datetime,12,8);

④ 提取小时(Tableau中绘图时使用)

ALTER TABLE userbehavior_random ADD COLUMN time CHAR(10) NULL;
UPDATE userbehavior_random SET time = SUBSTR(datetime,12,2);

进行上述处理后结果如下:
用户行为分析(SQL+Tableau+AARRR模型)_第2张图片

2、异常值

① 查看时间的最大最小值

SELECT MAX(timestamp),
       MIN(timestamp),
       MAX(datetime),
       MIN(datetime)
FROM userbehavior_random;

在这里插入图片描述
② 删除异常值
本次分析针对2017年11月25日至2017年12月3日数据,对异常值进行删除,共删除508行。

DELETE FROM userbehavior_random
WHERE dates < '2017-11-25' OR dates > '2017-12-03';

在这里插入图片描述
③查看数据集

SELECT * FROM userbehavior_random

目前还剩999491条数据

3、重复值

SELECT DISTINCT * FROM userbehavior_random

显示有999491条数据,无重复值。

4、缺失值

SELECT COUNT(user_id),COUNT(item_id),COUNT(category_id),COUNT(behavior_type),COUNT(timestamp)
FROM userbehavior_random

在这里插入图片描述均有999491条数据,无缺失值。

三、模型构建

1、用户流量分析

① 日活跃用户(DAU)人数分布

2017年11月25日-2017年12月1日 活跃人数较为平稳,但也有增长趋势,12月1日-12月3日增长相对较迅速,活跃用户人数约增加 26%。
用户行为分析(SQL+Tableau+AARRR模型)_第3张图片

② PV、UV、PV/UV

SELECT COUNT(DISTINCT user_id)AS 'UV', 
(SELECT COUNT(*) FROM userbehavior_random
WHERE behavior_type='pv')AS 'PV',
(SELECT COUNT(*) FROM userbehavior_random
WHERE behavior_type = 'pv')/(COUNT(DISTINCT user_id) ) AS 'PV/UV'
FROM userbehavior_random;

在这里插入图片描述
UV:独立访客数
PV:页面流量次数
PV/UV:平均一个独立访问者所浏览的页面访问量

③ PV、UV每日变化趋势

SELECT dates,
SUM(CASE WHEN behavior_type='pv' THEN 1 ELSE 0 END)AS '日均访问量',
COUNT(DISTINCT user_id)AS '日均UV用户'
FROM userbehavior_random
GROUP BY dates
ORDER BY dates;

用户行为分析(SQL+Tableau+AARRR模型)_第4张图片
将上述查询所得表格导入Tableau中,绘制PV、UV每日变化趋势图。发现在2017年11月25日-2017年12月3日期间,PV与UV随日期的变化趋势相似,11月25日-12月1日较平稳,12月2日开始有明显增长,增长率约为27%。用户行为分析(SQL+Tableau+AARRR模型)_第5张图片

④ PV、UV每时变化趋势

将userbehavior_random表导入Tableau中,绘制PV、UV每时变化趋势图。可以发现18点到23点,uv波动不大,而pv波动较大,说明用户开始频繁访问。
用户行为分析(SQL+Tableau+AARRR模型)_第6张图片

⑤ 四种用户行为每时变化趋势

用户行为分析(SQL+Tableau+AARRR模型)_第7张图片用户行为分析(SQL+Tableau+AARRR模型)_第8张图片
从上图可以看出:
(1)四种行为的分布趋势基本一致。
(2)用户在晚上18点到23点会频繁点击浏览网页,收藏与加入购物车数量也随之增加
(3)其中购买曲线与收藏曲线趋势更为接近,在一定程度上说明客户对于收藏商品更为偏爱,而购物车里的一部分商品可能只是作为一种比较或者是排除购买的作用,可以关注客户购物车和收藏的商品进行精准推送。

⑥ 跳失率

跳失率=只有浏览行为的用户数/总用户数

SELECT SUM(IF(t.fav_num=0 AND t.cart_num=0 AND t.buy_num=0,1,0))/COUNT(t.user_id)*100 AS '跳失率'
FROM(
   SELECT user_id,
             SUM(IF(behavior_type='fav',1,0)) fav_num,
             SUM(IF(behavior_type='cart',1,0)) cart_num,
             SUM(IF(behavior_type='buy',1,0)) buy_num
      FROM userbehavior_random
      GROUP BY user_id
     ) t

在这里插入图片描述
可得跳失率约为23.98%,说明详情页对用户吸引力扔有待提高。

2、用户购买行为分析

① 日交易用户人数分布

2017年11月25日-2017年12月1日交易人数呈平稳状态,并有少量增加,12月1日-12月3日 交易用户人数约增加32%;
用户行为分析(SQL+Tableau+AARRR模型)_第9张图片

② 用户复购

复购率 = 购买次数两次及其以上的人数/有购买行为的用户总数

select concat(round((sum(case when 购买量>=2 then 1 else 0 end)/
sum(case when 购买量>0 then 1 else 0 end))*100,2),'%') as 复购率 
from userbehavior1;

在这里插入图片描述

3、建立用户各行为转化漏斗模型

①创建用户行为视图

create view userbehavior1 
as select user_id,
count(behavior_type) as '用户行为总数',
SUM(case when behavior_type = 'pv' then 1 else 0 end)as '点击量',
sum(case when behavior_type = 'buy' then 1 else 0 end)as '购买量',
sum(case when behavior_type = 'fav' then 1 else 0 end)as '收藏数',
sum(case when behavior_type = 'cart' then 1 else 0 end)as '加购数'
from userbehavior_random
group by user_id;

用户行为分析(SQL+Tableau+AARRR模型)_第10张图片

②计算用户各行为发生总数

select sum(点击量) as total_pv,
       sum(购买量) as total_buy,
       sum(收藏数) as total_fav,
       sum(加购数) as total_cart
from userbehavior1;

在这里插入图片描述

③计算各行为的转化率

select concat(round(sum(点击量)/sum(用户行为总数)*100,2),'%') as total_to_pv, 
       concat(round((sum(收藏数)+sum(加购数))/sum(点击量)*100,2),'%') as pv_to_favCart,
       concat(round(sum(购买量)/sum(点击量)*100,2),'%') as pv_to_buy
from userbehavior1;

在这里插入图片描述
使用Tableau绘制用户漏斗模型,在2017年11月25日-2017年12月3日期间,用户的点击率为89.54%,收藏或加购的占比为9.47%,最终购买率为2.22%;
用户行为分析(SQL+Tableau+AARRR模型)_第11张图片

4、用户留存分析

n日后留存率=(注册后的n日后还登录的用户数)/第一天新增总用户数
以2017-11-25作为第一天,计算次日、3日、7日留存率

--第一天新用户数
create table liucun 
as select count(distinct user_id) as 第一天新用户数 
from userbehavior_random
where dates = '2017-11-25';
-- 第二天留存用户数
alter table liucun add column 第二天留存用户 INT;
update liucun set 第二天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-11-26' 
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
-- 第三天留存用户数
alter table liucun add column 第三天留存用户 INT;
update liucun set 第三天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-11-27' 
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
-- 第五天留存用户数
alter table liucun add column 第五天留存用户 INT;
update liucun set 第五天留存用户=
(select count(distinct user_id)  from userbehavior_random
where dates = '2017-11-29' 
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
alter table liucun add column 第七天留存用户 INT;
update liucun set 第七天留存用户=
(select count(distinct user_id)  from userbehavior_random
where dates = '2017-12-01' 
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));

在这里插入图片描述

SELECT CONCAT(ROUND(100*第二天留存用户/第一天新用户数,2),'%')AS 次日留存率,
CONCAT(ROUND(100*第三天留存用户/第一天新用户数,2),'%')AS 三日留存率,
CONCAT(ROUND(100*第五天留存用户/第一天新用户数,2),'%')AS 五日留存率,
CONCAT(ROUND(100*第七天留存用户/第一天新用户数,2),'%')AS 七日留存率
from liucun;

在这里插入图片描述
用户留存率相对稳定,七日留存率略有回升,可能是因为当天12月1日是星期五,正好是客户活跃度上升的一个转折点,可能是有购物优惠活动。

四、总结

本项目运用MySQL+Tableau+python,从100150806条用户行为数据中随机选取999999条数据进行分析,下面结合AARRR模型,对应用户生命周期中的5个重要环节,对用户行为进行总结。

1、Acquisition–用户获取
由PV、UV每时变化趋势图可知18点到23点是用户频繁访问的时间,也是获取更多潜在客户的黄金时间。可以用最小的获客成本进行小游戏邀请、热门社交或小视频平台合作推广、app卖家推送等增加渠道曝光量进而增加渠道转化率。
本项目中跳失率约为23.98%,说明详情页对用户吸引力扔有待提高,可以进行精准人群推广、视觉优化等方式降低跳失率。

2、Activation–用户激活
本项目中2017年11月25日-2017年12月1日 DAU较为平稳,12月1日-12月3日增长相对较迅速。本项目分析了用户的四种行为,包括点击、购买、加入购物车、收藏。
点击量占总行为的89.54%,而收藏和加入购物车的用户仅占9.47%,最终购买的用户只有2.22%,转折点在加入购物车和收藏,要考虑为什么用户浏览了那么多商品却只有9.47%的用户加入购物或收藏,可能这中间用户花了太多的时间却没有挑选到满意的商品,那么有一些客户就流失掉了。
可以采取问卷调查的方式分析用户行为推送用户可能感兴趣的商品、优化购物界面使界面布局更加人性化等方式更好的满足用户需求,激活更多用户。

3、Retention–提高留存
在本项目中用户留存率相对稳定,七日留存率略有回升,可能是因为当天12月1日是星期五,正好是客户活跃度上升的一个转折点,可能是有购物优惠活动。
为了提高留存,可以让用户养成习惯,在一定程度上增加用户对产品的依赖性。①每日给用户推送可能感兴趣的商品;②一些签到的小游戏或者签到领积分活动,增加用户登录的频率,进而增加用户浏览时长;③对于年购买量比较大的用户,为了增加这些用户的粘性,可以推出vip服务,让这些用户享受折扣和优惠券,进而提高高价值用户的留存率和对平台的忠诚度;④大力推广直播跟用户互动,计算亲密指数并进行排行,可以让用户与店主之间建立信任,进而增加客户的忠诚度。

4、Revenue–增加收入
为了增加收入要提高成交转化率、复购率以及加购或收藏产品的购买率。
①提高成交转化率,优化用户推荐系统,或者邀请明星做测评推广;②用户复购率为33.65%,说明这些用户对该平台不太满意,可以通过奖励积分或者优惠券等方式鼓励用户重复购买;③通过分析找出价值用户的购买偏好,产品和类目等,给价值用户制定个性化的产品推荐,从而提高用户体验,进而提高购买率。

5、Referral–用户传播
要想让用户自发传播,那这个产品口碑一定要非常好,而且能够充分满足用户的需求,甚至给用户带来期望的需求。所以,要好好打磨产品。
可以采用一些增长策略,像现在比较普遍的老带新裂变营销,把握用户心理策划一些噱头式的活动等。还可以拼团、分享得优惠券、分享到朋友圈额外送积分等方式,鼓励用户进行分享和传播。

五、补充

1、电商数据分析指标

2、AARRR模型

用户行为分析(SQL+Tableau+AARRR模型)_第12张图片

你可能感兴趣的:(用户行为分析(SQL+Tableau+AARRR模型))