初识「数据分析」
前言
在未来,无论是从事什么工作的人,数据分析的思维能力是必备的,初识数据分析,可以让我们了解数据分析的基础思维。在职场和生活中,这个能力可以让我们从数据中洞察出深层次的规律。学会数据分析思维能力,更能让我们脱颖而出。
背景
作者是一名程序员,最近才开始了解数据分析这一部分的知识,开始的时候,在网上搜索了一些资料进行阅读。但网络上的资料混杂,很难找到一个既简洁又官方的讲解,大部分的资料都是从某一个视角来讲解数据分析,给我一种 10 个人有 10 种数据分析方式的感觉。这对我这样新手来说,有些摸不着头脑。于是我将我最近阅读的一些数据分析的资料和文章进行归纳,输出了这篇文章。这篇文章的内容是我个人对数据分析基础的认知,抛砖引玉,希望能对你有所帮助。
一、数据分析是什么
引用百度百科的一句话:
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
这句话很专业,也概括了数据分析的作用。通俗一点,数据分析就是从数据中获取信息,再将信息转换为价值。
1.1 数据分析的作用
每一次数据分析都需要带有目的,所以我们可以把数据分析的作用和我们分析的目的结合起来分类。
根据我个人的理解,我将其主要分为以下几类:
探索性分析
表示着这次数据分析的目的是探索。从已有的数据中找到一些特征点,根据特征点来推断出新的结论。比如:分析用户购物车数据,发现买了电脑的用户大部分都会购买键鼠套装。诊断性分析
表示这次数据分析的目的是诊断。一般用在发生一个事件之后,我们想找到这个事件的原因。这个事件可以是销量增长或下降、日活偶然增加或减少等等。预测性分析
表示这次数据分析的目的是预测。一般用在分析一个事件所产生的的影响。比如:分析去年双十一的增长以预测今年的销量增长。验证性分析
表示这次数据分析的目的是验证。一般用在某一个产品功能更新之后,或者运营方案实行之后。对数据进行分析以验证是否和预期相符。
二、数据分析流程
网络上有许多各领域的数据分析流程,这里不做过多赘述。本节我主要以互联网产品的角度来谈一谈数据分析的基本流程。
在数据分析的流程开始之前,请确定本次数据分析的目的。即为:确定数据分析的类型,参考「1.1 数据分析的作用」。
2.1 数据采集
顾名思义,数据采集就是从各个渠道获取数据。在当下的互联网产品中,一般数据的采集有三种方式:
- 客户端自主研发埋点
- 客户端接入第三方数据统计平台
- 服务器访问日志/数据库数据
- 爬虫采集
名词解释:
埋点:通过在程序中插入代码的方式来实现对用户的行为、操作进行统计和记录。
让我们来逐一分析每个方式的特点:
客户端自主研发埋点
自研埋点是最准确也是定制化程度最高的一种数据采集方式。这种方式一般由产品经理/运营人员在版本发布之前,预先制定出需要埋点的位置。然后将埋点的位置交于开发人员研发后发布。
优势:准确,定制化程度很高,保证信息安全。
劣势:需要一定研发成本,且每次埋点都需要发布前提前埋点。(当然理论上技术层面也可以做到动态更改埋点,不过会极大程度提高研发成本,且受限于客户端的一些应用规则,效果不理想,具体原因不做详述)客户端接入第三方数据统计平台
第三方数据统计平台采集本质也是埋点,只是省去了我们很大一部分的研发成本。接入第三方统计平台是目前对于中小型产品最方便快捷的方式,效果也不差。第三方统计平台一般功能强大,不光在数据采集上,一般会把后面的数据整理、分析步骤都有包含。这里主要介绍我所了解的两款平台:
- GrowingIO
GrowingIO 在最开始接入的时候并没有什么问题。在传统数据采集都是通过代码埋点实现的情况下,其惊艳的动态配置埋点功能更是如虎添翼。前期在我们的产品中使用并没有什么问题。但好景不长,随着使用时间的增加,我们发现了以下问题:
① 其统计的数据并不准确,和我们通过其他方式统计的数据对不上。
② 接入 GrowingIO 的免费时间用完。需要收费,且费用不便宜。
③ 数据分析功能有一些需要收费,如果想拿到 GrowingIO 采集的数据,我们自己分析,也需要额外收费。
综合来说,GrowingIO 如果将数据统计做准确,那么就是除了贵啥都好了。 - 友盟
友盟的接入就给了我一种不太好的印象,接入和使用并不算方便。不过好在在免费的数据统计产品中,友盟算很棒的了。所以中小产品接入友盟是一个不错的选择。
服务器访问日志/数据库数据
通过这种方式的数据采集往往是通过固定的脚本,定期从日志或数据库中采集并计算出想要的信息。比如我们可以编写一个脚本,每天固定的时间计算出一个时段的访问量,活跃度,某些功能的使用频率等等。从信息安全的角度来说,一般的企业是不会允许生产数据被随意访问。即使访问也有很严格监控和审批流程。抛开安全性来说,服务器上的数据能满足的场景是有限的。有些数据需要在用户设备上才能采集。爬虫采集
爬虫采集是一个数据采集的大类。市面上流行使用 Python 代码编写爬虫程序。它一般用于采集不受我们控制的数据,比如竞品的商品列表、竞品同期销售量等等。这些数据不在我们的系统中,也是我们正常手段无法统计到的。所以这个时候,「爬虫」出场了,这里不具体介绍爬虫的采集方式和技术手段,因为其细节很复杂,想了解的可以自行查阅相关资料。
爬虫采集对技术的要求较高,现在网络上大部分有自己数据的网站都有反爬虫策略,而爬虫就需要更加厉害的技术手段来实现数据爬取。这是一场技术的战争,将会随着时间的推移不断螺旋式的演进。
注:数据的采集方式可以多种混用,在分析之前,根据我们之前确定的数据分析目的而去选择所需的数据即可。
上述内容只是从互联网产品的角度触发讨论数据采集。数据采集的方式多种多样,我们不必局限于此,如果我们的产品和新媒体运营有关,那么一些新媒体的阅读量、转化率等等也可以作为数据采集的一部分。如果我们的产品包含社群运营,那么用户活跃度、黏性等等也是同理。总而言之,只要是对我们数据分析目的有帮助的数据,都需要尽可能的设计方式去采集。
2.2 数据整理
数据整理的过程,就像是对数据进行了一次净化。通过「2.1 数据采集」得到的数据往往是混杂的。数据来源于不同渠道,形式也是多种多样。这些数据往往多于我们做分析所需要的。
比如,我们需要分析的内容是本月的销量走势相比上个月怎么样。那么我们只需要本月的销量总额以及上月和本月每一天的销量数据即可。通过这些数据绘制出两张走势图,结果就会很明了。但往往我们所拿到的数据有很多,这些数据来源于不同的渠道,可能对于分析我们刚才的问题并没有什么作用,甚至还有一些脏数据。数据整理的过程就是将这些脏数据和无意义的数据都去掉。只留下对分析有帮助的数据。并将其汇总,方便下一步的分析工作。
整理过后的数据可以是一个文本文件、二进制文件、各种数据库资源、Excel 表格等等。
2.3 数据分析
从上一步,我们已经拿到了对我们很关心的数据。那么数据分析这一步也是整个过程的核心。结合我们最开始数据分析的目的,通过这些数据计算出我们想要的指标,这些一个又一个的指标是我们得出结论的重要因素之一。
数据分析的形式同样也是多种多样,这里列举几类:
- Excel 表格分析
如果上一步的数据汇总是在一个 Excel 表格中进行的。那么也许直接用 Excel 表格进行分析会更加高效。Excel 有很强大的计算功能,可以根据你的指标计算需求写出公式,来达到你想要的结果。同时,Excel 的统计功能也很强大,只要你能将 Excel 玩的很溜,那么对于中小型的数据分析,Excel 也许是最适合的工具。 - 图表绘制分析
图表分析的方式一般对分析者的代码和逻辑能力需要一定要求。图表的生成,需要将上一步的数据按照图表的维度进行处理,处理完成后再以图表形式输出。那么不会写代码就不能绘制图表了吗?其实也不是。网络上有一些可视化的数据分析工具,支持无代码自定义图表维度,设置好后输出。不过这样的方式还是会有一些局限性。自定义程度不高。如果要做一名高级数据分析师,算法和代码能力是必备的。 - 高阶数据分析
高阶数据分析将会在下文「四、高阶数据分析」中进行介绍。这里列出来作为数据分析方式的一类。这一类往往定制化程度更高,难度也越大。
2.4 得出结论
有了数据分析的结果之后,得出结论的过程就很简单了。结论的形式也有很多,可以是文档、可以是报表、可以是一篇总结等等。总之,结论就是将数据分析得出的结果归纳、推导和总结。
三、完整的案例
由于我只是一名初识数据分析的程序员,所以如果我来做一个完整的案例难免会有很多遗漏之处以及不准确的地方,于是我找了一些文章来做参考。
- 产品经理角度的数据分析:https://36kr.com/p/5171146
- 代码(R 语言)数据分析简单案例:https://zhuanlan.zhihu.com/p/25428774
- Excel 数据分析案例:https://zhuanlan.zhihu.com/p/39520206
四、高阶数据分析
这里,我请教了我一位做数据分析的同学。从同学那里了解了一些高阶数据分析的流程和其所需要的能力。接下来我挨个介绍:
- 高阶数据分析介绍
高阶数据分析和大数据分析有一定的相似性。一般需要去做高阶数据分析的企业都会有专业的数据分析师/建模师来做这件事情。其实说的通俗一点,高阶数据分析就是将普通数据分析的流程每一步都复杂化,主流程不变。 - 高阶数据分析的应用场景
高阶数据分析一般应用在大型数据量、高度定制化、复杂的分析需求的场景。例如:美团接单优化、滴滴出行订单分配优化、大流量平台日志分析。
总之,就是很牛逼的数据分析就对了。 - 高阶数据分析流程
这里用一张图来描述更加易懂。
这个流程是高阶数据分析里面较为简单的流程了。不过基本概括了高阶数据分析的流程。这里我主要把「数据分析」一步展开了,采集和整理都没有展开说明,其实真实的场景,大型数据的采集和整理还有很多讲究,这里就不做过多赘述了。数据建模、模型研发、数据模型化这些名词的解释我放在了下文。
- 数据建模
我们都听说过数学建模,数据建模和数学建模有着一些相似性。根据我们数据分析的目的,普通的维度划分已经难以满足我们的需求了。所以需要建立数据模型,将多个维度以一种关联的形式混合在一起。一般专业的数据建模师会采用伪代码或者 R 语言来对模型进行描述,建模对算法能力的要求较高。 - 模型研发
这一步比较容易理解,就是将上一步建好的数学模型用编程语言研发出来。一般用于研发模型的语言有:Python、R 语言。 - 数据模型化
这一步是将前面整理之后的数据,按照模型的要求,输入给模型。让数据模型化。这里可能有些抽象,类比一下,就像我们将橡皮泥放进模具,出来之后,就可以得到模具样子的橡皮泥了。 - 数据分析
这里的数据分析流程和「2.3 数据分析」类似。不同的是,这里分析的是经过数据模型化之后,输出的数据。
五、总结
数据分析是一门复杂的学问。在不了解的时候,一直以为这只是一个行业。随着了解的深入。发现每个行业的数据分析虽然流程相似,但是分析的模式和内容天差地别。并且随着分析的深入所需要专业知识就越丰富。一个行业的专业数据分析师不光需要具备数据分析的这些能力,还需要对其行业的认知非常深入。
当然,不是每个人都会成为专业的数据分析师。所以根据自己的情况,学习到相应的程度就可以了。