新闻中心
数据分析方法(简述数据分析的五大思维)
目录
一、群组分析方法
二、RFM分析方法
三、漏斗分析方法
四、杜邦分析方法
五、项目案例
一、群组分析方法--分析用户留存/流失
1.1、什么是群组分析方法
按某个特征,将数据分为不同的组进行分析
1.2、群组分析方法有什么用
可以知道哪个指标随着时间发生了什么变化,常用来分析用户留存/流失率随时间发生变化的问题,
1.3、群组分析方法如何用
案例1:某视频平台用户流失分析
视频网站按月付费,在任意月可以取消订购,取消订购的用户则为流失用户

此表按新用户增加数来分组,第一行表示第一个月新增用户数为150,1个月后有140个用户留下来了,2个月后有130个用户留下来……以此类推
1个月后的留存率 = 留下的人数(140)/ 1月份群总人数(150)* 100% = 93.33%
2个月后的留存率 = 留下的人数(130)/ 1月份群总人数(150)* 100% = 86.67%
按照这个方法,可以将表格中的每个位置的留存率计算出来,如下图:

可将上表绘制成折线图,通过数据对比,找到留存率下降的原因,比如产品上了新功能,或是公司推广了新活动等。
总结:群组分析解决问题的模式:
群组分析--找到留存率低的组
假设检验,相关分析等--找到留存率低/高的原因
1.4、练习及注意事项
牛客sql70题:login表中查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序

按日期计算次日留存,结果:

注意点:如何分组,考虑按照时间分析,按照业务场景确认分组规则
1.5、案例
美国著名商账风险管理公司邓白氏公司曾经做过一个调查,他们发现逾期时间与平均收账成功率成反比,也就是说逾期时间越长,收回的成功率就越低。
如果发生逾期后立即催账,收回的成功率是98.2%;逾期超过3个月,收回的成功率是73.6%;如果超过6个月,收回的成功率是57.8%;逾期超过2年,收回到成功率是13.5%。
明确问题
某产品提供的是贷款款期限为7天的短期小贷服务。
在产品发放过程中,风控部门调整了风控策略。为了检验风控策略是否有效,需要分析风控策略变化前后用户逾期率的变化。为此使用“群组分析方法”。
下图是这款产品的“群组分析表”,也叫做账龄分析表。其中,账龄是指该放款记录在公司账面上的年龄(时间)。

表中第一列是按每周(7天贷款期限)的还款日期分组,‘W1’是第一周的贷款,‘W2’是第二周的贷款……以此类推
表中单元格里的数据是逾期率,当前天数未还款的用户的占比。例如W1(第1周的用户)贷款到期后的第1天对应的数据是31%,表示逾期率是31%,也就是第1周放款的用户当中,在逾期1天时仍未归还的用户占比是31%。
这张表的制作时间是第8周贷款到期后的第2天,而此时我们还无法获取第2天及后续的数据,因此W8这一行只有一个数据。同理,此时第7周也只有8天的数据,剩余数据我们暂时还无法获取。风控策略的调整是在第3周结束后。
分析问题
从这个表中可以分析出什么呢?

首先,方框中的W2和W3对应的逾期率分别是36.3%和39.5%,而其余这一列中的逾期率几乎都是31%左右。
通过比较不同组的数据,我们发现相对于W1而言,W2和W3的第1天逾期率明显地升高了。随后产品调整了风控策略,W4的首逾率下降为31.2%,恢复到了正常水平。

其次观察表的右半部分,方框中的数据是从W2到W7的第8天逾期率。从W2到W7,它是逐步下降的,从22.3%下降到了16.4%。这表示从第4周开始,用户逾期8天的占比有明显的下降。
不仅仅是第8天,我们对第8天以后每周的逾期率进行分析,也可以得出这一结论。这说明在调整了风控策略以后,不仅到期后第1天逾期率上的有所下降,后续天数的逾期同样也有所下降。
提出建议
通过上述分析,可以得出结论:在调整风控策略后用户逾期有了显著的下降,这证明了风控策略的调整是有效的。
二、RFM分析方法--用户价值分类
2.1、什么是RFM分析方法
RFM分析方法:R:Recency最近一次消费时间间隔,
F:Frequency消费频率
M:Monetary消费金额
比如 今天是这个月的30号,
1)最近一次消费时间间隔(R)指用户最近一次消费距离现在多长时间,如果小明25号在店铺买过东西,距离现在5天,则最近一次消费时间间隔是5天
2)消费频率(F)指用户在一段时间内消费了多少次,一段时间定义为30天,小明在一个月内消费了3次,则消费频率为3次
3)消费金额(M)指用户在一段时间内的消费金额,一段时间定义为30天,小明在这30天中共消费1000元
此三个指标要根据不同的业务来进行分析
将三个指标按价值从低到高排序,并把这三个指标作为XYZ坐标轴,可以将空间分为8个部分,就可以将用户分为以下8类:

