数据分析的一些总结
介绍
平时工作会牵涉到一些查问题的工作,并且查问题时会需要:跑数据、分析数据,那么对实战层面的分析数据方面做了一些思考和总结。
下面会从问题和总结这样的方式来进行展开介绍。
问题-总结
问题:
如何从密密麻麻的数据(报)表中"找茬",以验证数据是没问题的或者从数据中看出问题?
总结:
由点到线再到面,找不同。
首先揪着一个点去找,然后找对应的另外一个点;抽样看看有没有什么”巨大的差异“,有差异就有问题;
比如:一个报表有很多行很多列,密密麻麻的;可以先定位到某天的一个指标,然后对比多看几天这个指标,如果在这几天中指标波动非常大,那么一定是存在的问题;
就可以揪着这个差异来针对性排查;
问题:
在统计分析领域,看明细的价值是什么?
总结:
通过看明细,可以激发我们”统计分析“有更多思路和思考。
看明细明细,我们会知道一些新的维度和增添更多的维度来看数据,因此看明细很重要,特别是在统计分析领域;
一定要多看明细,发挥明细的价值;
问题:
数据分析如何做比较,有差异时或者违反直觉或者数在一个环节和另外一个环节的绝对量或者占比对不上时如何排查呢?
总结:
一定要考虑整个流程,思考哪个环节会造成折损;
我们常常局限在当前的问题而思考,而忽略对整个流程的思考,进而也想不到流程中的某个环节可能存在折损;
问题:
统计前需要做什么?
总结:
做统计和看明细两个操作必须结合在一起来做,要么都做,要么都不做;
但是注意的是:一般统计分析前要保证具有可比性,因此需要剔除一些对统计无用的”脏数据“,因此呢,还需要看明细;
最好先看明细,这样就可以看到脏数据先清理,后面直接统计就行;统计好,再看明细再对数就行,这样反复几次就可以得到结果;
这样做:可以首先把对统计无用的”脏数据“剔除;
问题:
分析的一个前提是什么,你在开始分析前知道这点吗?
总结:
分析在一定意义上其实就是比较,因此分析要有是可比性,一定要在一个可比较的基础上来进行分析;否则你的比较结果没有任何意义;
那么问题来了:要找到可比的基础,这个需要你进行分析论证,看怎么找到这样一个可比较的基础;
问题:
跑数据,分析数据的两种先后情况
总结:
先看下明细,再看统计结果;
先看统计结果,再看明细;
总之,两个都要看,千万不能只看统计结果不看明细,因为可能你的统计逻辑是错的;
也不能只看明细,可能在统计上来讲明细不能说明是有问题的,在统计上是可以忽略的;
问题:
数据分析的目的是什么?怎么进行分析?
总结:
分析的目的是找到原因,给出解释和结论或者解决方法或者优化方法;
可以整体分析,然后通过拆分到更细粒度看重要影响因素是哪个;
总之,就是找到最主要的那个原因或者因素或者影响点;
注:当你进行数据分析时,就一定要想到这个方法:拆到某个维度来看哪个是主要影响点;
问题:
统计后,进行对数,一定要注意的点:重复的问题
总结:
只要关联了有重复记录的表,一定要在最外层统计上进行去重处理,这个一定要注意;
注:用去重是一种防御性的措施,无论是否重复,最好都在count之前先distinct下;
问题:
如何分析跑出的数据
总结:
1.分析数据,首先得发现问题,发现违反直觉的点,具体如下:
看能否分组,若能,看组内的差异程度,看组之间的差异程度;看数据是否平稳;
看是否有上升或者下降趋势;看是否有拐点;
看数据聚集程度,是分散还是聚集;
看数据占比是否非常大或者非常小;
2.发现问题了,就找问题的可能原因,给出可解释的原因和能证明该原因的证据;
问题:
分析数据后要给出什么信息?包括哪些方面?
总结:
如果是分析问题,那么要确定问题,给出结论,原因和后续解决方法;
注意:很多人只是给出问题的原因,却没有给出解决方法;
很多人在汇报时没有先讲结论;
问题:
做数据,如何做到不搞错:
总结:
1.认真
2.会去验证,知道如何验证
3.怀疑一切(包括你觉得可疑的,哪怕自己的怀疑最后是错的,也不要放过),反复论证;
问题:
分析思维:对分析进行切换;
总结:
大小(或范围)切换:比如有少量数据来分析,用大量数据来验证;
比如用一小段时间来分析,用一大段时间的数据来验证;
维度切换:比如从一个维度分析后,可以从另外一个维度来分析,进行多维度分析;
粗细粒度切换:比如从一个很粗的粒度分析后,发现没有明显的差距,那么可以把粒度拆细,再分析下;
正向反向切换:按照正向跑数,然后用跑出的数反向验证下;这就是正向反向切换;
为什么要进行分析的切换呢
原因之一是:少量数据方便分析,但是可能是有偏的,因此扩大范围,可以看出趋势的稳定性如何;
问题:
大数据跑数分析技巧:写的sql既能跑统计值也能跑明细
总结:
当进行跑数据进行分析统计时,我们经常直接进行统计结果;但是忽略了对明细的分析来检查你的sql是否正确;
这就要求我们写的sql能查询明细,能查统计结果,支持这两个功能还不需要改动太多的sql;
那么怎么写这样的sql呢?
答:你的sql要有分层架构,在每个层实现不同的功能,比如第n-1层实现明细查询,在n层实现count等统计;
总结:上面聊了一些自己亲身碰到的并思考的事情,由于是个人的理解,所以可能有失偏颇,但是还是希望能带来一些启发和新的思考;