热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数据处理与分析|涵盖七大分析方法

作者:JanieLiu公众号《溜溜笔记说》本文针对性的讲讲数据分析整个流程最关键的阶段:数据处理与分析阶段。该阶段我分成了三块:数据采集、数据处理、数据

作者:JanieLiu

公众号《溜溜笔记说》


本文针对性的讲讲数据分析整个流程最关键的阶段: 数据处理与分析阶段。该阶段我分成了三块:数据采集、数据处理、数据分析,都围绕着“数据”进行,对海量或杂乱数据进行处理分析,从中找出痛点,洞察问题。


一、数据采集

该处的数据采集指的是获取分析所需要的数据,一般可以从内部数据、外部数据两个方向获取。


1. 内部数据


  • 直接获取

直接获取的前提是,公司进行了数据仓库的建设,已为决策分析提供了所有类型数据支持。该部分内容在之前的文章中也提到过,但是在这里更加细化的做了点补充。

直接获取就是指数据库中有现成的表可以直接获取到所需的数据,不需要分析师再在sql上做复杂的处理。

公司一般会将数据分为ods、dwd、dwb/dws层数据。

① ods层:明细数据。数仓不做任何数据处理,直接原封不动的将数据同步到该库上。为dw层的数据加工作准备。

②dwd层:明细数据。该层数据已在ods层上对数据做了清洗操作,比如去除空值、脏数据等。

③dwb/dws层:聚合数据。主要对ods/dwd层的数据做些轻度汇总,会涉及较多业务指标数据。如根据ods/dwd层的明细数据计算出七日复购率、周同期对比数据、毛利率等指标供分析师直接查询使用。

一般情况下,分析可以直接从dwb/dws层调取现成的指标数据进行分析,特殊情况下也可以从dwd层写复杂sql的方式计算成所需的数据。


  • 重新落表获取

前提是dwb/dws层没有现成的数据可以直接获取,哪怕自己写代码可以从dwd层获取,也需要写很复杂的代码。此时,请数仓协助落成聚合表再去调取数据。

重新落表一般会涉及人力资源的协调,需求的沟通。分析师担当业务方和数仓之间的桥梁,将业务方的需求理清楚之后,自身又作为数仓的需求方对数仓提需求。


2. 外部数据

当分析的内容内部数据无法满足时,或者不够全面时,此时需要借助于外部数据来辅助分析。


  • 行业报告数据

比如艾瑞网、极光大数据、阿里研究所、199IT互联网数据中心等都会时不时的发一些行业分析报告。整个行业的数据公司内部是无法获取的,所以可以从一些行业分析报告入手。


  • 问卷采集

比如我们需要获取用户的一些①主观想法:喜欢我们产品的原因是?我们产品最吸引您的点是?您觉得我们产品最应该改进的点是?②对竞品的行为:您在xx场景下更愿意使用A产品、B产品还是C产品③用户习惯的场景:您在什么场景下更愿意使用xx产品?等

通过问卷数据获取一些产品中无法获得的数据,辅助分析。


  • 宏观数据

有时候我们分析的某个指标有时候也会受到宏观政策的影响,比如宏观上某项指标上调了xx,对我们的业务会产生怎样的影响。


二、数据处理

对分析师而言,这步需要分析师将数据根据脑中的分析框架处理成所需要的数据。


1. 处理内容

会涉及数据异常值处理、缺失值处理、数据转换、数据聚合、数据分组归类以及数据准确性的校验,为下一步的数据分析奠定好基础。

井井有条的数据更有利于分析:


  • 剔除无效数据,比如异常值、缺失值、重复值等。
  • 考虑清楚数据聚合的维度,比如时间上、地域上、用户上、商品上等按照什么维度聚合。
  • 做好数据聚合的处理,比如需要借助开窗函数,是否需要去重计数,是否需要累积计数等;

2. 数据验证

数据采集到之后,还要做好数据验证,目的是确保数据准确性,切忌拿到数据立马动手分析。


  • 从验证人员来看

自身多方验证:初始先自身验证一番,与现有报表中已有数据进行对比,观察是否一致。

与需求方协同验证:数据调取之后先出一份数据表,提供给需求方共同验证。不过分析师接了需求,保证数据准确性是基本要素,一般情况下需求方并不会协同验证。前提是,无现有数据可供对比查验,可将数据先提供给需求方过一眼,确保数据准确无误。


  • 从验证方式来看

定性验证:通过经验或逻辑推理,主观判断该数据是否符合经验或正常逻辑,比如你取到的某个商品的gmv比整个品类的gmv还要大,就不符合正常逻辑,肯定有误。

定量验证:依据统计方式,计算出具体的指标,多方交叉验证。


三、数据分析-七大分析方法

数据分析方法很多,网上有很多资料,这里就讲一下其中比较常用的几种分析方法。