按RFM对应的价值高低,可以得到下表用户分类的规则

2.2、RFM有什么用
小明的店铺某个月收入大幅下跌。他赶快分析数据,发行原来几个重要的用户被竞争对手挖走了,而这几个用户贡献了店铺80%的收入。出现这个问题,是因为小明没有对用户分类,对全部用户采取的都是一样的运营决策。
怎么对用户分类,识别出有价值的用户呢?
这时候就可以用RFM分析方法把用户分为8类,这样就可以对不同价值用户使用不同的营销决策,把公司有限的资源发挥最大的效果,这就是我们常常听到的精细化运营。比如第1类是重要价值用户,这类用户最近一次消费较近,消费频率也搞,消费金额也搞,要提供vip服务。
2.3、RFM如何用
1)第一步,计算R、F、M的值
要得到这三个指标值,我们一般需要数据的3个字段:用户ID或用户名称,消费时间,消费金额。

比如现在是2020-1-30,分析最近30天的用户,小明最近一次消费的间隔时间(F)是4天,消费频率(R)是2次,消费金额(M)是5000元,在表格中增加3列用于计算R/F/M三个值打分:

2)给R、F、M按价值打分
注意:按指标的价值打分,不是按指标的数值大小打分。
将R、F、M3个指标分别按价值从小到大分为1-5分,在此例中,

具体实际业务中,如何定义打分的范围,要根据具体的业务来灵活定,没有统一的标准。
根据以上标准,我们将RFM值打分表填上对应的值

3)第三步,计算价值平均值
分别计算R值打分,F值打分,M值打分这3列的平均值

4)用户分类
在上表中增加3列,分别用于记录RFM3个值是高于平均值,还是低于平均值
如果一行里R值打分大于平均值,则在R值高低列里记录为’高‘,否则为’低‘,F/M值也同样比较,如下图

然后和用户分类规则表进行对比,就可以得出用户是属于哪种类别。

5)用户分类后,如何精细化运营?
用户分类后,则要根据公司的不同业务制定不同的运营策略。

