成为数据分析师的必要条件
开篇 成为数据分析师的必要条件
作为一名成熟的数据分析师,那必然是要头顶Python,脚踩SQL,左手一个Tableau,右手一个Excel。能取数,会报表,埋点AB两不误,分析落地显价值。
那在日常工作中具体需要具备哪些技能呢?笔者根据个人工作学习,对自己做了个技能画像。
接下来,笔者将从工具应用、理论基础、数字基建、分析思维四个方面介绍数据分析的必要条件。对其中一些基本技能附上基础教程,帮助初学者迈进数据分析的大门。同时为了尽可能减少初学者走弯路,会在必要的地方做一些补充说明。
工具应用
我们不生产数据,但我们要灵活搬运数据。作为一名数据搬运工,一些趁手的工具那是必不可少的。
-
SQL
毫不夸张的说,一个数据分析师80%的时间都在写SQL。对于想入门的同学来说,SQL基础教程 是实用的。但实际工作的业务是千变万化的,Hive SQL在处理复杂的数据需求更有优势。但逻辑是相通的,这里只做概述,暂且不表。
SQL是一个非严格的格式化要求语言,因此市面上的数据分析师的SQL格式千变万化,对于初学者无形中提高了Review代码的难度。一个优秀的数据分析师应该养成自己良好的代码风格,如果没有,可以参考后续系列的示例。
对于数据分析师来说,一个好的文本编辑器也是必要的。推荐的包括Atom、VScode、Sublime。笔者更偏爱Sublime,具备轻量、本地文件管理、多语言支持、批处理操作等优点,爱折腾也能各种自定义。一些常用的Sublime操作 与笔者相似,推荐给大家。
-
Python
一方面Python是对SQL的补充,直白点说就是有的需求SQL写不出来,例如非结构化的文本数据、循环判断等。这个时候就需要通过Python进行数据处理,如果一些数据无法离线下载,就需要用到PySpark进行线上处理。另一方面,Python在数据挖掘、机器学习、自动化工作等方面应用广泛。
当然R在数据处理与数据挖掘同样表现优异,不过由于笔者不会R,就不做介绍了。
PySpark可以通过Python直接读取Hive集群,前提是需要数仓搭建完善的JupyterLab平台。后续会有相关案例,这里也就暂且不表了。
对于想入门的同学,廖雪峰的python教程 是很好的入门教程,学到【模块】基本足矣。而Numpy、Pandas、Matplotlib作为Python数据分析三大宝剑,利用Python进行数据分析 可谓是数分从业者入门书籍。但在实际工作中,Numpy常用于科学计算,可视化分析也较多以Tableau或Excel为主。因此Pandas的重要性就凸显出来了,其基础教程可参考pandas教程 ,强化训练可参考图解Pandas。
对于数据分析师来说,Anaconda + jupyter notebook 是绝佳的食用方式。因此对于初学者而言,没必要将大量的精力花费在折腾环境、编辑器上面。具体的只需要搜索【Anaconda安装教程】即可。
-
Tableau
一图胜千言,Tableau作为一款优秀的可视化分析软件/平台,具备易上手,上限高等优点,更重要的是能够处理亿万量级的数据。简单的可以制作任意的基本图表,复杂的可以制作精美的BI报表。Tableau官方入门指南 是很好的入门级教程。
Tableau是一款付费软件,市面上的破解版过于老旧,因此建议大家支持正版。但正版的价格又很昂贵,所以想省钱的可以逛逛某宝,懂得都懂。当然Power BI也很优秀,由于笔者也不会,就不做介绍了。
Tableau不建议过多地学习复杂高深的内容,更建议在日常分析中多使用。拖拖拽拽,发现问题,解决问题。自然就熟能生巧。对于SQL、Python亦是如此,数据分析是一个实践大于理论的职业,因此只需要有一定的基础便可以花更多的精力在业务实践上,以问题为导向进行自我提升。
-
Excel
Excel作为最基本的数据分析工具却往往被大家忽略,优秀的Excel具有方便美观、对非技术型领导友好等优点。但是制作优秀的Excel往往需要较高的学习成本和时间成本,因此大多数数据分析师只需要学会Vlookup和数据透视即可。
-
Git
对于所有需要协同工作的场景,Git都是必不可少的。数据分析作为非专业开发人员,少许的Git基础即可流畅地协同工作。廖雪峰的Git教程 是浅显易懂的。
-
Linux
有些情况例如配置各种环境、登陆集群服务器等,就会使用到命令行工具,因此基础的Linux命令是必要的。 事实上在需要的时候去查找使用更为合理。
-
Markdown
这个是不必要的,但由于Markdown能让人们更多地关注内容本身而非排版,因此在日常维护wiki,内容分享等方面都极为高效,所以强烈建议工作之余学习。官方基本语法是很好的学习资源,如果有想进行写作分享的,还可以在线排版非常方便,但是更建议本地通过Typora写作后再进行线上排版。
Typora目前正式版开始收费,不想付费的可以下载Beta版本,功能基本满足需求。
Markdown写作还有一个重要的问题是解决图床问题,好在Typora+PicGo+Gitee就能轻松实现。
理论基础
万丈高楼平地起,基础往往能决定上限。
-
统计学
统计学是数据分析的灵魂,虽然很多人在工作中感觉不到。但实际上日常所做的汇总统计、分布、探索性分析、相关、回归、假设检验、抽样、总体推断等等都是由统计理论所支撑的。建议学习《商务与经济统计 精要版 原书第7版》。
-
计量经济学
计量与统计是相似的,如果说统计更偏重于理论的话,计量则更偏重于应用,往往可以将实际问题抽象为计量模型进行实证研究。但是花费大量的时间去学习计量经济学是不明智的,但是多多了解也是有益的。推荐阅读陈强老师的《高级计量经济学及Stata应用》,里面有详实的计量模型案例。
-
算法基础/机器学习/数据挖掘
从数据分析师的角度看,这三者其实差异不大。数据分析师与算法工程师的最大差异在于,数分更偏重于成为调包侠,当然,你算法基础越扎实,调包调参就会越丝滑。而机器学习更注重结果是否work,而很少对数据形式进行统计验证。这里推荐两本书给大家,《Python大数据分析与机器学习商业案例实战》帮你快速成为调包侠,《Python数据分析与数据化运营 第2版》通过详实的案例指导你如何利用算法进行业务驱动。
统计学能极大的提高分析师的下限,计量经济学则能提高分析师的模型抽象能力,机器学习则能提高分析师解决实际问题的能力。因此,当你感觉自己出现瓶颈的时候,不妨在这三方面进一步深入学习。
数字基建
同样的,数字基建就是数据驱动的基础。
-
数据支持
直白一点就是临时的数据需求,分析师的终极目标之一就是消灭临时数据需求,然而事实是残酷的,大部分公司的数据支持占用了分析师50%以上的时间。所以强大的业务理解,沟通合作以及SQL能力是必须的。笔者根据本人的工作经验和爬坑经历,给出最真诚的6点建议:
- 区分维度和度量。当你明确了维度和度量以后,你脑中自然就形成了最终数据表格的框架。
- 问清楚时间。很多数据需求验收不过关都出在时间问题上,例如数据要工作量还是转化漏斗,按自然日统计还是按状态变更时间统计等。
- 关注重复数据。有些记录不应该出现重复情况,需要给定规则进行去重。
- 明确是结果表还是日志表。结果表往往没有状态变更的时间,只有最终一个结果,日志表则是生成结果表所有过程的记录。
- 快速的数据验证往往建立在明细的基础上。在做数据校验时,通常由外及里,拉出明细进行比对。
- 制作SQL模版或定时邮件。一些相似的、频繁的、周期性的数据需求可以抽离出来进行固化,绝大多数完善的数仓都会开发出相应的平台供分析师使用。
数据分析师在做临时数据需求也是有段位的,在和需求方沟通时的表现就能看出来:
青铜:两眼迷茫,似懂非懂的,然后就进入了漫长的无意义沟通环节。
白银:当时理解了,回来一着手就感觉不对,然后时间就浪费在了反复沟通确认上。
黄金:顺利的跑出了数据,交给需求后要么是数据不对,要么就是并非业务想要的,接下来就是反复地修改。
钻石:get到业务的真实诉求,引导业务正确的提出需求,沟通结束大致结果就已经出现在自己脑子里了。回去排个期,摸个鱼,在deadline之前发出去,业务见了都夸好。
王者:你这个需求不合理/没有意义。霸气拒之~
- 数据埋点
数据分析师应该和产研一起参与到埋点工作中去,如若不然,你在排查埋点数据异常的时候能把自己气到吐血。分析师最常见的埋点工作就是进行埋点设计和埋点测试。
埋点一般根据产品经理的产品搞进行设计,不同公司的埋点设计标准千差万别,但最为常见的就是三段式【事件类型/页面/事件】和四段式【事件类型/页面/模块/事件】。埋点命名采用驼峰命名,并记录主要的参数。
埋点测试主要根据设备进行区分,安卓设备通过ADB测试,iOS设备可用mac的控制台,H5页面则通过Charles进行抓包。
- 指标体系
指标体系可以通过一系列有联系的特征来洞察全局,推动运营。指标使得业务可拆解量化,体系则是观察维度,简单的说就是维度+度量。指标体系的搭建是有迹可寻的,一般会用到OSM+AARRR+UJM+MECE四大模型。
OSM模型确定整体框架,O(Object)一般是业务核心KPI。明确目标后,需要制定相应的S(Strategy),这个可以利用AARRR模型拆解业务漏斗,UJM模型模拟用户路径对S进行拆解。而M(Measure)则是对策略效果的评估指标,可以通过MECE模型对M进行拆解穷尽。
- BI报表
BI报表是指标体系的具体呈现,一般会将核心指标、一级指标做成经营报表,常以大盘形式展现给管理层。拆解后的S和M做成运营报表,用来指导业务运营。
每个公司的报表体系也是千差万别的,但是其核心还是SQL,并辅以调度系统将数据写入数据库。为了保证前端查询的时效性,常见的有MySQL和ES(Elasticsearch),对于实时大数据则考虑TiDB、Flink,对于动态多维数据则考虑Kylin。当然这些底层设计都是需要数仓开发完善的,分析师只需要入乡随俗即可。
- 自动化工作
自动化工作是一种统称,例如前面所说的SQL模版、定时邮件、BI报表,但是这些数仓在开发相关平台的时候,往往只是将SQL查询的数据以某种形式呈现,可扩展性不高。一些特异的自动化需求就需要自力更生了,一般需要综合调度系统、crontab、Python、PySpark完成数据的读写,Excel和Tableau则可以实时连接MySQL,Python可以将数据推送至邮件、企业微信、钉钉等。
自动化工作的核心在于读取Hive集群数据并写入MySQL,有的公司有相应的调度系统可用,如果没有则可以利用crontab+Python+PySpark实现。当然具体实施细节会涉及到很多权限问题需要协调解决,其实这一部分也是非必要的。
分析思维
一般的分析思维包括对比、分群、相关、因果,但笔者更倾向于分为异动分析、分群思维、数据挖掘、试验驱动。
-
异动分析
异动分析是一个综合性分析,但核心思想是对比分析。在软技能层面涵括了业务理解、结构化思维、逻辑推断能力,硬技能方面又体现了数据校验、统计基础、指标拆解、维度下钻、比较分析、漏斗分析、事件分析等综合技能。
其实这些思维能力基本上在开发指标体系与BI报表的时候就已经体现出来了,异动分析强依赖于BI报表,所以优秀的报表能极大的缩短分析师定位异常的时间。
当然有些异动藏的比较深,这个时候就需要有一步步抽丝剥茧,其关键就是维度下钻+指标拆解,核心思想则是对比分析。
-
分群思维
物以类聚,人以群分。分群是精细化运营的核心,也是对比分析的前提。最常见的分群就是维度下钻,这个是基于业务角度的分群方式。还有很多基于数据角度的分群方法,例如一维的帕累托法则,二维的波士顿矩阵,三维的RFM模型,多维的聚类等。同期群分析是一种特殊的分群方式,它在分群的同时又彰显了时间信息。
-
数据挖掘
利用算法模型挖掘影响标的变量的关键因素,其实质是相关性分析。这是一类广泛的问题,主要包括分类和预测,在一些专题分析中应用广泛。
-
试验驱动
试验思维是一种低成本的因果分析思维,通过一系列科学步骤将小流量的实验结论推至总体。最常见的就是A/B试验,是创新驱动的一大利器。
因果推断除了A/B试验外,还有传统的计量方法,例如合成控制法、断点回归、倾向得分匹配、双重差分法。以及开源的因果推断框架,例如dowhy、Causal Impact等。
实际上,由于A/B试验的推广和完善,基于试验外的因果推断很少有应用,所以重点还是要掌握A//B试验。
总结
以上能大致绘制出一个数据分析师的轮廓,总结起来就是擅长SQL、Python、可视化分析,并具备统计基础和分析思维。通过实践沉淀出数据敏感性和业务敏感性。
共勉~
#数据分析师工作##数据分析教程#微信知乎搜索HsuHeinrich,第一时间更新~ 最真实的数据分析教程,SQL、Python、Tableau、Excel、数据基建、BI报表、埋点、专题分析、数据挖掘、A/B试验。日常分析师涉及的方方面面,这里都有~