新闻中心

数据分析全流程通用框架(数据分析全流程包括)

2023-10-21
浏览次数:
返回列表

数据分析的底层逻辑一定是清晰和简单的。脱离开工作的繁琐细节,站在全流程的角度去梳理问题,只有在凌绝顶才能一览众山小。

欲善其事,必先利其器。在大数据技术日益发展的今天,各个公司不断重视数据的作用。这篇文章旨在说明数据分析这项工作的整体流程以及在每一个流程中用到的工具,以期给出一个通用的,完整通用的数据分析框架。框架如果要尽可能通用和完整,就不可避免的会在特殊性上有所不足。各行各业难免在数据分析领域上有一些特殊的不同之处,不在本文讨论之列。但是万剑归宗,源头活水,只有掌握了底层方法,之后在才能立足整体有的放矢的对自己整个数据分析工作进行盘点和加强。哪里有有不足,该投入多少精力去提升,提升到什么程度,都是要立足整体框架清晰明确的前提下。

数据分析这项工作本来就是一种基于数据事实、以目标问题为导向的工作,从业者的必须要有足够的高度,才能从大局上把握整体流程,不至于陷入局部的细枝末节而忽略了整体上、方向上的战略性动作。

数据分析的工作流程

1. 问一个好的问题

一个好的问题要比一个好的答案重要十倍,一个好的答案又要比一个正确的答案重要十倍。

我个人曾先后给国外、国内的一些学术机构和商业机构做过很多数据分析,期间也看了很多其他大牛做的数据分析工作来学习。通常来说,做一项基于数据的分析工作,是一套完整的以问题为导向的解决框架。经典的步骤包括发现问题——提出问题——解决问题——作出决策——验证效果。

最开始的时候我们常常会被好的问题解决方案吸引住眼球。别人的逻辑是多么清洗,别人的图表是多么炫酷,这些往往是最令人着迷的。但是当一个个项目做下来之后,就会发现,有些人的分析总是那么令人耳目一新,倒不是他用了什么新鲜的框架,也不是他的技术领先别人多少,只是他一出手就赢了,赢在了第一步。他面对这个现实困境(要分析的对象)的时候,问出了一个问题,这个问题就比别人的角度要好,要高。站在一个更高的维度和更好的角度,基本上就觉得了整个工作的下限。

关于什么是好的问题,虽然上也有很多回答和标准。但是实话实说,从书本上科工作中的总结来看,提出好的问题无非需要三点:1. 天赋 2. 思考深度和经验 3. 逻辑思维

这三点对于一个好的问题的贡献程度依次降低,不幸的是,以上三点的获得难度也是依次降低。也就是说,天赋对于提问最重要,同时,天赋也基本很难后天获得。你得承认,有些人天生的洞察力就要比其他人强得多。

那么对于普通人来说,如何提高自己的提问能力?多留心别人的问题。在一个相对有限的领域,多对比不同的问题。多留心别人的提问,其实就是去尝试模仿。注意,这里是取其神而弃其形,要尽可能的多揣摩提问者背后的思考路径而不是他已经到达的结果。

比如,这个月销量下降了,大老板要你们部门去分析一下销量下降的原因,做一个相关的数据分析任务。很多人会直接把老板的问题视为数据分析的问题,这样就是一种偷懒,直接跨过的“提出问题”这一步。“销量为什么下滑?”以此为问题导向去进行数据分析,其过程一定是漫长而且难以聚焦。因为问题范围大,可能性多,所以一般来说,对于我们遇到的问题,不能简单加一个“为什么”之后就作为整个项目的问题。这是最低级的做法。那么遇到这样一个问题,如果让你提出一个数据分析的问题,你会怎么提出问题?

不同的行业有不同的特殊性,但总的来说,以下问题可能是一个较好的提问:

本月客群发生了什么变化?产品端我们有什么迭代?竞对有什么新的动作?产品的替代品、互补品是否有变化?我们的主要客群是否面对政策风险或正在被淘汰?我们是否在舆情上有负面影响?

