用户行为分析及实战项目python

Python018

用户行为分析及实战项目python,第1张

用户行为分析是对用户在产品上产生的行为以及行为背后数据进行一系列分析,通过构建行为模型和用户画像,支持产品决策,精细化运营,实现增长。

对于产品而言,用户行为分析可以验证产品可行性,找到产品缺陷,以便需求迭代;

对于设计而言,用户行为分析可以帮助提高产品体验,发现交互不足,以便设计优化;

对于运营而言,用户行为分析可以实现精准营销,挖掘使用场景分析用户数据,以便运营决策调整;

一般包括设备id,时间,行为类型,渠道等

(1)粘性指标-表现用户-提高认知度A激活:关注周期内持续访问,比如:留存率、流失率、新用户占比、用户转化率等;

(2)活跃指标-表现行为-诱导参与留存:用户参与度,比如:活跃、新增、流失、平均访问时长、使用频率等;

(3)产出指标-分析出-培养忠诚度R变现:用户价值输出,比如:消费金额、页面UV、消费频次等;

(1)行为事件分析:根据关键指标对用户行为进行分析,比如:注册、登录、搜索流量商品、加入购物车、提交订单、付款、评价一系列属于电商完整事件。在根据用户细分维度,用户渠道、注册时间、订单频率、新老客等维度找到规律,制定方案。

(2)用户留存分析:分析用户产品参与度的指标,一般遵循40-20-10法则,即日留存大于40%周留存大于20%月留存大于10%。

(3)漏斗分析:描述用户使用产品时关键环节转化率情况,能够验证设计是否合理。分析用户在哪个环节流失,为什么流失,如何降低流失提高转化率。

(4)用户路径分析:用户在使用产品过程中的访问路径。首先要梳理用户行为轨迹,认知-熟悉-试用-使用-忠诚。轨迹背后反应的是用户特征,这些特征对产品运营有重要参考价值。当发现偏差时,可能就是产品的缺陷。

(5)福格模型:用来研究用户行为原因的模型。B行动=M动机A能力T触发器。以分享为例,动机-该分享对分享者和被分享者有什么好处,能力-分享路径实现是否有难度,触发器-分享按钮是否醒目,用户是否意识到这个分享带来的好处。

已知数据集中包括用户ID、商品ID、商品类目ID、行为类型和时间戳,其中行为包括点击、购买、加购、喜欢。

(1)用户活跃指标

(2)用户粘性指标

(3)用户行为分析

能明显看出12月2日周六的PV突增,但是11月25日和26日同为周末,PV量级却没有那么大,需要继续查看数据,有可能是异常情况。

与PV情况相似,但是UV增加不一定就是PV增加的原因,还有可能是某些用户访问次数增加导致PV增加或统计问题,因此需要看一下人均访问次数确定。

人均访问次数接近,由此可知PV的增加就是新访客带来的。由于双12属于年底大促,因此12月2日访问量突增的原因可能与商家开始进行促销和宣传有关系。

人均消费频次2.8次

可以看出主要活跃集中在10-23点,从晚上7时开始至10时用户访问处于最佳活跃状态,21时是一天中活跃最高点。

收藏、加入购物车、购买与pv的趋势相似。

10时附近付费率最高,因此应该保持10时的运营活动加大21时的活动力度。

由图可知,前7个商品类目属于高销量,与第8个类目销量差异较大。

商品类目为‘4159072’付费率最高

进一步探索与它同销量的’1320293‘付费率却极低,发现1320293的访问量很高但是购买平淡无奇,而4159072虽然访问量低但是每十个人访问就有一人付费。可以 深入研究一下它是否有什么特殊性或者高效运营手段,详情页如何展示介绍商品,文案如何设计等,找出规律应用到其他商品上面,提高付费率 或者 从渠道的角度分析是否前者渠道目标用户不如后者精准

有过销量的类目共3666个,以销量由大到小排序占总销量的80%为止,有628个商品类目。因此可以说着628个商品类目占总销量的80%,奇妙的28定律!

前面平均消费频次为2.8,销量top20中,‘2885642’‘4756105’‘4159072’这三个类目消费频次与销量差距悬殊,可以根据商品性质分析如何提高用户消费频次,同时可以参考其他消费频次较高商品如‘982926’的运营手段等。

普遍说明每发生1.4次收藏就有1次购买行为。

可以分析出几个商品每收藏4-5次才会购买一次,考虑是否对这类商品进行个性化召回,比如定向推送询问用户收藏的该商品最近有优惠券是否前来购买等。

与区分商品类目的分析相似,这里指针对有异常商品类目下的商品名称进行分析

从商品ID维度分析以商品类目ID=’1320293‘和’4159072‘两者销量相似但是付费率相差悬殊为例。

