数据分析项目-电商用户行为分析
时间:2023-03-16 01:20:02 | 来源:电子商务
时间:2023-03-16 01:20:02 来源:电子商务
前言1.数据来源本次项目数据源来自阿里云TIANCHI,可登陆阿里云TIANCHI下载数据,地址如下:
2.时间范围2017年11月25日至2017年12月3日
3.分析目的通过分析用户在网站页面上的操作记录,找出规律并与网络营销策略相结合,从而发现目前网络营销活动中可能存在的问题,并进一步以数据为导向驱动业务指定新的营销策略。
4.电商常见业务分析指标导图搬运自:《数据化运营——系统方法与实践案例》对用户行为分析时常用的监测指标有:DAU、访问深度、留存、访问周期、转化率、各渠道指标对比等。
一、提出并明确分析问题二、理解数据此次项目数据集包含了2017年11月25日至2017年12月3日之间,约500W随机用户的所有行为,包括点击、购买、加购、收藏。数据集大小情况为:用户数量约100万(987,994),商品数量约410万(4,162,024),商品类目数量9,439,以及总的淘宝用户行为记录数量为1亿条(100,150,807)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔,文件格式为CSV文件。
由于数据过多,影响查数即运算速度,故选取50万条数据作为本次分析报告的数据集。
通过以下SQL语句将CSV文件导入到数据库,以备选取目标数据集。
LOAD DATA INFILE 'D://mysql-project//Secure//UserBehavior.csv 'INTO TABLE bhFIELDS TERMINATED BY ','ENCLOSED BY '"'LINES TERMINATED BY '/n'IGNORE 1 ROWS;
由于数据比较多,为了加快导入速度,在建立要导入的表前已经将目标数据库使用的存储引擎改为Myisam,原默认存储引擎InnoDB在处理数据导入上相比Myisam上速度会慢很多。并且将CSV文件放在了Mysql配置的允许导入文件夹中。
选取50万行数据到新表bh1中
create table bh1 asselect *from bhLIMIT 500000;
此时目标表bh1结构如下:
三、数据清洗:
1.选择子集。即只保留那些跟我们提出的问题相关的数据字段,剔除不相关或相关性很小的字段以缩小分析范围,提高分析速度。
该项目下无须此操作。2.重命名。字段名按照更符合业务或者报告阅读理解的方式重新命名。
表建立时已更名。3.重复值缺失值处理。对数据中字段值缺失和重复的记录进行处理,比如删除、填充值等。
-- 查找缺失值SELECT COUNT(user_id),COUNT(item_id),count(behavior),count(timestamps),count(category_id),count(*)from bh1;
根据业务实际情况,同一个独立用户在同一时刻只能访问同个商品,故将用户ID、商品ID、时间戳设为联合主键,所有字段设为not null。无报错说明无重复几乎和缺失值。
4.一致化处理。对数据类型进行转换,比如,日期数据、数值数据、文本数据。统一字段列数据类型。
原数据时间戳用epoch & unix timestamp格式表达,需要转化为常用的日期时间形式。
-- 新增日期时间列alter table bh1 add column datetime datetime;update bh1set datetime=FROM_UNIXTIME(timestamps);-- 新增日期列alter table bh1 modify column date VARCHAR(20);update bh1set date =FROM_UNIXTIME(timestamps,'%Y-%m-%d');
-- 新增时间列alter table bh1 add COLUMN time VARCHAR(20);update bh1set time=FROM_UNIXTIME(timestamps,'%H:%i:%s');
-- 修正数据类型alter table bh1 modify COLUMN time time;alter table bh1 modify column date date;-- 检查新增列有无异常SELECT count(*),count(datetime),count(date),count(time)from bh1;
5.异常值处理。比如日期不在预期范围内的数据,某数值字段下的文本数据等
由于数据分析需要从时间17-11-25至17-12-03之间,因此需要剔除不符合这时间跨度的数据。
-- 异常值处理,剔除非本次分析需要的时间范围之外的数据select *from bh1where date >'2017-12-03' or date<'2017-11-25'; DELETE FROMbh1where date >'2017-12-03' or date<'2017-11-25';
-- 检查剩余数据SELECT count(*),count(datetime),count(date),count(time)from bh1;
现在还剩
499740条数据。
四、模型搭建和问题分析1.用户转化分析首先需要掌握以下指标:
UV、PV、各行为环节次数。
-- UV、PV、各行为环节次数。select count(DISTINCT user_id) as UVfrom bh1;
独立用户数4850-- 各行为环节次数。CREATE TABLE bh_cvr AS SELECT behavior, count(behavior) AS '行为次数'FROM bh1GROUP BY behaviorORDER BY count(behavior) DESC;
根据以上数据创建新表,用以后续使用 PowerBI开发自动化报表。
可以看出,在448195个用户访问中,只带来了10001个购买行为,实际成交转化率只有2.2%
那问题到底出在哪一个环节呢,看似是加购物车这一环节流失率最大
提出假设1:用户将商品加入购物车很大一部分可能会产生购买行为如果假设1成立,那我们只要做到让访问产生出更多的加购行为,则会大大提升最后的购买率假设检验1:-- 创建用户购买记录表create table buy_record as select *from bh1where behavior='buy';-- 创建用户加购记录表CREATE table cart_record as select *from bh1where behavior='cart';-- 联结表找出加购和购买的关系select count(a.user_id)from buy_record ainner join cart_record bon a.user_id=b.user_id and a.item_id=b.item_id
从运行结果看,在10000行的购买行为中,其中,1994次的购买行为是同一用户同一商品下既有加入购物车行为又有购买行为的。
讨论极端情况:假设用户只要加购就一定会购买,那么10000行购买应该对应10000行加入购物车的行为。由目前掌握的数据来看,这种假设并不符合实际。
用户实际上对某个特定商品的行为轨迹可以分为:
- 访问——购买
- 访问——加购——购买
- 访问——收藏——购买
2.2%的购买行为是由这三种不同的转化流程合计而来的。(收藏加购同时含有的行为受多因素影响,此处暂不讨论)
故得出假设检验1的结论:只有20%的行为是先加购后购买的,所以实际上,
从平台考虑,用户将商品加入购物车的行为并不能代表其一定会购买,购物车的作用更多是可以让用户批量购买一键下单。
虽然从转化率来看夹点在加入购物车环节,但是即使加入购物车促进成交的作用也不是很大,故可以从加大用户访问——购买这种行为轨迹更符合用户场景需求。
2.用户偏好分析2.1类别销量分析从Mysql中建立视图检索销量前十的类别
-- 用户偏好分析,单品销量create view Top_category asselect *from (select category_id,count(category_id) as '类别销量'from buy_recordgroup by category_id) as aorder by a.`类别销量` desclimit 10;
将视图数据源链接到PowerBI进行可随数据自动更新的可视化呈现:
从可视化结果来看,这十种商品类别的销量都在100左右,有的达到了200,销量高意味着用户的喜好以及市场需求份额。运营部门可以根据此设定或随时更新相关商品的库存和定价策略,最大化销售收入。提高利润率。
2.2 单一产品分析-- 视图检索Top10销量产品create view Top_item asselect *from(select item_id,count(item_id) as '产品销量'from buy_recordgroup by item_id) as border by b.`产品销量` desclimit 10
从图中可以看出,3122135、4360347这两种产品产生了9种、8种购买行为,明显高于其他产品,也说明了这些商品在市场上的需求比较旺盛,运营人员应时刻关注相关产品的库存以及通过这些“刚需产品”进行引流,增加用户对其他产品的购买。
2.3 用户浏览商品分析从访问数据可以了解用户对各个产品的不同需求程度。
-- 用户偏好分析,商品品类点击create view Top_pv_category asselect *from (select category_id,count(category_id) as '访问次数'from bh1where behavior='pv'group by category_id) as corder by c.`访问次数`desclimit 10;
从图中可看出,商品类别编号为812879、3845720、987143的商品在淘宝APP中点击数最高,说明用户最想要在淘宝平台中找到这三类商品。
2.4 用户访问时间偏好在PowerBI里用小时对用户行为次数进行分组汇总,整理成以下图表:
0-5点访问人数不断下降,因为用户大多这个时间段在休息,访问量从6点下午5点基本属于不断上升的状态,其中,下午三点时达到小高峰,从晚上6点开始,访问次数飙升,到晚9点时已经是白天最高峰时的两倍左右。建议运营人员留意此用户时间偏好,在晚6点-9点进行相应营销活动可以让更多用户参加。
3.重要指标分析用户复购率复购率 = 购买次数两次及其以上的人数/有购买行为的用户总数
在PowerPivot中对订单记录表进行复购率指标计算
将模型导入到PowerBI中,生成重要指标标签
用户留存率n日后留存率=(注册后的n日后还登录的用户数)/第一天新增总用户数
这里以2017-11-25作为第一天,计算次日、3日、7日、15日留存率;
从模型中抽取留存率:
五 、总结与建议:此次项目运用MySQL和PowerBI工具,从1亿条用户行为数据中随机选取50W条数据进行分析,下面我们结合AARRR模型,对应用户生命周期中的5个重要环节,对用户行为进行梳理和优化梳理。
1、Acquisition--用户获取每天2上18点到21点是用户频繁访问的时间,也是获取更多潜在客户的黄金时间,可以进行小游戏邀请、拼团邀请、KOL 推广、热门社交或小视频平台合作推广、淘宝app卖家推送等。
2、Activation--用户激活此次项目分析了用户的四种行为,包括点击、购买、加购、收藏;点击量占总行为的89.5%,而收藏和加入购物车的用户仅占9.5%,最终购买的用户只有2.24%,夹点在加入购物车这里,为什么用户浏览了那么多商品却只有9.5%的用户加入购物或收藏,可能这中间用户花了太多的时间而没有挑选到满意的商品,那么有一些客户就流失掉了。可以采取问卷调查的方式,或者分析用户行为推送用户可能感兴趣的商品,或者优化购物界面使界面布局更加人性化等方式。
3、Retention--提高留存让用户养成习惯,在一定程度上增加用户对产品的依赖性,导致无法离开该平台。让用户习惯打开淘宝:①可以每日给用户推送可能感兴趣的商品;②一些签到的小游戏或者签到领积分活动,增加用户登录的频率,进而增加用户浏览时长;③对于年购买量比较大的用户,为了增加这些用户的粘性,可以推出vip服务,让这些用户享受折扣和优惠券,进而提高高价值用户的留存率和对平台的忠诚度;④大力推广淘宝直播跟用户互动,计算亲密指数并进行排行,可以让用户与店主之间建立信任,进而增加客户的忠诚度。
4、Revenue--增加收入提高成交转化率、复购率以及加购或收藏产品的购买率。①提高成交转化率,优化用户推荐系统,或者邀请明星/KOL做测评推广;②淘宝用户复购率为66.16%,说明这些用户对淘宝平台还算满意,可以通过奖励积分或者优惠券等方式鼓励用户撰写评论,或者鼓励用户去分享买到的宝贝,让用户主动去推荐商品;③通过分析找出价值用户的购买偏好,产品和类目等,给价值用户制定个性化的产品推荐,从而提高用户体验,进而提高购买率。
5、Referral--传播推荐首先,要让用户自发传播,那这个产品口碑一定是好得不得了,而且能够充分满足用户的需求,,甚至给用户带来期望的需求。所以,根本上来说,要好好打磨产品。其次,可以采用一些增长策略,像现在比较普遍的老带新裂变营销,把握用户心理策划一些噱头式的活动等。
对于淘宝平台,可以拼团、分享得优惠券、分享到朋友圈额外送积分等方式,鼓励用户进行分享和传播。