这里我只是列举可能的好问题,我跑爱了行业谈问题,自然不容易列举的很精确。但是总的问题一定是角度明确,要求提问者对大问题下有一定的经验和行业敏感度,能够极大的缩小提问范围并且把分析的内容总体上限定在一个发生问题可能性最大的方向。这样下来一下子就将现实中面对的具体问题抽象出来,同时,分析的大方向一下子就明确了。当别人还在对着销售数据发生变化而进行分析的时候,我们已经通过行业敏感度确定了一个方向(比如客群发生的变化),那么我们就节省了大量的时间,同时也可以更加精确细致的去进行数据下探。

所以,遇到现实问题,永远不要直接把问题当做分析的对象。现实问题要抽象化,抽象化之后要具体化,只有既抽象又具体的问题才具有分析的价值。

2.把好的问题拆解开

这一步是第一步的延伸。在我们确定最终分析方向之后,我们不可能一步走道重点。我们需要从起点到重点设置多个里程碑。里程碑可以激励我们,在我们完成部分工作的时候给予正向反馈而不必等到完成全部工作,也可以让我们把握进度,时刻关注总体工作进度,不至于陷入无尽的细节修改中。

问题拆分不是一种天赋,是一种扎扎实实后天习得的能力。既然可以被习得,就以为有章可循、有法可依。问题的拆分有且一种标准:逻辑。

比如如果我们的产品是电动汽车,我们要分析我们的客群是否变化以及如何变化这一问题。那么我们要做的问题拆分大致如此:

现实问题抽象化,确定分析方向(第一部分):我们的客群发生了变化?

问题拆分:

我们之前的客群画像?我们现在的客群画像?两个画像有哪些异同?这种不同是否是显著的对我们销量产生影响?这种影响产生的逻辑链条是什么?我们如何能够在某个环节切断这个逻辑链条以扭转销量下降的事实?

3. 先有思路,再有数据

问题拆分之后,如果是一个团队的分析任务,我们通常会进行分工。比如张三负责前两个问题,李四负责第3-6个问题等等。无论负责哪个问题,对于没一个问题都要进行分析思路的构造。做数据分析,就是在写一篇作文考试。考场上从你下笔的那一刻其实这篇作文的分数已经定了。这篇文章的分数取决于下笔前的思考。数据分析也是一样,抽象问题、拆解问题、对每个问题设计分析思路,都是在分析问题之前的思考。这部分做的是否足够好,足够深入基本取决于整份工作的上限。之后的步骤对总体工作质量有影响,但已经不大了。

还是以上面的例子为例,假设我们分到了第一个子问题。我们会思考分析客群的思路。这里就可以参考市场上成熟的、通用的分析方法论。这在一定程度上可以帮助我们提高效率。但是同样,有共性是为了保证我们分析的充足性,有个性才是我们分析工作拿高分、有亮点的必要条件。所以,有共性、有个性是对一个分析思路设计的总体要求。

每个人的思考方式都不同,思考的习惯也不同,这里不强求。但是通常来说,我个人习惯这部分借用脑图等结构清楚且编排成本较低的软件,辅助设计框架。

假设我们分析客户画像。那么行业通常的做法是模块化(也就是进一步细化问题)。问题大致可以分为(这里要依据分析最终方向的诉求和行业特点以及手上所掌握的数据资源来进行):

用户身份画像:职业、年龄、居住地、工作地等用户财富画像:收入、负债等用户习惯画像:消费习惯、娱乐习惯、兴趣爱好等用户社交圈、朋友圈其他可能对是否购买、付费意愿等相关数据

在有了模块化思路之后,我们将每个用户分门别类的整理好相关数据。类似于一个n维的坐标系,就可以整理出客户在我们整体盘子上的坐标位置了。相同的客户具有相近的位置,我们的策略和手段,就可以复用;当问题出现时,我们也可以将问题拆分,看是否是系统性问题还是某一个客户群体出现了问题。

以上三步,通常来说被忽略。因为本质上他们最费脑子,但是也不见成效。在正文上一笔一划工整的写作文,自然是必要且重要的步骤,但是写作文之前在草稿纸上的涂涂画画才是决定作文质量高低的最关键因素。

思考,而不是行动,是最困难也是最见功夫的。

4. 数据准备

