用户行为路径分析

一、 用户行为路径分析背景知识

用户行为路径分析是一种监测用户流向,从而统计产品使用深度的分析方法。它主要根据每位用户在App或者网站中的点击行为日志,分析用户在App活网站中各个模块的流转规律,挖掘用户的访问或点击模式,进儿实现一些特定的业务用途。
用户路径的分析转化结果通常以桑基图形式展现,以目标事件为起点/终点,详细查看后续/前置路径的流向,可以详细查看某个节点事件的转化情况。总的来说,行为路径分析有如下作用:
1.可视化用户流向,对海量用户的行为习惯形成宏观了解。
2.定位影响转化的主次因素,使产品的优化与改进有的放矢。

二、金融行业用户行为路径漏斗转化分析案例

1.案例背景

消费金融也就是大家所理解的互联网金融或者网络贷款,主要就是为个人提供以消费为目的的消费贷款,一般来说贷款额度都不高。我们大家都会用支付宝,里面的借呗和花呗就是消费贷款的两种形式,花呗是有消费场景的消费贷,你必须在购买商品或者吃饭结账向商家付款时才能使用;而借呗则是现金贷,直接将现金转入你的银行卡里。
本案例中的数据为某贷款平台的流量表与贷款审核表,通过jupyter notebook,使用python的pandas和numpy包完成分析,观察用户行为路径漏斗转化情况。

2.数据结构

表名 字段 注释
plat_flow date 日期
plat_flow PV 页面浏览量
plat_flow UV 独立访客量
plat_flow regist_cnt 注册数
plat_flow regist_rate 访客注册率
plat_flow active_cnt 激活数
plat_flow active_rate 激活访问率
loans_check ID 用户ID
loans_check date 申请日期
loans_check new_cus 是否新用户
loans_check lending 是否放贷

3.数据处理

  • 1.导包、导入数据
#导包
import pandas as pd
import numpy as np
import pymysql
import sqlalchemy

# 读取数据 plat_flow:平台流量表 ;loans_check:贷款审核表
# 连接数据库 ,使用sql读取数据
# 连接数据库('mysql+pymysql://用户名:密码@ip:端口号/库名')
engine = sqlalchemy.create_engine('mysql+pymysql://****:****@localhost:3306/fhd')
sql_flow='select * from plat_flow'
sql_check='select * from loans_check'
dt_flow=pd.read_sql(sql=sql_flow,con=engine)
dt_check=pd.read_sql(sql=sql_check,con=engine)

#查看平台流量表情况
dt_flow.head()

输出:
平台流量表.png
#查看贷款审核表情况
dt_check.head()

输出:


贷款审核表.png
  • 2.计算每日申请贷款人数、审批贷款人数、放贷率
#先将表分成新用户表和老用户表。分别计算每日贷款人数和放贷率
#dt_check_1 新用户贷款审核表
dt_check_1 = dt_check[dt_check['new_cus']==1]
#dt_check_2 老用户贷款审核表
dt_check_0 = dt_check[dt_check['new_cus']==0]
#对新用户贷款审核表进行数据透视生成表pt_1
pt_1=pd.pivot_table(data=dt_check_1,index=['date'],values=['lending'],aggfunc=[np.sum,'count'])
#重命名
pt_1.columns=['new_loans_num','new_apply_num']
#重置索引
pt_1=pt_1.reset_index()
#计算新用户放贷率
pt_1['new_loans_rate']=pt_1['new_loans_num']/pt_1['new_apply_num']
#查看新用户贷款情况表,新用户放贷数、新用户申请数、新用户放贷率
pt_1.head()

输出:
新用户贷款情况表.png
#对老用户贷款审核表进行数据透视生成表pt_0
pt_0=pd.pivot_table(data=dt_check_0,index=['date'],values=['lending'],aggfunc=[np.sum,'count'])
#重命名
pt_0.columns=['old_loans_num','old_apply_num']
#重置索引
pt_0=pt_0.reset_index()
#计算老用户放贷率
pt_0['old_loans_rate']=pt_0['old_loans_num']/pt_0['old_apply_num']
#查看老用户贷款情况表,老用户放贷数、老用户申请数、老用户放贷率
pt_0.head()