2.4、使用注意事项
1)RFM指标定义,不同业务定义不同,要根据业务灵活应用
2)R、F、M如何确定打分的规则?一般分为1-5分,也可以根据具体业务灵活来调整。FRM打分的规则可以与业务部门沟通,进行头脑风暴。或者使用聚类的方法对R、F、M的值进行分类,然后给每个类别打分。
2.5、面试题
你现在是滴滴打车的一名分析师,如果用RFM分析方法对滴滴的用户分类, 如何定义RFM这3个指标?
用户分类的应用案例:会员经济
参考:
三、漏斗分析法
3.1、什么是漏斗分析方法?
从业务流程起点开始到最后目标完成的每个环节都会有用户流失,因此需要一种分析方法来衡量业务流程每一步的转化效率,漏斗分析方法就是这样的分析方法。例如,在淘宝上用户从商品浏览到最后下单购买会经过的业务流程是:
一款商品浏览量是300、点击量是100、订单量是20、支付量是10。在业务流程的每一步都有用户流失,如下表所示。
转化率某业务环节转化率 = 本业务环节用户数 / 上一业务环节用户数;用以衡量相邻业务环节的转化情况。
某业务环节整体转化率 = 本业务环节用户数 / 第一业务环节用户数,用以衡量从第一步到这一环节为止,总体的转化情况
在本例中,点击量环节的转化率 = 点击用户数(100)/ 浏览用户数(300) =33.3%
支付环节的整体转化率 = 支付用户数(10)/ 浏览用户数(300) =3%
将上表制成漏斗分析图,如下:
漏斗分析图3.2、漏斗分析的作用
漏斗分析的作用就是‘定位问题节点’,即找到问题的业务环节在哪,常用于用户转化分析或者用户流失分析,所以漏斗分析要关注两个指标:用户转化和用户流失。
用户转化:经过各个业务环节转化下来的用户,会产生更大的价值。
用户流失:流失的用户数量在每个业务环节都不同,可以分析用户流失主要在哪个业务环节,以及为什么流失的原因,最终目的都是不断减少用户流失率,提高留存率。
3.3、漏斗分析怎么用
以汽车行业为例,可以将业务流程分为3部分:售前、售中、售后。
业务流程将汽车行业业务流程中的指标与漏斗分析结合, 可以得到环节转化率和转整体转化率,如下图所示。
转化率-漏斗分析图如图中所示,线索-签约的整体转化率=签约数(260)/ 线索(2000)=13%,也就是每进件100单,会有约13单签约。
漏斗分析的整体转化率,从整体上评估各环节对初始环节的占比,这样就可以根据一定的比例,去预测或估算未来某批线索的大致转化或者流失情况。
例如:未来一个月进件达到4000,那么根据目前这个数值(线索-签约转化率为13%),可以大致估算出,最后的签约量应该在4000*13%=520单左右。
漏斗分析的环节转化率可以评估各业务环节之间的转化情况,通过比较各环节转化率,从而寻找业务瓶颈点,也就是找到最低环节转化率对应的业务环节是哪个。
例如:环节转化率最低的业务环节为“线索-进件”(转化率为25%)。
为什么 “线索-进件” 业务环节的环节转化率最低呢?
毕竟将单纯的用户(线索)发展到愿意进行信审评估(进件),是件并不容易的事,但是这个点是否就是急需解决和优化的流程呢?这就需要使用对比分析方法和行业平均值来比较。如果行业平均值为19%,那么这里的25%已经超出行业均值6个百分点了(25%-19%=6%),不应作为最急需解决的点,应着眼后续流程,即寻找后面的转化薄弱点。如果无法得知行业内平均值,可以与本公司历史转化率进行比较,找出表现最差的业务环节,对症下药,持续优化。对于不同的场景,可以灵活运用漏斗分析。
3.4、注意事项
漏斗分析可用来分析用户转化问题,因各业务需求不一样,漏斗分析的节点也不一样。需要结合业务特点进行分析。
例如,传统的漏斗图是以AARRR模型为基础,即:获客-留存-活跃-变现-推荐,这是以用户增长为核心的漏斗图。
但是对于非社区类产品,比如低频且成交周期长的购车场景而言,传统的AARRR模型无法真正表达出汽车行业的业务需求。将漏斗分析方法和购车的业务流程结合起来,就形成了:线索-进件-过审-签约-交车的漏斗图。所以,行业发生变化的过程中,漏斗分析方法需要从用户增长转移到汽车行业,这样的漏斗分析方法才可以产生指导作用。
四、杜邦分析方法
杜邦分析方法是将各种财务指标综合在一起来评价公司财务管理效果。通常用于公司财务方面的分析。
4.1、杜邦分析法的历史背景
1912年,杜邦公司的销售人员 法兰克·唐纳德森·布朗(Frank Donaldson Brown)为了向公司管理层阐述公司运营效率的问题,写了一份报告。
他在报告中提出要分析“用公司自己的钱赚取的利润率”的比率。他将这个比率进行拆解,认为拆解后这个比率可以解释三个问题:
1)公司业务是否赚钱?
2)公司资产运营效率如何?
3)公司债务负担有没有风险?
“用公司自己的钱赚取的利润率”换成现代术语就是净资产收益率,它的计算公式就是上面拆解成三个指标相乘:
1)公司业务是否赚钱?(销售净利率)
2)公司资产运营效率如何?(总资产周转率)
3)公司债务负担有没有风险?(权益乘数)
净资产收益率=销售净利率 X 总资产周转率 X 权益乘数
4.2、案例应用
我们通过一个案例,来看下净资产收益率公式中的三个指标。
假如你想开一个包子铺,自己出资100万,发现资金不够。又找隔壁老王借了100万。那么,这家包子铺的总资产是200万,其中投入100万(自己的钱),公司负债100万(找老王借的钱)。
1)销售净利率:公司业务是否赚钱?
销售净利润 = 净利润 / 销售额,衡量公司业务是否赚钱。
你的包子铺第一个月销售额是20万,刨除各种房租、人工等成本后净利润是2万,那么销售净利润=2/20=10%。也就是每卖出100块钱的包子,你能赚10块钱。
2)总资产周转率:公司资产运营效率如何?
资产周转率 = 销售额 / 总资产,衡量公司资产运营效率如何。
你的包子铺总资产是200万,第一个月的销售额是20万,那么资产周转率= 20/200 =10%。
3)权益乘数:公司债务负担有没有风险?
权益乘数 = 总资产 / 净资产,也叫做杠杆率,衡量公司负债经营的情况。
你的包子铺总资产是200万,自己出资100万(净资产),那么你的包子铺的权益乘数=200/100=2。
现在所有的数据都收集到了,我们来看看杜邦分析公式:
净资产收益率 = 销售净利率 * 资产周转率 * 权益乘数
所以,你的净资产收益率= 10% * 10% * 2= 2 %
这就是杜邦分析方法的威力,从下面三个不同的角度来审视企业的财务状况:
1)销售净利率:公司业务有没有盈利?
2)总资产周转率:公司资产使用效率如何?
3)权益乘数:公司债务负担有没有风险?
4.3、如何使用
在实际分析中,杜邦分析方法采用金字塔形结构,把各个指标一层层分解。例如下图是万科2018年9月份的杜邦分析。
当要分析企业为什么利润下降了类似的财务问题,就可以这样这样的杜邦分析图逐个分解指标来分析。
五、项目实战
5.1、数据清洗
数据清洗是指找出数据中的【异常值】并【处理】它们,使数据应用层面的结论更贴近真实业务。
1)什么是异常值?
不规范的数据,如空值、过大过小值等。
异常值产生的原因:数据输入误差,测量误差,实验误差,有意造成异常值,数据处理误差,采样误差等
异常值的影响:增加错误方差,降低模型的拟合能力;异常值的非随机分布会降低正态性;与真实值可能存在偏差;影响回归、方差分析等统计模型的基本假设
异常值的检测方法:一般采用可视化方法来进行检测,工具包括箱线图,直方图,散点图等
2)如何处理异常值?
异常值处理方法:
删除:若是由于输入误差,数据处理误差引起的异常值,或异常值很小,可直接删除转换:数据转换可消除异常值,如取对数填充:用均值, 中值填充,在填充之前需要分析异常值自然形成的,还是人为造成的,人为的则可以填充区别对待:若存在大量异常值,则要区别对待,将数据分为有异常和无异常组,各个进行预测,然后再进行合并2.如何用SQL查找异常值?
数据来源:链接:https://pan.baidu.com/s/16TSfL6M2RBbwoO5lqngwxQ
提取码:qlei 复制这段内容后打开百度网盘手机App,操作更方便哦
1)查找是否有重复数据
select * from userbehavior group by user_id , item_id, `timestamp` having conut(*) › 1;因为timestamp是sql的关键字,为了避免列名称和sql关键字冲突,所以,这里给列名称加了单引号。
查询结果显示数据集并无重复数据。查找是否存在空值。
2)查找是否空值
select * from userbehavior where user_id is null or category_id is null or item_id is null or behavior_type is null or `timestamp` is null;查询结果显示数据集并无空值。
3)查找是否有超出分析时间的数据
因为给定的数据中,时间相关的字段是时间戳类型,而时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,无法直接与日期进行比较,因此,需要对其进行格式化转换,才能继续分析。
如何处理时间戳?
同时为了方便后面更方便的分析日期,这里用函数 FROM_UNIXTIME(时间戳,时间格式) 将时间戳这一列(timestamp)转为不同格式的时间并存放到不同到新列中。也就是达到下面的效果:
给表添加一列到语法如下:
alter table 表名 add 新列名称 该列到数据类型;修改表中列到值语法如下:
update 表名 set 列名 = 列中的值;使用上面的语法将时间戳这一列(timestamp)转为不同格式的时间并存放到不同到新列中,语法如下。
-- 给表添加一列叫dates,用于记录行为发生的日期,如2017-11-25 为2017年11月25日 alter table userbehavior add dates varchar(255); -- 给新列dates赋值 update userbehavior set dates = FROM_UNIXTIME(timestamp,%Y-%m-%d); -- 给表添加一列叫hours 字段,用于记录行为发生的小时时间,如21为晚上9点 alter table userbehavior add hours varchar(255); -- 给新列hours赋值 -- 特别注意,此处的时间格式中“小时”部分的字符需要用大写的H,才能转为24小时制 update userbehavior set hours = hour(FROM_UNIXTIME(timestamp,%H:%i:%s)); -- 给表添加一列叫datetime,用于记录行为发生的日期时间,如2017-11-25 21:30:00 为2017年11月25日晚上9点30分 alter table userbehavior add datetime varchar(255); -- 给新列datetime赋值 update userbehavior set datetime = FROM_UNIXTIME(timestamp,%Y-%m-%d %H:%i:%s); -- 给表添加一列叫weekday,用于记录行为发生在星期几,如1 为星期一 alter table userbehavior add weekday varchar(255);- mysql中,可以通过函数 WEEKDAY() 将日期转为“星期几”,但是索引是从0开始,
即0表示星期一、1表示星期二...
- 为了使该字段更符合阅读习惯,可以将其进行加1操作,结果即为1对应星期一,2对应星期二...
update userbehavior set weekday = WEEKDAY(datetime)+1;日期转换结果如图所示:
日期转换结果4)删除超出时间范围的数据
删除数据语法:
delete from 表名 where 删除数据的条件;有了上面这些日期列以后,就可以直接将超出指定时间范围的数据剔除掉。
delete from userbehavior where dates‹2017-11-25 or dates›2017-12-03;至此,已完成数据清洗工作,剩余的数据便是可以直接用来分析的“纯净”数据。