这一部分是数据分析工作实质性开展的一步,是看得见摸得着的。相对来说,不需要太多思考了,只需要按照之前的方案和策略进行整理就好了。不需要太多思考和经验,相对而言更需要扎实的技术和耐心。

说说技术吧。一般来说,通常的数据分析师,在互联网行业需要熟练掌握基本的SQL语法进行数据提取。一般来说,对于sql的要求是熟练而非高深。任何编程语言都是工具,sql相比于其他编程语言就更是工具中的工具。它只是一个取数的语音,胜在简单,而且是真的简单,简单到几乎除了数据提取和简单汇总没有什么其它需要掌握的了。当然,我只是站在数据分析师的角度来说,这门语言本质上不需要太高深的投入,需要做的只是不但应用,不断熟练。把最基本的语法、逻辑熟练掌握,基本上可以应付99%的取数场景。剩下的边边角角,因为学习的边际成本会无限放大,同时因为不常用,学习之后也大概率会忘记,所以建议找百度老师随用随取就可以啦~

具体相关sql语法和常用语句,篇幅有限也相对专业,我后续单独出一篇来说明,欢迎关注收藏不迷路~!

5. 初步验证

在经过初步的数据整理之后,很多人常常会直接进行深度数据清洗和分析建模,正是的数据分析工作逐步展开。但是,根据经验,在最初的时候不要把工作做的那么重,常常是一个明智的选择。

这个时候我们有了初步的假设,也即将开始下探数据细节,展开深入的数据分析。但是想过没有,如果我们分析的数据不能达到我们的目的,那么接下去的工作是不是就是无用功?利用现有的数据和思考,我们已经可以初步进行简单的统计和分析,这个时候为了防止我们出现大的方向性错误,最好加一步验证,防止后面做了一大堆工作之后推倒重来,大面积返工是很伤士气的(做过数据分析大概都能体会到这种无奈)。

那么如何进行初步验证呢?

现阶段我们要分析用户身份画像,我们整理了用户身份的相关信息,放在了excel或者mysql数据库中。接下来我们在深入分析之前,需要验证三个方面:

我们所提取的用户数据是否可靠数据是否正确:防止在录入或者提取数据的时候存在一些人为操作破坏了样本数据的正确性。正确的数据要在工作的开始校正完毕,避免基于错误的数据进行分析,分析过程中发现问题再推倒重来。比如:用户年龄是否都正确,没有异常值用户车辆购买信息(抽查金额、门店等重要信息是否都能够和系统内部数据对应)数据质量是否可用数据的质量难免有不尽如人意的时候。这里要特别关注缺失值、异常值、数据口径等问题。比如门店信息是否有缺失,缺失比例是否足够小?系统是否在某些信息为空时自动填写了默认值,如有,默认值的逻辑是什么?缺失值的原因是什么?这关系到后面对缺失值的处理。是补默认值,还是自成一体。如果人工补值,需要补充什么样的值,是均值还是众值还是根据某些字段进行建模计算之后的值?

在整体数据正确且质量达到标准的情况下,才有继续进行数据整理和分析的必要。把正确性验证的工作放在前面,是为了后面能够不返工、少返工。

6. 数据整理及建模(90%的情况不需要建模)

传统的数据分析工作其实在大数据之前就已经出现了。这部分工作早于大数据及相关技术的出现。早起的分析工作,单纯是统计学意义上的分析,以描述性数据为主,是不需要建模的。即使在现在,需要建模的数据分析仍然是少数。很多人过于强调模型的重要性,但是我还是那句话,思路的重要性盖过一切。思路对了,整个工作就顺利了,思路不对,再高端的技术都是扯淡,都是为了写PPT、吹泡泡忽悠人的。

言归正传,在所有数据和思路都准备就绪之后,我们开始顺着我们的思路去走整个分析。这个过程就像是侦探探案,抽丝剥茧,不断缩小范围找到数据之下的原因。

数据整理并不是最重要的(思路、思路、思路才是最重要的),但却一定是最耗费时间和精力的。

整体的原则是:

