作为一名成熟的数据分析师,那必然是要头顶Python,脚踩SQL,左手一个Tableau,右手一个Excel。能取数,会报表,埋点AB两不误,分析落地显价值。
那在日常工作中具体需要具备哪些技能呢?笔者根据个人工作学习,对自己做了个技能画像。
接下来,笔者将从工具应用、理论基础、数字基建、分析思维四个方面介绍数据分析的必要条件。对其中一些基本技能附上基础教程,帮助初学者迈进数据分析的大门。同时为了尽可能减少初学者走弯路,会在必要的地方做一些补充说明。
我们不生产数据,但我们要灵活搬运数据。作为一名数据搬运工,一些趁手的工具那是必不可少的。
SQL是一个非严格的格式化要求语言,因此市面上的数据分析师的SQL格式千变万化,对于初学者无形中提高了Review代码的难度。一个优秀的数据分析师应该养成自己良好的代码风格,如果没有,可以参考后续系列的示例。
对于数据分析师来说,一个好的文本编辑器也是必要的。推荐的包括Atom、VScode、Sublime。笔者更偏爱Sublime,具备轻量、本地文件管理、多语言支持、批处理操作等优点,爱折腾也能各种自定义。一些常用的Sublime操作[2] 与笔者相似,推荐给大家。
当然R在数据处理与数据挖掘同样表现优异,不过由于笔者不会R,就不做介绍了。
PySpark可以通过Python直接读取Hive集群,前提是需要数仓搭建完善的JupyterLab平台。后续会有相关案例,这里也就暂且不表了。
对于想入门的同学,廖雪峰的python教程[3] 是很好的入门教程,学到【模块】基本足矣。而Numpy、Pandas、Matplotlib作为Python数据分析三大宝剑,利用Python进行数据分析[4] 可谓是数分从业者入门书籍。但在实际工作中,Numpy常用于科学计算,可视化分析也较多以Tableau或Excel为主。因此Pandas的重要性就凸显出来了,其基础教程可参考pandas教程[5] ,强化训练可参考图解Pandas[6]。
对于数据分析师来说,Anaconda + jupyter notebook 是绝佳的食用方式。因此对于初学者而言,没必要将大量的精力花费在折腾环境、编辑器上面。具体的只需要搜索【Anaconda安装教程】即可。
Tableau是一款付费软件,市面上的破解版过于老旧,因此建议大家支持正版。但正版的价格又很昂贵,所以想省钱的可以逛逛某宝,懂得都懂。当然Power BI也很优秀,由于笔者也不会,就不做介绍了。
Tableau不建议过多地学习复杂高深的内容,更建议在日常分析中多使用。拖拖拽拽,发现问题,解决问题。自然就熟能生巧。对于SQL、Python亦是如此,数据分析是一个实践大于理论的职业,因此只需要有一定的基础便可以花更多的精力在业务实践上,以问题为导向进行自我提升。
Typora目前正式版开始收费,不想付费的可以下载Beta版本[11],功能基本满足需求。 Markdown写作还有一个重要的问题是解决图床问题,好在Typora+PicGo+Gitee[12]就能轻松实现。
万丈高楼平地起,基础往往能决定上限。
统计学能极大的提高分析师的下限,计量经济学则能提高分析师的模型抽象能力,机器学习则能提高分析师解决实际问题的能力。因此,当你感觉自己出现瓶颈的时候,不妨在这三方面进一步深入学习。
同样的,数字基建就是数据驱动的基础。
数据分析师在做临时数据需求也是有段位的,在和需求方沟通时的表现就能看出来: 青铜:两眼迷茫,似懂非懂的,然后就进入了漫长的无意义沟通环节。 白银:当时理解了,回来一着手就感觉不对,然后时间就浪费在了反复沟通确认上。 黄金:顺利的跑出了数据,交给需求后要么是数据不对,要么就是并非业务想要的,接下来就是反复地修改。 钻石: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报表是指标体系的具体呈现,一般会将核心指标、一级指标做成经营报表,常以大盘形式展现给管理层。拆解后的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报表,所以优秀的报表能极大的缩短分析师定位异常的时间。
当然有些异动藏的比较深,这个时候就需要有一步步抽丝剥茧,其关键就是维度下钻+指标拆解,核心思想则是对比分析。
因果推断除了A/B试验外,还有传统的计量方法,例如合成控制法、断点回归、倾向得分匹配、双重差分法。以及开源的因果推断框架,例如dowhy、Causal Impact等。
实际上,由于A/B试验的推广和完善,基于试验外的因果推断很少有应用,所以重点还是要掌握A//B试验。
以上能大致绘制出一个数据分析师的轮廓,总结起来就是擅长SQL、Python、可视化分析,并具备统计基础和分析思维。通过实践沉淀出数据敏感性和业务敏感性。
共勉~
[1]
SQL基础教程: https://www.runoob.com/sql/sql-tutorial.html
[2]
Sublime操作: https://code.kpman.cc/2014/10/14/sublime-text-3-mac-%E6%8C%87%E5%8D%97/
[3]
廖雪峰的python教程: https://www.liaoxuefeng.com/wiki/1016959663602400
[4]
利用Python进行数据分析: https://www.jianshu.com/p/04d180d90a3f
[5]
pandas教程: https://www.gairuo.com/p/pandas-tutorial
[6]
图解Pandas: https://pandas.liuzaoqi.com/intro.html
[7]
Tableau官方入门指南: https://help.tableau.com/current/pro/desktop/zh-cn/gettingstarted_overview.htm
[8]
廖雪峰的Git教程: https://www.liaoxuefeng.com/wiki/896043488029600
[9]
基础的Linux命令: https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html
[10]
官方基本语法: https://markdown.com.cn/basic-syntax/
[11]
Beta版本: https://typoraio.cn/releases/all
[12]
Typora+PicGo+Gitee: https://www.jianshu.com/p/b69950a49ae2