写在前面
本文的主要受众为:已经工作两年左右的数据分析师,或者有意向进入这个行业的学生。
本文会从统计学的角度,结合具体的业务示例,讲解工作中可能遇到的数据分析误区。
❖
“用数据说话”,已经成为一种流行语。
在很多人的心里,“数据”就代表着“科学”,“科学”就意味着“真相”。“数据不会骗人”,也成了说服别人时常用的口头禅。
事实果真如此吗?
今天,笔者会带着你一探究竟。
数据分析,是建立在统计学的基础之上的。有这么科学的理论基石,数据分析的科学性毋庸置疑。那为什么还会存在被误导的情况呢?首先,让我们来看一下,数据分析的一般过程。
图1.数据分析一般流程
如图1所示,不难发现,数据分析的整个过程都需要人参与,有人参与的地方就会有犯错的可能。接下来我们将围绕上图中的各个环节,从以下五个方面来一起讨论下,可能发生的错误。
需求不匹配
数据分析师的需求来源,通常是业务方。
每个人都有自己的知识背景和认知结构,对同一件事情的理解也就会产生差异。业务方最熟悉业务,最了解产品和用户,数据分析师最熟悉科学的统计分析方法,两者天然就存在沟通上的差异。
数据需求通常是需求方根据自己对业务的理解,针对特定业务场景提出的,是用某种数据来验证或挖掘业务的潜在规律或价值。
也就是说,需求方有自己对业务的理解,TA将需要数据支持的地方,翻译给数据分析师,让数据分析师帮忙拉取相关数据。
且不说这个过程中信息传递可能会存在衰减和丢失,拉取的数据能否真正解决需求方的问题,是否是解决问题的最佳方式,都很难说得清楚。
这就很容易造成需求不匹配的情况,由于翻译带来的信息损耗,导致最终提供的数据和原始问题不匹配。
于是乎,会出现业务方提出多轮的数据需求,反复更改,只为在探索中解决同一个问题。
对此,笔者的建议是:
需求方将自己要解决的问题或疑惑先梳理一下,列出多种可能相关的因素。
然后和数据分析师一起开需求评审会,把各自专业的知识结合起来,共同寻找最佳的解决思路,用数据帮助业务发展。
指标不合理
数据分析的结果通常是各种各样的指标,每个指标都有自己的统计逻辑,反映的事物的某些方面的本质,在进行数据分析时,如果不能选择正确的指标,也可能会走入误区,从而得出错误的结论。
举个例子:
很多时候我们会使用平均值来描述一组数据的集中趋势。
我们在制定业务阈值时,也经常会参考平均值。但是,有些业务场景不适合使用平均值。比如,变化比较大,存在极端值的数据,或者是对最终结果影响不一致的数据。这种时候,你就要考虑其他指标,如加权平均值、百分位数、小数值合并后再求平均值。
采集有偏差
数据采集或提取是最容易出问题的环节,有些问题甚至非常隐蔽,难以发现。如果没有分析要用的数据就需要采集,如果已经有的,则需要从数据仓库中提取出来。
容易出问题的点,主要有以下几个方面:
A
数据样本量不够
我们在分析某些特定的业务或用户行为时,可能存在相对比较冷门,用户使用很少的情况。或者是在提取数据的过程中,增加了很多的限制条件或者多种用户行为或属性进行交叉后,得到很少的用户样本。
这时针对这些用户的分析,就需要格外小心,得出的统计分析结果未必可信。
原因是统计学的基础理论基石之一就是大数定律,只有当数据量达到一定程度后,才能反映出特定的规律。但是样本量多少才算够多,这个没有一个特定的数值,通常只能是具体场景具体分析。
遇到这种情况,笔者建议可以把时间线拉长,这样可能会获得足量的样本。还有一种做法是,将不重要的限定条件去掉,也可以增大样本数。
B
存在选择性偏见或者幸存者偏见
统计学的另一大理论基石,便是中心极限定理。
简单描述下就是,总体样本中,任意一个群体样本的平均值,都会围绕在这个群体的整体平均值周围。
举个生活中的例子,你炖了一锅汤,你想知道汤是不是咸了,你不需要把整锅汤喝掉,只要尝一勺就知道了,因为任意一勺汤的味道都不会差太远。
基于这个原理,我们便可以采用随机抽样的方式来对整体样本中的一个小群体进行分析,得出的结论是会比较接近真实情况的。这并没有错,但是问题出在,你采集数据的过程是否是真的随机。
举个实际业务场景的例子,在视频应用升级期间,通过衡量用户的日活、人均播放量、人均播放时长等指标,来判断用户对新版本的喜欢是否优于老版本。
听上去非常合理,但这里实际就隐藏了选择性偏见,因为新版本发布时,第一批升级上来的用户往往就是最活跃的用户。这批用户在这些指标上,本来表现就是优于一般用户的,因此指标数据更高并不能说明更好。
C
混入脏数据
脏数据是指严重不合理或对于实际业务毫无意义的数据,通常是由程序bug、第三方攻击、网络传输异常等原因造成的。
这种数据的破坏性比较大,可能引发程序报错,对指标的准确度影响也较大。
例如,我们要分析用户对各个类型视频的喜好程度,而用于分析用户播放时长的数据中,如果电影类型混入了较多时长非常大的脏数据,就会造成电影平均播放时长偏高的情况,容易造成对用户喜好的误判。
因此,对脏数据的清洗和处理,也是数据分析师日常工作中非常重要的一部分。
通常我们会采用数据校验的手段,屏蔽掉校验失败的数据。同时,在分析具体业务时,也要针对特定业务,对所使用的数据进行合理性限定,过滤掉异常离群值,来确保拥有比较好的数据质量。
分析有错误
数据分析的过程,可能非常复杂,如果不细心,很有可能会出现数据结果偏差较大的情况。
笔者见过的最夸张的分析语句,是一条SQL里,从t1开始命名,用到了t12,足见这条SQL的复杂程度,如果在这条SQL里有个小错误是非常难发现的。
那我们如何保证分析过程不出错呢?
笔者的建议是:
首先,要保持良好的编码习惯,命名和SQL写法都要规范,适当缩进,关键地方要加注释;
其次,最好先设计好思路,再开始动手,写SQL时先从内层逻辑写起,再嵌套外层;
最后,不论什么数据,在交付之前都要进行验证,可以从其他维度对比或者观察长时间的数据变化趋势等方式来验证数据的合理性和正确性。
推导不严谨
有了分析结果,通常还需要我们基于对业务的理解和对用户行为模式的认知,来推导出最后的结论或总结出规律。
这个过程中,如果逻辑不严谨,也可能会出现误判的情况。我的建议是,尽量多考虑可能存在的影响因素,不要使用过于简单的决策模型,对于推导出的结论要再用数据去验证一下。
举个实际发生的例子:
运营设计了一个方案,用于分析不同优惠方式对用户留存率的影响。
首先将用户随机分为三组,通过给不同组用户推送不同的消息的方式进行试验,A组用户发放限免的优惠券,B组用户发放打折券,C组用户不发放任何券。
结果发现,A组用户的留存率提高最明显,于是采用了A组的方案给所有用户账户中发放限免券,用于提升用户的留存。然而实际上线后,发现整体用户的留存提升并没有试验时明显。
最终统筹分析后发现,原来消息推送能够触达的用户是比较活跃的用户,这些用户对优惠比较敏感,而对所有用户采用A方案后,由于不活跃的用户占大多数,因此活动效果自然也大打折扣了。
今天我们一起探讨了数据分析各个环节中可能存在的引发误导的因素,统计学规律和理论不会错,犯错的是使用他的人。
因此,我们在进行数据分析时,一定要格外小心,错误的数据,披上科学的外衣,就很难分辨了。
-end-