热门标签 | 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个环节:用户获取、用户激活、用户留存、用户变现、推荐传播。

结语:

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

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


推荐阅读
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
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社区 版权所有