1.关联规则分析

关联规则分析其实就是购物篮分析,就是通过挖掘用户的消费行为数据,探索用户的消费习惯,从而合理搭配商品,提升收益。

举个简单的例子,近30天共产生了10笔订单(方便计算只虚构了10笔),1代表订单中包含该商品,0代表订单中未包含商品,比如111112订单,用户没有买苹果,但买了香蕉(是否买了其他商品不考虑)

其中购买了苹果的订单有6笔,购买了香蕉的有5笔,同时购买了苹果和香蕉的有3笔。

则:

①苹果和香蕉组合的支持度

=同时购买了苹果和香蕉的订单数/总订单数*100%

=3/10*100%

=30%

含义:同时购买苹果和香蕉的概率有多大

②苹果对香蕉的置信度

=同时购买了苹果和香蕉的订单数/购买了苹果的订单数*100%

=3/6*100%

=50%

含义:购买了苹果的用户有多大概率会再买香蕉

③苹果对香蕉的提升度

=苹果对香蕉的置信度/购买香蕉的概率

=50%/(5/10)

=1

含义:购买苹果对购买香蕉会产生正向影响还是负向影响还是无影响

此案例中计算的提升度是1,表示购买苹果并不会对购买香蕉产生任何影响。

详细解释下:

若提升度=1:表示购买苹果并不会对购买香蕉产生任何影响,因为在购买了苹果的条件下去买香蕉的概率和直接买香蕉的概率是一样的;

若提升度>1:表示购买苹果对购买香蕉产生了正向影响,即购买苹果很大可能也会买香蕉,因为在购买了苹果的条件下去买香蕉的概率大于直接买香蕉的概率;

若提升度<1:表示购买苹果对购买香蕉产生了负向影响,即购买苹果很大可能就不会买香蕉,因为在购买了苹果的条件下去买香蕉的概率小于直接买香蕉的概率;

这就是关联规则分析,一般用以研究探索商品捆绑销售,比如苹果是否需要和香蕉在一起捆绑销售,捆绑销售收益是否会更大。


2. RFM模型

RFM模型主要用来衡量用户价值,做用户分群,比如区分出低价值用户、高价值用户、忠诚用户等用户群体。

R:用户最近一次消费距今时间(Recency)

F:用户在最近时间段内的消费频次(Frequency)

M:用户在最近时间段内的消费金额(Monetary)

这里用一个比较简单的例子讲下:

先对R、F、M三个值进行分层并赋予权重(以下数据纯属虚构,分层时根据实际情况)。

比如用户最近一次消费距今时间7天以下的打为5分,8-14天的打为4分……以此类推。分数高的表示价值性比较高,分数低的表示价值性比较低。

然后调取出每个用户R、F、M值,填入“按照均值处理前”列中。

比如下图中,用户“111113”最近一次消费距今时间在7天以下,则R为5,在最近时间段内的消费频次在6-10之间,则F为2,在最近时间段内的消费金额在1001-2000之间,则M为2。

再将每个用户的R、F、M值与均值对比,大于均值填充1,小于均值填充0,填充于”按照均值处理后“列中。

最后将“按照均值处理后”的数据参照下图模型表(下图不是计算出来的,是比较常用的标准),匹配出用户类型。

给用户匹配之后的用户价值类型如下


3.帕累托分析

帕累托分析就是“二八法则”。

“二八法则”认为80%的财富掌握在20%的人手里,应用到业务中就是,80%的营收在20%的产品里,同理,我们应该花80%的时间内在这20%的产品上。也就是说,宝贵的时间与资源应该用在刀刃上。

如下图:展示了每个品类的销售额,通过销售额计算出销售额累积值,进而算出累积百分比。

再通过销售额和累积百分比画出帕累托图,如下。

共15种品类,其中7个品类贡献了80%的销售额,占比46.67%,也就是说46.67%的商品为公司带来了80%的销售额,并不符合二八定律,该公司并没有强势产品。


4. 用户生命周期价值分析

用户生命周期总价值,主要用于衡量用户对产品产生的价值。

以一个案例讲解如下(详见《如何做好用户生命周期价值分析(LTV)》):

下图是一张留存率图

以2021.12.01——2021.12.07之间的七天留存率来预估14日留存、30日留存等。

先将黄色部分的七天的留存率取均值,得到图上最下方的留存平均值。

然后按照留存率的均值做拟合,拟合后的结果如下图所示。

选择幂函数拟合,因为幂函数拟合的R方接近于1,拟合效果较好。

则LT14=100%+51%+53%+37%+32%+29%+29%+25%+23%+22%+20%+19%+18%+17%

=4.75天

LT已经算出来了,那么下一步就是计算ARPU了。ARPU值直接取日均值就可以了,假如ARPU日均值是¥60,则LTV=4.75*12=285

