分析工具:Python+MySQL+Tableau首先使用Python截取300万条淘宝用户行为数据,接下来在MySQL环境中使用SQL语句对数据进行清洗和查询,并结合Tableau绘制可视化图表。
使用Python导数
先将一亿多条数据全部加载到Python中。为了方便分析以及考虑执行效率,使用Python将数据顺序打乱后,随机获取300万条数据,并将数据存入MySQL数据库中。
#这一步开始在sql上进行ALTERTABLEuserbehaviorMODIFYuser_idVARCHAR(8);ALTERTABLEuserbehaviorMODIFYitems_idVARCHAR(8);ALTERTABLEuserbehaviorMODIFYcategory_idVARCHAR(8);重复值检查该数据表中存在很多用户id一样的记录,但不影响分析,因为一个用户可能在同一时段或不同时段出现重复浏览商品或购买商品等的行为,因此这里就不对此部分的数据进行处理。
CREATETABLEuserSELECT*FROMuserbehaviorWHEREdateBETWEEN'2017-11-25'AND'2017-12-03';#这里已经代表date不为空,故不再加isnotnull基于AARRR(海盗模型)框架的产品分析AARRR是Acquisition、Activation、Retention、Revenue、Referral,这个五个单词的缩写,分别对应产品生命周期中的五个阶段,简称获客、促活、留存、创收和传播。由于数据集的限制,只进行促活、留存、创收这三个阶段的产品分析。
总访问量(PageView,简称PV),指用户访问页面的总数,用户每访问一个网页,就算一个访问量,同一个页面刷新一次也算一个访问;
访客数(UniqueVisitor,简称UV),一台电脑为一个独立访客;
平均访问深度,也称为平均访问量,指用户每次浏览的页面的平均值,即平均每个UV访问了多少个PV。
SELECTa.pvAS'总访问量',a.uvAS'总访问用户数',a.pv/a.uvAS'平均访问深度'FROM( SELECTCOUNT(behavior)AS'pv',(SELECTCOUNT(DISTINCTuser_id)FROMUSER)AS'uv' FROMUSER WHEREbehavior='pv')ASa;总访问量总访问用户数平均访问深度26858798024173.34从整体数据来看,淘宝在这一周内的总访问次数为2685879次,总访问用户数为802417人,平均访问深度为3.34,即每个人一周内大概会访问3个页面。
日均PV:以天为单位展示商品的浏览量日均UV:以天为单位展示用户数的变化趋势
从上图可以看出,PV、UV这两个指标的变化趋势几乎保持一致。在2017年11月25日-12月1日之间,都是较为稳定的,而在2017年12月2日这天开始,PV和UV都不断增加。这有可能是由于12月2日接近双十二,有双十二预热活动导致访问量增加。
这在当中还可以初步看出非工作日(11月25日和11月26日)对于访问量没有明显的提升。
以小时为单位展示商品的浏览量和用户数的变化趋势
日新增用户是指客户端首次访问页面的用户数,这里用最小日期当做用户首次访问APP的日期,将新增用户数和总用户数对比就是新用户占比。
跳出率,也叫跳失率,就是只浏览了一个页面就离开的访问次数除以该页面的全部访问次数,可以反映页面内容受欢迎的程度,跳失率越大,页面内容越需要调整。
SELECTCOUNT(a.ct)AS'只浏览一次的访问总数',(SELECTCOUNT(behavior)FROMuserWHEREbehavior='pv')AS'总访问次数',CONCAT(ROUND((COUNT(a.ct)/(SELECTCOUNT(behavior)FROMuserWHEREbehavior='pv'))*100,2),'%')AS'跳出率'FROM (SELECTuser_id,COUNT(behavior)ASct FROMuser WHEREbehavior='pv' GROUPBYuser_id HAVINGct<=1)ASa;只浏览一次的访问总数总访问次数跳出率21210826858797.90%从上图可以看出,用户跳失率为7.88%,相对于淘宝整体而言,该用户跳失率是较低的。但该指标应用到不同的店铺页面上会更为具体有效。
阿里推出了一个可以把品牌在阿里系的人群资产定量化运营的模型,这个模型叫做:A-I-P-L。
AIPL中的“L”为会员复购行为,在后面单独计算。这里仅对A、I、P阶段的行为进行统计
从用户的购买行为转化漏斗图来看,用户在浏览商品后,进入到加入购物车或收藏商品环节的比例为9.38%,而在加入购物环节/收藏商品后进入购买商品的转化率为24.04%。相对于第二环节来说,第一环节的转化率较低,这表明用户在浏览商品后,较少选择加入购物车或收藏商品,部分用户对该商品并不是很满意,或者没有收藏和加购的习惯,一方面需要提高商品的吸引力,或从商品图片或从标题、质量和排版等方面优化。另一方面是有意识引导消费者加入收藏或购物车从而提高转化率。
SELECTCOUNT(DISTINCTa.user_id)AS'总购买用户数',SUM(IF(a.ct>=2,1,0))AS'购买两次以上的用户数', ROUND((SUM(IF(a.ct>=2,1,0))/COUNT(DISTINCTa.user_id)),4)AS'复购率', DATEFROM(SELECTuser_id,COUNT(behavior)AS'ct',DATEFROMUSERWHEREbehavior='buy'GROUPBYuser_id)ASaGROUPBYDATE;在这里要理解mysql的执行顺序:
从上图中可看出,每天的复购率都较为稳定,趋近于6%左右。但是从11月29日到12月2日的复购率持续下降,这一反常趋势需要找出其原因,避免复购率继续下降。此处限于数据集指标有限,未能进一步分析。
从上图中可看出,加购转化率和点击转化率都较为平稳,基本趋向于一个数值轻微波动,而下单转化率波动较大,并且12月1日开始转化率开始急速下降,需要寻找出下降的原因,比如比较不同渠道的下单转化率、分析用户画像等方法。从图中也可以看出下单转化率远超于加购转化率和点击转化率,因此需要提升加购转化率,进一步提升下单转化率。
由于数据集缺失金额数据,主要从每日访问用户数,每日购买次数,每日购买人数,每日购买人数比率,每日人均购买次数这几个指标来分析。
如上图所示,每日购买人数比例大致稳定在3%左右,2月2日和12月3日访问人数大幅增加,购买人数也随之增加,但是购买人数比例却有所下降,访问人数和购买人数的上升又可能是由于双十二的预热环节,而购买人数比例的下降也同样是由于预热环节,人们倾向于在双十二活动中进行购买活动。
从图中可看出商品ID为4756105的商品浏览量最大,有134080次浏览量。其次是商品ID为4145813和商品ID为2355072的商品。浏览量高可能代表其商品质量、图片、标题和宣传等比较符合消费者需求。但其购买量却未必高。因此下面进行购买量分析。
从上图中可以看出排名前三的分别是商品ID为1464116、2735466和4145813的商品,与上文的浏览量最高的前三的商品对比,只有商品ID为4145813的商品都位于前三,可看出浏览量最多并不代表购买量最多。热搜商品未能成功吸引消费者购买,浏览量未能很好地转化为销量。
因此下文结合漏斗模型分析浏览量前三的商品在哪些环节下出现了差异,以便针对性地调整。
从上图中可以看出,三个商品的加购转化率相差并不悬殊,但是下单转化率上商品ID为4145813的商品很明显远远超过了其余两个商品,可见商品ID为4145813的商品之所以能够在商品浏览量和商品购买量中都位于前三,主要在于其下单转化率较高,而其余两个商品若想提高购买量,应提高其下单转化率。
RFM模型是衡量客户价值和客户创利能力的重要工具,是按照R(Recency-近度)、F(Frequency-频度)、M(Monetary-额度)三个维度进行细分客户群体。
额度M(Monetary):表示客户每次消费金额的多少。可以用最近一次消费金额,也可以用过去的平均消费金额,根据分析的目的不同,可以有不同的标识方法。一般来讲,单次交易金额较大的客户,支付能力强,价格敏感度低,是较为优质的客户,而每次交易金额很小的客户,可能在支付能力和支付意愿上较低。当然,也不算绝对的。
通过RFM分析将客户群体划分成一般保持客户、一般发展客户、一般价值客户、一般挽留客户、重要保持客户、重要发展价值客户、要挽留客户等八个级别。
一般发展用户不应该包含新注册用户,因为新用户可能最近注册,但是购买频率和购买金额还是处于比较低的,做分析时应该把这部分用户过滤掉。
由于数据集没有给出用户的购买金额,故这里按照RFM模型的计算流程,仅采用R和F来对用户群体进行细分。
createorreplaceviewRF_modelAS#创建视图,方便后续的分析SELECTuser_id,if(behavior='buy',DATEDIFF('2017-12-03',MAX(date)),9)AS'R',sum(if(behavior='buy',1,0))AS'F'FROMuserGROUPBYuser_idORDERBYuser_id;根据业务标准,给R、F打分R、F打分标准随着不同的业务有所不同,这里由于数据集的有限只能进行粗略的打分。
selectFfromRF_modelgroupbyForderbyF;这里计算得出F的范围为:0-6
通过计算可得出,R的范围是0-9,F的范围是0-6。根据这两个指标制定一个粗略的打分表。
根据打分表打分:
从上图我们可以看出,挽留用户占了大部分,为97.61%,发展用户次之,为2.35%,而价值用户占比和保持用户占比仅为0.02%。