一、案例背景
基于千万级的淘宝用户的使用记录,对淘宝用户的行为进行分析,具体指标包括:日PV、日UV、小时PV、小时UV、不同用户行为的PV、用户购买次数分布、用户购买频次分布、活跃用户消费情况等。通过本案例,可以基本看看Power BI都能分析达到怎么样的效果。
二、数据来源及结构
阿里天池官方发布的1万用户在2014年双十二期间的行为记录,数据量达1200万+。
数据下载地址:https://tianchi.aliyun.com/dataset/dataDetail?dataId=46
数据结构:
user_id:用户ID
item_id:商品ID
behavior_type:用户行为类型(包含1点击、2收藏、3加购物车、4支付)
user_geohash:地理位置
item_category:商品类别ID
time:记录时间
三、数据导入及整理
从阿里天池网站下载文件后,解压得到csv文件,直接通过“获取数据”功能,即可导入csv文件。
整个数据文件大小500M+,我的家用电脑导入大概花了2分钟。(酷睿i5,16G内存,500G固态硬盘)
筛选并查看各列数据,数据还是比较规整的,没有发现异常值,因此也没进行数据清洗了。
打开查询编辑器,通过 “添加列-提取” 功能,添加日期、小时两列,用作后面日期、小时维度分析使用。
完成数据整理后,应用查询更改。由于数据量相对较大,应用查询更改,也还是花费了一些时间。我的家用电脑用了大概5分钟时间。
四、数据分析
(1)每日PV、UV走势分析
使用折线图,将“日期”/“小时”列作为轴,将"user_id"列作为值,得出下面趋势图。
可以直观看出,在双12当天,PV、UV均达到峰值。在整个双12期间,用户活跃程度大概有45%的浮动。
(2)每小时PV、UV走势分析
构建折线图方法与(1)类似。
从图形直观看出,PV、UV曲线走势基本一致。但是发现晚上18点之后,PV快速十分增长,但是UV增长不太明显。
看得出来哈,即使白天时间要上班、上学,双12期间很多人还是克制不住要上上淘宝。
(3)不同行为的每小时PV趋势分析
使用折线图,将“小时”列作为轴,将"user_id"列作为值,将“behavior_type”作为图例,得出下面趋势图。
行为“1点击” 明显比其他行为的PV高得多,说明大家都在刷。
行为“2加入购物车” 比 行为“3添加收藏” 的PV要多,让用户收藏进行复购还是难些呀。
比较上下两个图,四种行为的趋势还是很一致的。
(4)用户购买次数分析
先使用下面公式构建新表,按不同的购买次数对用户进行分类汇总。
表 = SUMMARIZE(
FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=4),
tianchi_mobile_recommend_train_user[user_id],
"购买次数分类",
count('tianchi_mobile_recommend_train_user'[behavior_type])
)
添加用户数量的度量值。
用户数量 = count('表'[购买次数分类])
使用柱状图、矩阵进行可视化,构建方法与前面几点类似。
从购买次数看,大多数用户还是比较克制的,购买次数在20以下的占了绝大多数。
(5)不同购买频次客户的贡献度分析
由于原始数据中,没有每笔订单的金额,只能对不同购买频次的客户,分类计算总购买次数,以分析不同类别客户的贡献度。
构建总购买次数度量值。
总购买次数 = sum('表'[购买次数分类])
这就很明显地发现了几个“剁手族”的贡献了,有6个客户购买次数达到了200次以上。
(6)每天购买总数、购买频次分析
购买次数度量值
购买次数 = SUMX(FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=4),1)
平均购买次数度量值
平均购买次数 = DIVIDE(SUMX(FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=4),1),
CALCULATE(DISTINCTCOUNT('tianchi_mobile_recommend_train_user'[user_id])
,FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=4)))
每天的购买总数、购买频次的趋势基本一致,都在双12当天达到峰值,且在双12当天远远大于其他时间。
(7)活跃用户消费情况分析
构建活跃用户消费率度量值
活跃用户消费率 = DIVIDE(
CALCULATE(DISTINCTCOUNT('tianchi_mobile_recommend_train_user'[user_id])
,FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=4)),
CALCULATE(DISTINCTCOUNT('tianchi_mobile_recommend_train_user'[user_id])
,FILTER('tianchi_mobile_recommend_train_user','tianchi_mobile_recommend_train_user'[behavior_type]=1)
))
在双12当天,打开过淘宝的人,超过一半都下单消费了,这转换率高得离谱呀。
而且即使在其他时间,每天都保持有超过20%的转化。
五、总结
在上述所有的分析中,除了整理数据时加载较慢以外,其他所有分析中,所构建的表、度量值、可视化图形等,Power BI都是秒速完成的。在数据量超过1200万的级别,这样的响应速度,还是很不错的了。
从Power BI的可视化界面,可以很快就完成了整个数据分析的全流程,包括数据的导入、清理、度量值编写、模型构建、可视化表达、指标分析等,也从分析结果中快速得到一些商业洞察,十分具有实际应用价值。