本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

bigdata.png
要做好数据分析,数据是基础。如果数据有问题,再优秀的分析也没有任何意义。

新手很多时候会犯一些低级错误,比如不考虑数据质量,直接开始闷头分析。这样的结果,很可能是分析了很久,甚至出了结论。但是最终却发现数据源质量不行,要推倒重来。

怀疑数据,验证数据。是区分数据新手和老鸟的一个核心分水岭。

好的数据分析师,是具备数据准确性意识的,他们过往的经验会告诉他们,不要盲目相信数据质量,但凡数据都值得怀疑,因为这里面出错的可能性太高了。数据在分析前后,经历了很多道工序,从数据定义、上报、汇总、加工、到分析使用,每一道工序都可能出错,这使得数据风险大大提升。

本文为大家总结了数据出错的各种可能性,以及对应的分析应对方法,帮助大家更好的使用数据。

一、数据可能出错的环节:

1. 数据来源:

  • 使用同源数据:同一个数据,有很多种来源。有些可能来自于埋点平台,有些来自于服务端记录,甚至还有些来自于人工记录。这些数据可能存在微弱的区别,使用的时候需要统一一个来源,不要盲目拼接,这样很容易出错。

  • 数据定义一致:有时候甚至同一种来源里,也有很多不同的记录和统计逻辑,这意味着在使用数据前,我们需要确认数据定义的一致性。举个例子,同样都是人均消费数量,如果 A 的理解是人均消费数量 = 消费总数量 / 日活人数。B 的理解是人均消费数量 = 消费总数量 / 消费人数。那么数据完全不可比较

  • 排除错误数据:有的时候,功能迭代后,数据上报会出现问题。导致某个阶段的数据没法正常统计,这些数据需要排除,否则会极大干扰结果

2. 数据内容:

  • 排除虚假数据:有的时候,不是所有数据都是真实可信的数据。一些竞争对手可能会恶意刷我们的数据,导致我们没法正常分析。也有可能我们自己出于一些功能测试的考虑,会设置一些虚假流量数据。在进行数据分析的时候,要留意这些虚假值,不要因为他们的存在影响分析判断。

  • 了解字段覆盖情况:实际工作过程里,出于种种原因,我们会发现很多数据字段的覆盖率不全。比如性别、年龄等等字段,这个时候需要弄明白,究竟什么情况下数据会缺失,不要盲目相信数据是随机采样的。因为很可能部分用户因为共同的问题,没有提供类似字段,导致样本存在明显偏差。举个例子,如果用户的性别、年龄字段是根据身份证号取得的,而只有核心粉丝才会填写自己的身份证号,那么我们在分析这个性别、年龄分布的时候,就要有个思想准备,它不代表真实的用户情况

  • 清洗错误数据:数据出错,是最常见的问题了。比如你可能会发现性别字段里,除了男女,还出现了数字。这可能是因为上报逻辑不统一。又比如你可能会发现一些浏览时长出现了 “年” 级别的数值,这可能也是上报错误。又比如一些用户 ID 类的字段,数字位数不正确等等。这些错误,有些很难发现,但是如果在使用数据前,抽样浏览一下明细数据,能极大程度上避免犯错。

3. 数据加工过程:

  • 谨慎对待人工处理:但凡涉及人的环节,都很容易出错。比如复杂的 excel 处理,大量的数据问卷采集工作等等。在实践工作里,但凡能让机器处理的,就都尽可能交给机器。自动化的加工远比人工处理来得放心,也更容易批量处理。如果一定要人处理,也可以通过一些模板、格式要求,来限定人们的输入范围,避免离谱的错误,和后期的纠正成本。

  • 格式转换要小心:数据有很多类型,不同类型互相转换的过程中,也很容易出错。常见的字符串类型转数值,浮点转整数等等,都很容易丢失信息。这个过程只能小心,并且多加检查,没有别的好办法。

二、应对数据不准确的问题:

1. 数据校验:

数据校验,也就是检验数据的准确性。没有经历这一步的数据分析,都将充满巨大风险。数据校验有很多种方法:

  • 外部数据印证:外部数据印证,是指拿多个数据源的数据进行相互对比,如果发现对不上,就可能存在着问题。一定不要轻易放过这些偏差,觉得仅仅只是误差。这些问题的背后,往往藏着一些程序错误,或者流程漏洞。

  • 数据相互印证:数据相互印证,是指数据加工过程中的前后对比,比如数据处理前后,同一个指标的平均值出现了巨大差异,而又不符合逻辑时,就说明加工过程出了问题。又比如通过不同的数据,算出来的类似指标之间,存在明显区别,那么也说明了数据加工错误。

  • 数据合理性判断:正常来说,数据有自己合理的范围,比如每次阅读文章大概在几分钟,用户每天登录的次数大概在十几次,广告点击率在百分之十以下,如果出现了一个特别异常的值,那么就值得特别注意。此外,除了这些参考值以外,还可以同比环比横向比,如果发现某个值不符合预期,那么也应该仔细分析。

2. 使用数据的习惯:

即便数据一时半会没有发现问题,也需要注意数据的使用习惯。遵循这些经验,你将避开很多潜在的坑点。

  • 了解数据问题:如果你刚刚接手一批数据,那么最好不要直接开始自己探索,问问数据管理者和使用者,让他们告诉你数据有哪些问题,这样能节约你很多的时间

  • 用前先扫一眼:在使用数据之前,需要先抽样扫读一下明细数据,这样能帮你发现大部分明显问题。解决了这 20% 的关键问题后,剩下的数据问题,对结果的影响也就没那么大了

  • 及时报告问题:如果发现数据有问题,需要及时进行沟通上报,因为如果不修复这个问题,问题就一直在,而且很可能会因为这些错误数据,带来有误导性的结论

总结一下:

完美的数据很少见,绝大部分时候我们接触到的数据都是不健全的,我们需要做的,是严格审视自己面对的数据,带着怀疑态度处理,千万不要盲目相信。一些严谨的使用习惯和分析习惯,能帮你避免数据有误带来的大坑。