输出:
老用户贷款情况表.png
#计算老用户的复借率。
#本案例中老用户的定义:前一天放款的新用户,第二天继续借款就是老用户。(暂不考虑存量老用户)
#每天的老客户数量为新用户前一天的放贷数量,因此需要取4月30日到5月29日的新用户放贷数,来构成5月1日到5月30日的老用户数。
#从新用户贷款情况表取出前29天放贷数据,作为5月2日到5月30日的老用户数
old=list(pt_1['new_loans_num'])[0:29]
#经查询4月30日的新用户放贷数为24,插入数据。
old.insert(0,24)
#生成老用户复借情况表pt_0_m
data={'date':list(pt_1['date']),'old_num':old}
dt_old=pd.DataFrame(data)
pt_0_m=pd.merge(pt_0,dt_old,how='left',on=['date'])
pt_0_m['repeat_rate']=pt_0_m['old_apply_num']/pt_0_m['old_num']
pt_0_m.head()

输出:


老用户复借情况表.png
  • 3计算各节点路径转化率并绘图
#连接平台流量表,新老用户贷款情况表,组成一张用户路径总表dt_1,计算各节点转化率
dt=pd.merge(dt_flow,pt_1,how='left',on='date')
dt_1=pd.merge(dt,pt_0_m,how='left',on='date')
dt_1.head()

输出:
用户路径总表.png
#汇总求和数据
dt_2=dt_1.drop(['date'],axis=1)
dt_2.loc['Row_sum']=dt_2.apply(lambda x:x.sum())
dt_3=dt_2[dt_2.index=='Row_sum'][['PV','UV','regist_cnt','active_cnt','new_apply_num','new_loans_num']]
#将数据行列转化,便于漏斗图的绘制
dt_3_s=pd.DataFrame(dt_3.stack()).reset_index().iloc[:,1:3]
dt_3_s.columns=['指标','汇总']
dt_3_s

输出:
汇总求和数据表.png
#进行漏斗图的绘制
from plotly import graph_objects as go
trace = go.Funnel(
        y=dt_3_s['指标'],
        x=dt_3_s['汇总'],
        textinfo='value+percent initial',
        marker=dict(color=['deepskyblue','lightsalmon','tan','teal','silver','yellow']),
        connector={'line':{'color':'royalblue','dash':'solid','width':1}}
)
data=[trace]
fig=go.Figure(data)
fig.show()

输出:
漏斗图.png

三、知识补充

1.指标释义
  • PV(page view)/UV(unique visitor):分别指页面浏览量和独立访客量,每次用户对页面或标签的点击都会记一次PV。
  • 注册用户数:只有注册过的用户才有可能进一步发生转化行为,一个平台的注册用户数衡量了该平台当前已经积累的有效用户的数量。
  • 激活/活跃用户数:激活用户代表一个用户在注册完成后成功登录一次。而活跃用户代表一个用户在登录后完成了访问。
  • 申请/放款用户数活跃用户中的一部分会完成贷款的申请行为,这部分用户被记为申请用户。申请用户会被审核,通过审核并成功放款的用户会记为放款用户。
  • 复借用户数:指借款次数超过一次的用户数,复借行为往往也需要结合时间维度进行考量,因为用户复借行为出现的时间并不固定。
2.用户行为路径分析方法
转化漏斗

转化漏斗是针对特定模块与事件节点的路径分析。无论是新用户的引导、某个业务流程还是某一次运营活动,涉及到有流程转化的都可以建立漏斗来分析。在分析过程中,可以观察整体的转化率是否符合行业水准,哪些步骤转化率还有优化空间?可以通过细分维度发现导致转化率低的因素有哪些,也可以通过查看流失环节的其他使用路金,做出正对性的引导。


image.png

它适用于对产品运营中的关键环节进行分析、监控,找到其中薄弱的环节,通过用户引导或者产品迭代来优化,提升转化效果。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容