说明商品类目下有与其大量商品不如小而精,精准定位用户需求。

能辅助证明上面的观点,如果在某类目下有几个商品吸引用购买,那么该类目的销量就会大增。

使用sql较容易实现

可以看出整体次日留存率较高,越接近12月份留存率逐步上升,与临近双十二商家宣传促销有关。

用户复购率也在逐渐提高。

从浏览到加入购物车的转换率仅6.2%,有空间提升。

10.留存率能够达到70%以上,复购率达到20%以上,在临近双12明显提升。

11.通过观察漏斗可以看出,加入购物车的转化率仅6.2%还有很大的空间提升。

由于此次数据集没有提高销售金额,因此无法进行ARPU方面数据分析。这里补充下关于消费金额的知识点:

LTV是平均每个用户带来的价值,可以决策为每个用户付出多少成本。一般来说LTV>CAC认为公司发展空间大,LTV<CAC认为公司变现能力弱,LTV/CAC=3认为公司健康,大于3说明市场拓展较为保守;小于3说明转化效率底下。

LTV=LT*ARPU

LT指用户平均生命周期,留存率之和。

举例:如果知道用户一个月内的留存率,可以使用excel做出对数趋势线,看下r方。根据对数公式计算出留存率之和,也就是LT。

注意:ARPU与LT要有单位之间的换算。

CAC计算要考虑进去成本,包括营销费用、推广费用、以及人力成本。CAC是一个平均值,可能在各渠道下成本不一,可以区分渠道分别计算。

即花费的用户获取成本能在多长时间内回本。PBP越短资金周转越快。

参考:

https://blog.csdn.net/u012164509/article/details/103049740 arpu和aprru

https://baijiahao.baidu.com/s?id=1662108604585143388&wfr=spider&for=pc LTV

Monotonic Binning with Python

Monotonic binning is a data preparation technique widely used in scorecard development and is usually implemented with SAS. Below is an attempt to do the monotonic binning with python.

Python Code:

# import packages

import pandas as pd

import numpy as np

import scipy.stats.stats as stats

# import data

data = pd.read_csv("/home/liuwensui/Documents/data/accepts.csv", sep = ",", header = 0)

# define a binning function

def mono_bin(Y, X, n = 20):

# fill missings with median

X2 = X.fillna(np.median(X))

r = 0

while np.abs(r) <1:

d1 = pd.DataFrame({"X": X2, "Y": Y, "Bucket": pd.qcut(X2, n)})

d2 = d1.groupby('Bucket', as_index = True)

r, p = stats.spearmanr(d2.mean().X, d2.mean().Y)

n = n - 1

d3 = pd.DataFrame(d2.min().X, columns = ['min_' + X.name])

d3['max_' + X.name] = d2.max().X

d3[Y.name] = d2.sum().Y

d3['total'] = d2.count().Y

d3[Y.name + '_rate'] = d2.mean().Y

d4 = (d3.sort_index(by = 'min_' + X.name)).reset_index(drop = True)

print "=" * 60

print d4

mono_bin(data.bad, data.ltv)

mono_bin(data.bad, data.bureau_score)

mono_bin(data.bad, data.age_oldest_tr)

mono_bin(data.bad, data.tot_tr)

mono_bin(data.bad, data.tot_income)

Output:

============================================================

min_ltv max_ltv bad total bad_rate

00 83 88884 0.099548

1 84 92 137905 0.151381

2 93 98 175851 0.205640

3 99 102 173814 0.212531

4 103 108 194821 0.236297

5 109 116 194769 0.252276

6 117 176 235793 0.296343

============================================================

min_bureau_score max_bureau_score bad total bad_rate

0 443 630 325747 0.435074

1 631 655 242721 0.335645

2 656 676 173721 0.239945

3 677 698 245 1059 0.231350

4 699 709 64427 0.149883

5 710 732 73712 0.102528

6 733 763 53731 0.072503

7 764 848 21719 0.029207

============================================================

min_age_oldest_tr max_age_oldest_tr bad total bad_rate

0 1 59 319987 0.323202

1 60108 235975 0.241026

2109142 282 1199 0.235196

3143171 142730 0.194521

4172250 125976 0.128074

5251588 93970 0.095876

============================================================

min_tot_tr max_tot_tr bad total bad_rate

0 0 8 378 1351 0.279793

1 9 13 247 1025 0.240976

2 14 18 240 1185 0.202532

3 19 25 165 1126 0.146536

4 26 77 166 1150 0.144348

============================================================

min_tot_income max_tot_income bad total bad_rate

00.00 2000.00 323 1217 0.265407

1 2002.00 2916.67 259 1153 0.224631

2 2919.00 4000.00 226 1150 0.196522

3 4001.00 5833.33 231 1186 0.194772

4 5833.34 8147166.66 157 1131 0.138815