站在数据分析师的角度谈谈对数据的处理方法
淘宝卖家数据显示:
胸最大的是新疆妹子,国内内衣消费最多的SIZE是B;
其中75B销量最好,占比41.45%,其次是A,占比 25.26%;
各种颜色中,黑色最为畅销,因为百搭。
…………
这些早已应用在内衣生产、备货、销售等关键环节。
网易云音乐数据显示:
90后用户占比高达59%,其次是80后(12%);
除了流行歌曲,用户最喜欢的风格竟是电音,其中又以广东用户对电音最为热爱;
最青睐民谣的省份是:甘肃&陕西,最喜欢舞曲的是新疆朋友;
小众音乐主要聚集在北上广深;
…………
这些数据也服务于网易云音乐的个性化推荐系统
但数据分析的应用还远不止如此,利用数据分析的方法,我们还可以得到很多有意思的结论。
比如谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网易云音乐,通过其相似性算法,为不同的人量身定制每日歌单……
数据正在变得越来越常见,而数据分析的价值也越来越凸显。在大型互联网企业(比如谷歌、阿里、腾讯、等)每天将产生海量的数据;就算是初创的互联网公司,日志、用户、运营等数据量也不可小觑;而一大波传统企业,在普及智能终端的情况下,所产生的数据,也非同小可。那么一个比较完善的数据分析流程是什么样的呢?
1.问题定义
比较典型的场景是我们需要针对企业的数据进行分析,比如公司通常会有销售数据、用户数据、运营数据、产品生产数据……你需要从这些数据里获得哪些有用的信息,对策略的制定进行指导呢?又比如你需要做的是一份市场调研或者行业分析,那么你需要知道你需要获得关于这个行业的哪些信息。
首先你需要确定去分析的问题是什么?你想得出哪些结论?
比如某地区空气质量变化的趋势是什么?
王者荣耀玩家的用户画像是什么样的?经常消费的是那类人?
影响公司销售额增长的关键因素是什么?
生产环节中影响产能和质量的核心指标是什么?
如何对分析用户画像并进行精准营销?
如何基于历史数据预测未来某个阶段用户行为?
…………
这些问题可能来源于你已有的经验和知识。比如你已经知道每周的不同时间用户购买量不一样,那么你可以通过分析得出销量和时间的精确关系,从而精准备货。又比如你知道北京最近几年的空气质量是在变坏的,可能的因素是工厂排放、沙尘暴、居民排放、天气因素等,那么在定义问题的时候你就需要想清楚,需要针对哪些因素进行重点分析。
有些问题则并不清晰,比如在生产环节中,影响质量的核心指标是什么,是原材料?设备水平?工人水平?天气情况?某个环节工艺的复杂度?某项操作的重复次数?……这些可能并不明显,或者你是涉足新的领域,并没有非常专业的知识,那么你可能需要定义的问题就需要更加宽泛,涵盖更多的可能性。
问题的定义可能需要你去了解业务的核心知识,并从中获得一些可以帮助你进行分析的经验。从某种程度上说,这也是我们经常提到的数据思维。数据分析很多时候可以帮助你发现我们不容易发现的相关性,但对问题的精确定义,可以从很大程度上提升数据分析的效率。
如何更好地定义问题?
这就需要你在长期的训练中找到对数据的感觉,开始的时候你拿到特别大的数据,有非常多的字段,可能会很懵逼,到底应该从什么地方下手呢?
但如果有一些经验就会好很多。比如,你要研究影响跑步运动员速度的身体因素,那么我们可能会去研究运动员的身高、腿长、体重、甚至心率、血压、臂长,而不太会去研究运动员的腋毛长度,这是基于我们已有的知识。又比如我们要分析影响一个地方房价的因素,那么我们可能会有一些通用的常识,比如城市人口、地理位置、GDP、地价、物价水平,更深入的可能会有产业格局、文化状态、气候情况等等,但一般我们不会去研究城市的女孩长相,美女占比。
所以当你分析的问题多了之后,你就会有一些自己对数据的敏感度,从而养成用数据分析、用数据说话的习惯。这个时候你甚至可以基于一些数据,根据自己的经验做出初步的判断和预测(当然是不能取代完整样本的精准预测),这个时候,你就基本拥有数据思维了。
2.数据获取
有了具体的问题,你就需要获取相关的数据了。比如你要探究北京空气质量变化的趋势,你可能就需要收集北京最近几年的空气质量数据、天气数据,甚至工厂数据、气体排放数据、重要日程数据等等。如果你要分析影响公司销售的关键因素,你就需要调用公司的历史销售数据、用户画像数据、广告投放数据等。
数据的获取方式有多种。
一是公司的销售、用户数据,可以直接从企业数据库调取,所以你需要SQL技能去完成数据提取等的数据库管理工作。比如你可以根据你的需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……,SQL可以通过简单的命令帮你完成这些工作。
第二种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。当然这种方式也有一些缺陷,通常数据会发布的比较滞后,但通常因为客观性、权威性,仍然具有很大的价值。
第三种是编写网页爬虫,去收集互联网上的数据。比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析,这算是非常靠谱的市场调研、竞品分析的方式了。
当然,比较BUG的一点是,你通常并不能够获得所有你需要的数据,这对你的分析结果是有一定影响的,但不不影响的是,你通过有限的可获取的数据,提取更多有用的信息。
3.数据预处理
现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据分析,或分析结果差强人意。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。把这些影响分析的数据处理好,才能获得更加精确地分析结果。
比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。
那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。
当然在这里我们还可能会有数据的分组、基本描述统计量的计算、基本统计图形的绘制、数据取值的转换、数据的正态化处理等,能够帮助我们掌握数据的分布特征,是进一步深入分析和建模的基础。
4.数据分析与建模
在这个部分需要了解基本的数据分析方法、数据挖掘算法,了解不同方法适用的场景和适合的问题。分析时应切忌滥用和误用统计分析方法。滥用和误用统计分析方法主要是由于对方法能解决哪类问题、方法适用的前提、方法对数据的要求不清等原因造成的。
另外,选择几种统计分析方法对数据进行探索性的反复分析也是极为重要的。每一种统计分析方法都有自己的特点和局限,因此,一般需要选择几种方法反复印证分析,仅依据一种分析方法的结果就断然下结论是不科学的。
比如你发现在一定条件下,销量和价格是正比关系,那么你可以据此建立一个线性回归模型,你发现价格和广告是非线性关系,你可以先建立一个逻辑回归模型来进行分析。
一般情况下,回归分析的方法可以满足很大一部分的分析需求,当然你也可以了解一些数据挖掘的算法、特征提取的方法来优化自己的模型,获得更好地结果。
5.数据可视化及数据报告的撰写
分析结果最直接的结果是统计量的描述和统计量的展示。
比如我们通过数据的分布发现数据分析工资最高的5个城市,目前各种语言的流行度排行榜,近几年北京空气质量的变化趋势,避孕套消费的地区分布……这些都是我们通过简单数据分析与可视化就可以展现出的结果。
另外一些则需要深入探究内部的关系,比如影响产品质量最关键的几个指标,你需要对不同指标与产品质量进行相关性分析之后才能得出正确结论。又比如你需要预测未来某个时间段的产品销量,则需要你对历史数据进行建模和分析,才能对未来的情况有更精准的预测。
数据分析报告不仅是分析结果的直接呈现,还是对相关情况的一个全面的认识。我们经常看到一些行业分析报告从不同角度、深入浅析地剖析各种关系。所以你需要一个讲故事的逻辑,如何从一个宏观的问题,深入、细化到问题内部的方方面面,得出令人信服的结果,这需要从实践中不断训练。
数据分析的一般流程总的来说就是这几个步骤:问题定义、数据获取、数据预处理、数据分析与建模、数据可视化与数据报告的撰写。