从上到下:先有整体规划再有细节填充。事无巨细:从数据产生的上下游的每一个环节的逻辑都要清晰。因为数据分析师不负责数仓的底层建设和数据映射,所以这里往往要涉及跨部门沟通。并且因为这里涉及的数据口径、逻辑以及特殊点过于烦杂,为了整体工程顺利完成,所以一个好的习惯是从整体工程开始的第一秒,就建立一个表格,记录每个数据的处理逻辑和映射口径。随时随地可视化:对于每一个具体的维度,脑海中要时刻有一个概念。这个属性下,整体数据是什么样?分布如何?变化率如何等。这个不需要可视化的呈现出来,但大体应该画在分析师的脑子里。所以在每一个维度进行分析的时候,要大体知道数据的整体情况,达到能用自然语言把它描绘出来的地步。只有用自己的话表述出来,才是真的明白了这个数据。拿最简单的年龄来说,你在分析年龄的时候不能只是单纯的把数字统计出来,而是能够概括出类似的观点:客户年龄在30-40岁是主力客群,客群超过40岁之后会显著下降。但是到了50岁之后又会有一小部分客户。数据衍生的脑洞在这里挖出来:现有的数据多半是低维、直接的数据。在分析师有了对每个维度的概念之后(这也是为什么要求在脑子里要有整体框架和局部细节概念的原因),要根据经验和直觉,去进行数据衍生的尝试。比如每个人每月手机缴费,每个月工资收入两个数据是直接数据,但是为了衡量每个人对于通讯的需求程度,我们是不是有新的维度指标:每人月租占单月收入比重。这就是一个简单的数据衍生逻辑和过程。当然,数据衍生的好坏,对于之后的分析结果影响颇重,之后会有专门的文章深入探究。

具体的操作细节,因为整体篇幅的原因,这部分又其实是非常考验功夫,具体问题具体分析,并没有一劳永逸的统一方法。所以打算后面会统一出多个文章,结合部分优秀案例详细讨论(嗯,我真会给自己挖坑)。

7. 可视化

可视化这个事情能让你的报告做的非常酷,毕竟人是感性动物。

工具选择

简单来说,可视化的工具分为3类,一类类似于excel、tableau、FineBI等专业的可视化软件,另一类则是PPT、脑图等偏重于画图的软件,还有则是python、matlab等编程语言。个人觉得,前者适用于日常常规性的报表和不太正式的小分析项目,后者则是更偏向于正式化的大项目。而利用python、matlab等编程语言进行可视化,虽然门槛较高,但是其实也越来越被业界接受,因为数据分析这个活由于定制化程度越来越高,所以代码化趋势也越来越明显。本来数据提取、分析都在编译器中进行,顺便可视化也就一起了呗,这样更方便。

可视化的原则和方法不仅涉及数据分析,也涉及美学和传播学等相关领域。这也是数据分析这个工作中既要求理工逻辑又要求一定的审美水平。

目前来说,专业的可视化工具,大多收费不菲,国内包括大厂在内的公司,据我了解使用的频率非常少。比较通用的工具是ppt、excel和python。

工作导向

可视化本身是为了汇报,让领导快速和其他同事快速get到你数据分析的逻辑和结论。所以务必追求逻辑清晰,在此基础上才是好看。表达的逻辑对了,基本上就完成了,好看是顺手的事情。除非做大型的演讲,不然基本上包括大厂在内都不会太要求“好看”的,千万不要陷在美学的细枝末节,就像陷在市场上少有教人做PPT的逻辑,几乎都是让人把ppt做的更美观一样。

相关技能

技能这事儿,多是道的层面了,展开说能说一天,所以还是后面单独再来吧~

8. 报告呈现

报告这个事情,多出现这么一个尴尬的问题。基本上小事不需要到这一步,你把可视化图标罗列清晰,老板基本就明白了问题的来龙去脉。工作那么忙,基本不需要正是的报告了。如果事情很大确实需要,那很可能是老板根据你的分析结果,去写一版报告向上汇报。

anyway,作为完整的工作流程,还是要说一说。报告写的好不好,本质上不会提升你工作的质量,走道这一步,整个数据分析的工作已经确定了。但是报告写得好,可以让老板知道你的努力,便于打工人升职加薪财富自由(不可能的)。