即用户14天的平均生命周期是4.75天,用户在该生命周期内能带来的总价值为¥285

延伸下,如果想知道花费在这批用户身上的成本需要多久才可以回本,怎么计算呢?这就涉及到了回本周期预估。

比如在前面已经预估了LTV14为¥285,假如已知该渠道的CAC是¥30,

则预估的回本周期是=285/30=9.5天

即投入在该群用户身上的成本需要9.5天方可回本。


5. 漏斗分析

漏斗分析是数据分析中比较常见的分析模型。采取漏斗的方式直观的表示业务从起点到终点的各个环节的转化情况,以便找出有问题的环节,针对性的优化。

如下图,展示了用户支付场景的转化率:用户从打开app到完成支付的过程。分为进入首页→进入商详页→加入购物车→提交订单→支付完成,直观分析每个重要环节的转化率。以最直观最简单的方式反映出每个关键环节的转化率,洞察主要问题所在。


6.波士顿矩阵

波士顿矩阵不少人在大学期间学过,工作中也是比较实用的。可通过波士顿矩阵分析公司的产品结构,发现痛点,为是否需要及时调整战略目标,以及判断产品的资源分配是否合理提供了数据支持。

波士顿矩阵有以下4种结构类型:

明星产品:成长期。该产品在市场上占有比较大的份额,且处于高速增长阶段。未来发展为金牛产品的可能性比较大。此时抓住机会扩大投资,提升竞争优势。如图中的蜜桔、香蕉、苹果。

金牛产品:成熟期。产品已较为成熟,增长前景有限。稳定发展,尽量维持好当前市场份额。如图中的西瓜、樱桃。

问题产品:导入期。高速增长却市场份额并不高。说明此产品虽然高速增长,但并未及时开拓市场,营销存在问题。如图中的猕猴桃、荔枝。

瘦狗产品:衰退期。既市场份额不高,又增速缓慢,基本可以淘汰,将此资源转而投资给其他更有利的产品。如图中的草莓、杨桃、哈密瓜。


7.AARRR模型

AARRR模型是探索用户增长的模型。分别对应用户生命周期的5个环节:用户获取、用户激活、用户留存、用户变现、推荐传播。

结语:

以上就是围绕着“数据”进行的采集、处理与分析的过程,这个过程起着承上(需求确认)启下(数据展现)的作用,重要性不言而喻。

数据分析的知识点很广阔,我写的这些也只是其中的非常小的一小部分。但经验与专业性就是从小起步的,一点点积累,一点点成长。


推荐阅读
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • databasesync适配openGauss使用指导书
    一、database-sync简介database-sync作为一种开源辅助工具,用于数据库之间的表同步,更确切的说法是复制,可以从一个数据库复制表到另一个数据库该工具支持的功能如 ... [详细]
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • 解决PHP与MySQL之间的编码不匹配问题
    探讨如何有效解决PHP与MySQL之间常见的编码问题,确保数据的正确传输与显示。 ... [详细]
  • 使用Docker部署Gitea自托管Git服务
    Gitea是由Gogs社区分叉而来的开源自托管Git服务,旨在提供一个更加灵活和易于维护的解决方案。本文将详细介绍如何利用Docker容器技术快速部署Gitea。 ... [详细]
  • 本文档整理了公司内部常用的网站链接和重要资源路径,包括部门周报、内控报销系统、邮件服务等,同时提供了相关数据库的登录信息。 ... [详细]
  • 深入理解Hibernate延迟加载机制
    本文探讨了Hibernate框架中的延迟加载(懒加载)特性,分析其对程序性能的影响及实现原理,同时提供了具体的代码示例来说明如何配置和使用延迟加载。 ... [详细]
  • 1、服务器配置信息① 主服务器IP:192.168.1.2② 从服务器IP:192.168.1.3③ 操作系统:主服务器:Win8,从服务器࿱ ... [详细]
  • 在使用 SQL 语句从数据库中提取数据并尝试将其转换为其他数据类型时,可能会遇到 'java.math.BigDecimal cannot be cast to java.lang.Integer' 错误。本文将详细解释这一错误的原因,并提供有效的解决方案。 ... [详细]
  • 本文探讨了如何利用脚本文件高效管理Oracle数据库,包括脚本文件的创建、编辑及运行方法,旨在为数据库管理人员提供实用指导。 ... [详细]
  • 本文档详细介绍了如何在MongoDB命令行中执行基本操作,包括数据库的选择与创建、文档的插入与查询、文档的更新与删除等。同时,还涵盖了条件查询、统计、模糊查询等高级功能。 ... [详细]
  • 本文探讨了SQL查询执行缓慢的多种可能因素,并提供了详细的解释和解决方案。 ... [详细]
  • 本文介绍如何配置SQL Server以实现数据库的远程备份,包括建立网络映射、执行备份操作以及自动化的备份任务设置。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有