> 文档中心 > 数据分析方法(1)之漏斗分析

数据分析方法(1)之漏斗分析

文章目录

  • 1、理论
    • 1.1、 定义
    • 1.2、 使用场景
    • 1.3、例子
    • 1.4、作用
  • 2、实战
    • 2.1、数据集说明
    • 2.2、数据预处理
    • 2.3、每日各行为用户
    • 2.4、环节、整体转化率,解析原因建议

1、理论

1.1、 定义

  • 漏斗模型是一套流程式数据分析,它能够反映用户行为从起点到终点各阶段用户转化率情况,是一种重要的分析模型。

1.2、 使用场景

  • 网站和APP用户行为分析的流量监控、电商行业、零售的购买转化率、产品营销和销售等日常数据运营与数据分析。

1.3、例子

  • 在购物app中,用户从首页进入产品页面到最终完成支付的行为,需要的环节包含:点击——收藏——加入购物车——支付。这其中的每个环节都有一定的转化率,我们需要做的是监控用户在各环节的行为情况,寻找每个转化环节的优化点,提高用户在环节之间的转化率,最终来提高GMV(商品交易总额)。

1.4、作用

  • 1、监控用户在各个环节间的转化情况。降低流失是运营人群的重要目标,通过转化率可以迅速定位用户流失环节,针对改环节找到优化点,以此提升用户留存率。
  • 2、多维度切分与呈现用户转化情况科学的漏斗分析能够展现转化率趋势的曲线,能帮助企业精细地捕捉用户行为变化,提升了转化分析的精度和效率,对选购流程的异常定位和策略调整效果验证很有意义。
  • 3、不同属性的用户群体漏斗比较。运营或数据分析人员可通过不同属性的用户群体(如新注册用户与老客户)各环节转化率的差异对比,了解转化率最高的用户群体,给予福利等,并针对转化率异常环节进行调整。

2、实战

2.1、数据集说明

数据来自天池- 本数据集共有大约1200万条数据,数据为淘宝APP2014年1118日至20141218日的用户行为数据,共6列字段,列字段分别是:    - user_id:用户身份,脱敏    - item_id:商品ID,脱敏    - behavior_type:用户行为类型(包含点击、收藏、加购物车、支付四种行为,分别用数字1234表示)    - user_geohash:地理位置    - item_category:品类ID(商品所属的品类)    - time:用户行为发生的时间

2.2、数据预处理

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport warningsplt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号warnings.filterwarnings('ignore')  # 忽略警告data = pd.read_csv('E:/a学习材料/excel +sql++/双十二/tianchi_mobile_recommend_train_user.csv')# 查看重复值数量data.duplicated().sum()# 删除重复值并替换原数据data.drop_duplicates(inplace=True)#查看缺失值data.isnull().sum()# 缺失值均为地理信位置,对用户行为分析无影响,直接删除该列data.drop('user_geohash',axis=1,inplace=True)# 重置索引data = data.reset_index(drop=True)

2.3、每日各行为用户数

# 提取日期 data['time'] = pd.to_datetime(data['time'])data['date'] = data['time'].dt.date# 提取每天的用户各行为的人数,为后面漏斗分析做准备df = data.pivot_table(index='date', columns='behavior_type', values='user_id', aggfunc='count',fill_value=0)fig = plt.figure(figsize=[12,5])plt.xlabel('日期')label=['点击','收藏','加购','支付']for i,j in enumerate(df.columns):    plt.plot(df.index, df[j])plt.xticks(rotation=30)    plt.legend(label)    plt.show() 

数据分析方法(1)之漏斗分析

  • 结论:
    • 点击、收藏、加购物车、支付这四种行为均在双十二当天达到顶峰。
    • 只观察支付和收藏,发现双十二当天支付量大于收藏量。
      • 支付量大于收藏量说明很多用户购买了目标之外的商品,可能是受到促销的影响冲动消费,又或者是为了凑单等。

2.4、环节、整体转化率,解析原因建议

#查看不同行为的访问量,封装到df2中a = data['behavior_type'].value_counts()a.index = ['点击','收藏','加购物车','支付']df2 = pd.DataFrame([a.index, a]).Tdf2.columns = ['用户行为', '访问量']df2['环节转化率(%)'] = np.round((df2['访问量'] / df2['访问量'].shift()*100).fillna(100),2)df2['整体转化率(%)'] = df2['访问量'] / df2['访问量'][0] *100#计算每一环节流失率(%)df2['流失率(%)'] = 100 - df2['环节转化率(%)']df2用户行为访问量环节转化率(%)整体转化率(%)流失率(%)0点击7479078100.001000.001收藏3333714.464.4573895.542加购物车24091972.273.2212427.733支付11067245.941.4797554.06
#整体转化率的漏斗转化图from pyecharts.charts import Funnelfrom pyecharts import options as optsfunnel = Funnel().add(  series_name = '整体转化率(%)',  data_pair = [ list(z) for z in zip(df2['用户行为'],df2['整体转化率(%)']) ],  is_selected = True,  label_opts = opts.LabelOpts(position = 'inside')  )funnel.set_series_opts(tooltip_opts = opts.TooltipOpts(formatter = '{a}
{b}:{c}%'
))funnel.set_global_opts(title_opts = opts.TitleOpts(title = '整体转化率(%)'))funnel.render_notebook()

数据分析方法(1)之漏斗分析

#环节转化率的漏斗转化图funnel = Funnel().add(  series_name = '环节转化率(%)',  data_pair = [ list(z) for z in zip(df2['用户行为'],df2['环节转化率(%)']) ],  is_selected = True,  label_opts = opts.LabelOpts(position = 'inside')  )funnel.set_series_opts(tooltip_opts = opts.TooltipOpts(formatter = '{a}
{b}:{c}%'
))funnel.set_global_opts(title_opts = opts.TitleOpts(title = '环节转化率(%)'))funnel.render_notebook()# 这里收藏到了最好一位,因为是漏斗模型,因此Funnel()按照面积大小的顺序往下画图的。目前我还不知道怎么将小面积的环节插入到中间的。如果您知道,可以告诉我。

数据分析方法(1)之漏斗分析

  • 结论:用户流失主要存在于点击—收藏环节。
    • 可能原因及建议(基于自身)
      • 1、点击-收藏环节流失了95.54%的用户 。 流失太严重了。
        • 原因:实物与广告页面不符,令用户失望了;可能搜索到该商品,但点进去发现和自己想的不一样;可能用户看到商品的评价过低,造成流失。
        • 建议:优化广告,改进广告推荐算法,精确的推荐给用户,提高用户的满意度。
      • 2、收藏-加购物车环节流失27.73%的用户。
        • 原因:此类用户有购买需求但可能因为价钱贵或者存在评价差的顾虑。
        • 建议:商家可以对该类用户进行优惠促销,刺激用户购买。
      • 3、加购物车-支付环节流失54.06%的用户。
        • 原因:我觉得可能还是因为价钱贵吧。目前我也知道是什么原因了。
        • 建议:更多的原因还得是商家进一步调查,了解用户放弃支付的原因,方便做出调整。

闲鱼礼物网