总的来说,报告的展开形式多种多样,根据个人风格和分析事务确定,不必拘泥也不应生搬硬套。模板既是拐杖也是限制,对于新手来说可以参考优秀的分析思路,但是在熟悉了别人的思路之后,如果想更进一次,需要抛弃思维定式和路径依赖,去找到属于自己的路。

简单来说,我自己概括的报告的整体大逻辑可以有:

问题探索型:

设置悬念,不断根据悬念去寻找答案;在寻找答案之后又再一次对答案进行追问,不断深挖事务背后的原因。

举例:

客群是否发生了变化?---确实发生了变化,因为客群变化导致了产品销量的下降。客群发生了怎样的变化?---客群的收入水平发生了下沉,导致了消费能力下降。哪一部分客群的消费水平发生了变化?客群的收入水平发生了什么水平、什么性质的下降?---30~40岁的客户发生了消费水平的变化,具体是频率和客单价都降低了。客群收入水平大约平均下降约15%。看到这部分人职业大多是餐饮行业从业者,可能因为疫情出现了较大程度的收入减少。这种性质应该受疫情影响,随着疫情好转,大概率会出现反转。是否可以针对这类客户推出相关促销政策?

设置悬念进而不断下探问题这类文章,要求分析的思路非常清晰,同时数据支撑充分,逻辑严谨,对于写作技巧要求也高,但是整体上效果较好,同时也很有说服力。总体来说是一种门槛较高,收益较高的写作方式。

2. 开门见山型:

开篇点出要分析的问题,同时给出分析的结论,对每一个结论进行论据支撑。

举例:

销量下降的原因?--主要有3个原因:1. 客户消费能力下降。 2. 竞对产品竞争力提升。 3.疫情下市场整体萎靡不振。分三个方面分别阐述原因。消费能力下降:消费能力出现何种性质、何种程度的下降。这种情况是短期可以恢复还是长期可以恢复还是不能恢复?是否需要产品端改变定价策略?竞对产品竞争力提升:价格下降还是产品质量提升?程度如何?目前市场上我们和竞对在产品维度上的优势和劣势各式什么?客户对两个产品的看法和定位有什么改变?整体市场萎靡不振:整体市场销售下降多少?利润率下降多少?从业人员减少多少?企业减少多少?综上原因,我们的产品销量下降。

开门见山提出结论然后分点论之的行文思路是一种适合新手,也比较适合研究广度好,但是深度略有不足的情况。是一种四平八稳的行文方式。是一种安全,有亮点,有细节的选择。

3. 面面俱到型:

这是一种以分析思路为基础的行文方式。如果说第二种行文是议论文,那么这种方式就是记叙文。这种方式看似简单,但其实要想写的精炼和精彩,其实是最难的。因为上面两种方式天然符合阅读者的思维,也容易带入,而这种写作方式是一种偏向写作者的思维方式,如果要仍然要写得出彩,需要更加高级的写作技巧,新手慎用。

举例:

分析背景:最近我们发现销量下降,我们的目标是分析下降的原因并试图找到改进的办法。从以下几个方面进行了分析:1、客户维度。2、产品维度。3、市场营销维度。4、竞对维度。5、政策维度等等。并每个维度分别简要说明分析思路、过程和结论。最后,我们发现是1、2、4三点对销量下降起到主要作用。并给出作用逻辑和传导路径。最后我们给出解决办法。针对1、2点我们对问题的起始点进行整改,针对第4点我们从问题的传导路径入手,切断问题的传导路径从而进行改善。

总的来说,是一个非常艰难的写作手法。新手常常不自觉地采用并且死的很惨。真正以一种面面俱到的分析取胜的人,犹如画了一幅《清明上河图》的全景图,在不显得冗余的情况下充满细节。《清明上河图》的难度要远远高于《富春山居图》,画一草一木,只需要画一草一木,画整个世界则需要更多的思考和构思。非高手不用的写作方式。

以上,是整体数据分析工作的流程。很多部分只是蜻蜓点水的简要带过,旨在搭出一个框架,不在于细节的论述。篇幅有限,估计没人看到最后,其他细节待后续补充了~欢迎各位指教收藏,部分论述未必准确,欢迎探讨,毕竟是我一个人从业之后的方法论积累。

搜索