Fork me on GitHub

数据科学在实践中常见的数据谎言

以下文章来源于 https://zhuanlan.zhihu.com/p/641471332

导读 互联网的普及使得人类处在一个信息量爆炸的大数据时代,而网上的新闻和信息都存在大量的循坏引用,使得真实可靠性受到质疑。本文将通过分享在实践中遇到的数据乱用滥用的案例,给出避免无效数据分析的手段,帮助大家建立正确看数据的意识,拆穿数据谎言。

全文目录:

  1. 案例分析

  2. 无效数据


分享嘉宾|郭晶 度小满 资深数据科学家

编辑整理|田颖兰 三一重工

出品社区|DataFun


01/案例分析

案例一:医学科普博主分享内容,不吃早餐到底是不是真的有危害的?

网上的帖子总是"危言耸听"的建议一定要吃早餐,不然轻则会发胖,重则会得胆结石等等。在传统的观念里,早餐通常会被狭义的定义为早上吃的这顿饭,而且至少需要是早上十点之前完成。但是,在固定的时间完成早饭的进食是否真的具有如此大的影响?国外对于这个问题做了一系列的研究。英文中,早餐一词为break-fast,它的原始含义是指一天中的第一餐、长时间断食后的进食(这里就出现了定义的不同)。根据研究发现,如果长时间断食,的确对身体是有危害的。接着,这位医学科普博主去翻阅这些年关于是否要吃早餐的态度变化,发现最早提出说不吃早餐会危害健康这个观点的,来自于上个世纪美国某家麦片公司的广告。

人们跨入大数据时代后,人们甄别新闻和广告的真实性时,由于缺少足够的理论判断,一方面只要新闻和广告给出看似是统计的数据时,人们主观上会倾向于相信这个内容是真实的,另一方面,去溯源这些数据的真实性客观上也会耗费大量的时间和精力,这就导致了信息和数据会被轻易的传播和使用。这也正是本次分享这个主题的原因。

案例二:超过80%的牙医都推荐高露洁



这是2007年高露洁的一个广告,但这个广告出现后不久,就被广告管理局下架了,给出的原因是这个广告可能会存在诱导消费的倾向。实际上,高露洁的确是对很多牙医做了访问,但问题出在了,他们给牙医的选择并不是唯一的,而是一个多选题,牙医既可以推荐高露洁也可以推荐佳洁士、oral-B。的确80%的牙医推荐了高露洁,但同时100%的牙医推荐了佳洁士,还有80%的牙医推荐了oral-B。

所以当我们看到数据的时候,我们看到的数据可能只是冰山一角,我们只看到了别人想让我们看到的这部分数据。

案例三:第三代避孕药会增加近一倍的血栓塞风险概率



这个案例是发生在1995年10月,当时英国的医学安全委员会给出了这样一个警告,第三代避孕药会增加近一倍的血栓塞风险概率,导致了公众对于这一款产品的恐慌。

首先观测数据的来源,医学安全委员会确实做了非常严谨的统计,结果显示,使用避孕药之前的人群中,出现这个风险的人数是15个,但是因为第三代避孕药产品的出现,导致人数涨到了25个人,的确风险从10涨到了15,涨了67%。

但从相对值的角度仔细观测一下数据,风险值只是从十万分之十五涨到了十万分之二十五,这就意味着每万人才会增加一例风险。这就意味着风险的绝对值增加了万分之一,如果看这个数字的话其实是微不足道的。

所以换一种表达方式能够传达出来的信息是完全不一样的,但是当时的公众并没有及时的发现,所以导致于在这个避孕药的警告出现的这段时间之内,英国整体的堕胎率上涨了非常多(对整个社会都产生了长期的负面影响)。

案例四:伦敦凶杀案超过纽约



继续来看一个2018年的新闻报道,内容是伦敦的谋杀率超过了纽约。因为在这一年2月的时候,伦敦的谋杀案是15例,而纽约是14例。因为纽约一直是被认为不安全的城市,所以这个新闻出来之后,大家都觉着英国也堕落了,治安情况竟然都要不如纽约了。

但是早在1990年,全年伦敦发生190起凶杀案的时候,同期的纽约则发生了近2300起的凶杀案,在那个年代伦敦就已经被认为是安全城市了,而且伦敦的凶杀率也是一直是远远低于纽约的。可又为什么会出现这个情况呢,主要原因是,新闻报道者只选取了全年一两个月的数据来大做文章。实际上,伦敦的整体结果仍然好于纽约,只是这一两个月出现了偶发性的偏差。而且这两个国家的出厂配置的数据基础完全不一样,一个的进步空间或者说边界效益已经很小了,而另外一个的数据优化上操作性还有很高。所以,"我们看到的数据可能只是冰山一角"。

案例五:法官决策vs算法决策



上述几个案例都是新闻用数据来唬人的例子,但有些时候数据还是很有用的,就比如最近Chat-GPT大火,现在美国一些法官开始用其做案件的决策。

又比如,2011年伦敦骚乱的案件,起始原因是一个黑人居民被白人警察刺杀了,这一事件引发了很多不满,所以导致了一系列的暴乱,也出现了很多顺手牵羊的人。

第一个人罗宾逊,从超市里面顺走了一箱水;第二个人约翰逊,从游戏店里面顺走了很多台游戏机。最后这两个人的判刑结果是完全不一样的,第一个人最终被判了六个月,第二个人没有被判刑。为什么明明第一个人盗窃的物品价值更低,确判了更重的刑呢?原因是第一个人是在案件发生之后的两周之内被审判的,那个时候法官急于向社会起到一个警示的作用,所以判案逻辑更严格。但第二个人已经到了半年之后,民众已经忘记了骚乱到底是什么引起的,所以在当时没有被严格的处理。

后来很多学者一直研究法官本身在决策上是否能够保持一致。结果表明,如果把一个完全一样的案件,改变犯人姓名,或者改变案件的时间地点,或者是改变其它一些细节,让同一个法官去进行决策,他可能会做出和原来完全不一样的决策。另外,如果把同样的案件拿给不同的法官去判,也会出现不同的结果。因为法官的主观因素影响非常大。

但把这些案件拿给机器或者算法去决策,来检验算法是否能做出来比法官更好的裁决,结果是算法的确表现的更好。算法对原本法官定为无罪的案件识别为有罪,经过测算发现可以降低25%的犯罪率(通过对案卷长期追踪之后,发现算法判决有罪的这些案件主犯在之后的一段时间又重复犯罪了)。

算法同样把一部分之前法官定为有罪的犯人判决为无罪,减少40%的拘留人员(在长期的案件追踪来看,这些犯人确实没有再次犯罪了)。这也就意味着,算法可以提前预防犯罪,也可以帮助不需要关押的罪人,减少社会资源的浪费。

但为什么法官会有决策失误?原因是他们会犯现行犯罪误区的错误,也就是说,在决策嫌疑人是应该被释放还是应该被定罪的时候,法官的注意力主要集中在被指控的这个罪行本身,即使嫌疑人的犯罪记录表明他们是惯犯,但如果他们这次被指控的行为是比较轻微的,法官仍然会把他定为轻微罪行而释放掉。而另外一方面,如果当前的被告看起来情节是很严重的,就算他之前的犯罪行为不多,法官也仍然会认为他是一个危害性很大的罪犯而拒绝保释。

所以尽管法官比算法更有经验或者说更有头脑,但是算法在判案的时候会把案件所有有用的信息都考虑进来,从而做出更为一致的判决。

案例六:法官决策和统计定罪



再看一个早期用统计学来辅助支持法官决策的案例。上个世纪60年代一位老妇人在洛杉矶被打劫了,嫌疑人是一个金发白人女性,这个人还有一个同伙,是一个留着胡须的开着一辆黄色汽车的黑人。

后来警察在洛杉矶发现了恰巧有这么一对夫妇具备同样的特征,就把他们逮捕了。因为没有人看到这两个人的真实长相,所以法官就去问了一个数学家,证明他们可能是无辜的概率是多少。我们知道每一个特征的发生都是有一定概率的,综合计算下来,一对夫妇恰巧具备这些特征的概率是12万分之一,那就意味着他们不是嫌疑人的概率只有12万分之一,他们大概率就是犯罪嫌疑人。



**由此引出条件概率的概念,**举一个简单的例子,比如现在知道有一个生物有四条腿,那么它可能是一只狗的概率是多少呢?四条腿的生物非常多,是狗的概率可能只有千分之一。但如果把这两个条件互换一下,先知道有一只狗,那么它是四条腿的概率则是非常大的,只要它不是残疾。

再假如一个家庭有两个孩子,如果已知其中一个是男孩,那么另外一个也是男孩的概率是多少?直觉来看,概率应该是1/2,因为孩子的性别是随机的。但是如果把可能性的组合列出来,这两个孩子可能的性别组合分别是哥哥弟弟、哥哥妹妹、姐姐弟弟和姐姐妹妹,现在知道其中一个是男孩,那么就意味着肯定不是姐姐妹妹的这个组合,那从剩下的三个组合里面,得到另外一个是男孩只有哥哥弟弟的这个组合,概率其实是1/3,而不是1/2。

抽象的来看,条件概率是指假如知道B已经发生了,那么A会发生的概率是多少。这个概率和已经先知道A会发生,那么B发生的概率是不相等的。这个差别在于A和B它们本身发生的概率是不相等的。



再来思考一下这样一个问题,如果被测定为阳性,那么真实患病的概率是多少?

假如人群中某种疾病的患病率是1%,其他人是健康的,那么随机挑出来的一个人,他是健康的概率就是99%,得病的概率就是1%。假设检测出错的概率是1%,也就是对健康的人错误显示为阳性的概率就是1%。健康人正确检测为阴性的概率是99%。得病的人能够正确检测为阳性的概率是99%,得病的人被错误检测为阴性的概率是1%。

一个人健康且能被正确检测为阴性的概率是多少呢?应该用气健康的概率乘以他在健康的情况下被正确检测的概率,也就是99%乘99%,结果是98%。类似的,病人能被正确检测出阳性的概率,是得病的概率乘以他在得病情况下正确检测的概率,也就是1%乘99%,结果是0.99%。

而假阳性的概率是健康的概率乘以健康的状态下被错误检测的概率,也就是99%乘以1%,结果是0.99%。假阴性的概率则是得病的概率乘以检测失误的概率,也就是1%乘1%,结果是0.01%。

所以最终检测结果显示为阳性的概率,是检测为阳性的健康人加上检测为阳性的病人的概率,结果为1.98%。由此可以得到,当被检测为阳性时,真实得病的概率,是患病被正确检测出来的概率,除以检测为阳性的概率,也就是0.99除以1.98,结果为50%。这意味着检测准确性非常高的测试仍然会失误,判定为阳性的情况下仍然有很高的概率没有患病。



再回过头来看一下前面的案例,用数学统计来决策那对夫妇是不是真的罪犯,现在把条件换一下,假如我们知道这个城市中有十对夫妇都具备这样的特征,那么恰巧是这对夫妇的概率就变成了1/10。按之前的算法他们无辜的概率可能只是12万分之一,但现在他们无辜的概率变成了90%,这是完全不同的结论。

案例七:问卷调查真的有效吗?



在真实的业务中,当我们对用户不太了解的时候,或者说对整个大盘的现状非常迷茫的时候,我们希望通过问卷的方式来解决内心的一些疑惑,但是这真的能更好的解释现状吗?



这是我们真实业务场景的一个问题,度小满是一家做信贷的公司,主营业务是贷款服务。

当用户有用钱的需求时会来申请我们的贷款服务,我们的风控会决策给他多少的额度和定价。我们非常希望知道这个用户在外部的竞品那里能够获得的额度和定价,这样能够帮助我们更好的实现竞争。

用条件概率来算一下,在这个场景下,如果向用户收集的问题是,他在外部竞品有没有更好的offer(额度和价格)?我们需要计算在收集回来的答案中,有多少是真实的。

假设有40%的用户能够在我们的竞品中拿到更好的offer。且在用户真的有一个更好offer的情况下,他大概率不会对我们撒谎,但如果他并没有更好的offer,那么可能大概率会倾向于对我们撒谎,我们先假设这个撒谎的比例是80%(大部分人希望能够在我们这获得一个更优的对待,所以他们会先撒谎,试图拿这个条件来跟我们"谈判")。

用同样的计算逻辑,最后收集回来的问卷中会回答有更好offer的比例就是:用户真的在外部有的概率,加上用户没有但是他谎称他有的概率,结果是88%;也就是88%的人会回答我们不如外部公司。

那真实的我们不如其他公司的概率是多少呢?是40%除以88%, 45%。这就意味着,88%的用户会回答我们给他的offer不如其他公司,但真实的是只有一半的比例我们确实不如其他公司。



因此尽管问卷调查的确在某些场景可以提供一些定性的结论,但如果想要从定量的角度分析问卷的结果,可能会造成很多的资源浪费。比如刚才的这个例子当只有一半的人回答是真实的,另外一半的人回答是虚假的时候,假如我们把资源浪费在这一半虚假的回答上面的话,会造成很大的资源浪费,同时也会增加坏人的逾期风险,收益和成本可能是完全不对等的。

案例八:比较两家航空公司的运营效率



左边这个图是两家航空公司在不同机场的延误率,最终的结果显示阿拉斯加航空的整体延误率是13%,西部航空的延误率是10%,是否可以得出结论,西部航空的运营效率更高呢?因为他们的整体延误率更低。

但是观测各个分组的表现,发现阿拉斯加航空不管是在哪一个机场,延误率都比西部航空更低,为什么会出现最终整体的这个结果反过来了呢?**这其实是一个辛普森悖论现象,**因为西部航空的大部分航线都分布在凤凰城这个机场,这个机场的延误率又是最低的,因此拉低了最终整体的延误率。

也就是当我们已知



,无法推导出



,因为我们不知道分母里每个成分占比是多少。



辛普森悖论现象也经常发生在生活和工作中。比如当讨论北京市2023年人均收入(所有人对数据异常敏感的时候),网络上的评论大多都是"我到底被谁给平均了"、"收入中位数是多少";这是因为有钱人的占比非常低,但他们的收入绝对值是远远高于正常水平的。

如果数据是一个正态分布,中位数、平均数和众数都会位于正中,但如果数据是右偏分布,那么平均数是远远高于中位数的。收入就是一个右偏分布,这才会导致"平均收入"远远高于大部分人真实的收入水平。

第二个场景发生在AB test里面。经常会犯的一个错误是,拿非常小的流量做的测试推广到全流量上,或者是用某一个渠道上做的实验最后把结果用在了另外一个渠道上,导致最终我们想要生效的那个渠道的结果和预期完全不一样。主要原因是,这两个群体的用户组成完全不同。

当前各个公司普遍存在的一个问题是,没有一个科学的AB实验平台,因为AB实验平台需要非常多工程架构上的设计和数据统计知识支撑,由于真实业务的复杂性,很多公司连最基本的随机流量分配的能力可能都是没有具备的。



辛普森悖论在模型训练和指标管理方面也可以给我们带来一些启示。比如模型训练中,假设模型训练的特征只有影片的类型和影片的来源,训练目标是点击率。

模型1得出的结论是,内地的恐怖片点击率高于香港的文艺片。假如这个时候把性别的特征加入到模型中,结果是完全不一样的。在男性群体中,香港的文艺片的点击率是高于内地恐怖片的点击率的。

在企业的指标管理中,假如最终的KPI只有用户的留存率,去年留存率是53%,今年留存率提高了57%,是不是意味着这个团队的经营效率变高了?我们细分客群来看,会发现在任何一个客群上留存率都没有提升,所以单一的指标会带来错误的结论。因为单一的指标非常tricky,比如可以选择不获客,也就是放弃新客户,这种情况下,它的留存率就可以从原本的53%直接提升到60%。



接下来讨论幸存者偏差的问题。

比如在春运期间的火车站候车厅,随机调查有多少人成功的买到了火车票,这个比例是极高的,因为如果没有买到火车票就不会出现在候车厅。又比如基金大盘,看起来整体的涨幅非常不错,这是因为涨幅最差的那些基金直接就退市了,我们看到的只是这已经存活下来的部分。卖降落伞的电商店铺为什么都是好评,因为一般出现事故的客户已经无法给出差评了。

在工作中,企业经常对用户做一些访谈,了解用户可能会有哪些被企业忽略的需求,比如在风控的视角里面,用户在过去的经营里一直是亏损的状态,导致风控系统判定他短期内存在风险的可能性极高。

但调研这个用户发现,他学历不错,有车有房,家庭也很稳定,生意模式也非常的明确,所以UER们认为他亏损只是短期内的事情,在未来的一段时间内,他是会成功的。

但放眼大环境,做生意的人千千万,符合家庭稳定、高学历、有明确经营思路条件的人也千千万,但最终能够成功,却只有非常少的一部分。

所以我们能看到的那些具备一定特质而且还成功的人,只是因为他们是一个个例,而不是普遍现象。毕竟如果是普遍现象,大家早就见怪不怪懒得提及了。

相关性与因果性



接下来看一个案例,一个人能喝多少和他使用的容器是不是相关的。

有研究员观测到,学生喝啤酒时使用的容器体积和啤酒的消费量之间有很大的相关性,喝扎啤就会比用杯子时喝得更多。因此得出了一个结论,为了让学生少喝酒就应该禁止售卖扎啤。

这个建议看起来挺荒谬,一个人的酒量会因为容器大小的改变而改变吗?今天点扎啤可能仅仅只是因为他今天想喝的更多而已,这个其实是一个典型的把相关性当成了因果性的一个例子。



进一步来看一下什么是因果。

随着运动时间的增加,胆固醇的水平是下降的,这个结论对不同年龄段的人都是完全成立的,但是如果把年龄这一条线给抽掉,那么最初始的数据分布会得出一个完全不同的结论,即随着运动时间的拉长,人的胆固醇水平也是越来越高的,为什么会出现这个问题,根本原因还是辛普森悖论。其实大部分情况下,拿到的数据都是右侧图的形式,需要在右边这个图中发现像年龄这样的特征。

类似的还有上图中下面的科技之船。这张图里面的红线代表的是美国的科技支出,黑线代表自杀的人数,会发现这两条线的走势几乎完全一致,相关系数达到了0.99,但这意味着增加科技的支出会导致自杀的人数增加吗?这两条线走势一样,其实仅仅是一个巧合,并不具备因果关系。

02/无效数据



最后再分享几个日常分析中可能会碰到的无效数据分析的案例。

例如,企业想要去研究用户早期行为和后期留存率之间的关系,早期是否产生复购行为,会不会对后期的留存率产生影响。来看数据解读的两条结论。

第一条是"首笔期数内没有复购的用户,一年后的留存率会低于大盘和复购用户(左边图表中红色两行与绿色两行的对比)。

第二条是"对于分了12期数的用户,如果他们在分期的期间内没有复购,那么他一年之后的留存率会很差,接近0%"。

乍一看可能会觉得这两条结论没有什么问题,因为数据完全是符合的。但是这里面其实存在着之前提过的幸存者偏差的问题。

这两句话表达的含非常像,实际就是对比了两类用户,第一类用户是一定时间内和"我"产生了联系(复购)的用户,第二类用户是一定时间内和我没有建立联系(没有复购)的用户,然后得出的结论是,"第二类用户和我失去联系的概率是100%";潜台词就是,流失的用户最后会流失。这本质上和此前提到的"在火车上调查有没有买到火车票的例子"有什么区别呢;第二类用户在一定时间内和我没有建立联系,所以失去他的概率当然就是100%了,所以这就是典型的幸存者偏差的案例。

下面来看给出的三个建议。

前两条建议本质上不存在语句漏洞,但这俩个建议跟要分析的主题没有任何的关系,这两句建议放在任何的场景之下都是成立的。

再看第三个建议,"如果用户第一次分期选的是三期和六期,在结清之前没有复购,未来的流失概率是非常高的,因此需要在用户结清账户之前让用户再次产生一笔新的分期"。我们仔细想想,用户未来会不会流失,不是因为他当前有没有流失,这只是不同时间下的相似结果而已;喝的越多是因为喝的是扎啤吗?结果喝的多只是因为想要喝的多;用户未来流失是因为当前看起来快要流失了吗?假设我希望自己未来的收入能够达到10万每个月,那我要做的是让我现在或者接下来几个月内的收入达到5万块钱每个月吗?

最后分享一下我们在工作中应该怎样去避免这种无效的数据分析。



首先,要保持challenge意识,当拿到一个数据的时候,先要问问这个数据是基于什么条件统计出来的,它的样本是不是足够有代表性,是不是能够反映整体等等。

第二点是个人看来可能会更实用的。也就是打算"分析"什么的时候都可以先想一下,所有分析一定是为了解决一个问题,那么我的分析结果能能否帮助我解决该问题?



再看之前的案例,我们看到了某些用户具备非常好的特征,所以希望能够对这些用户有所优待。我们应该先来思考两个问题:具备这样特征的人到底有多少,如果对这些人去做我想要的操作,那么能够获得多少收益,又会有多少风险,收益大于风险的边界概率是多少?

这就是我们最开始学习期望的计算方式,收益乘以收益发生的概率减去风险乘以风险概率,才是最终能够获得的结果。

在最后分享的案例中,我们发现有可能有一个数据和最终希望提升的留存率是强相关的。但我们知道的是,它并不是100%的能够准确的去准确预测,假设它的预测效果是50%,也就是虽然有50%的可能性能够预测准,但同样有50%的可能性是预测不准,预测准的部分一定可以带来收益,但是预测不准的部分则会带来额外的经营成本或风险。同样的,也应该做一个准确的测算,通过这样的分析结果会对现有的经营策略产生什么样的变化,额外带来的收益是多少。只有把数据分析结论能否真正提升业务效果这一点落实,才能警惕幸存者偏差、避免因果混淆等错误,让数据分析的结论更有说服力。

以上就是本次分享的内容,谢谢大家。



▌2023数据智能创新与实践大会

数据架构/数据效能/智能应用/算法创新......

4大体系,专业解构数据智能

16个主题论坛,覆盖当下热点与趋势

70+演讲,兼具创新与最佳实践

1000+专业观众,内行人的技术盛会

点击下方链接了解详情:

DataFunCon2023(北京站):数据智能创新与实践大会


本文地址:https://www.6aiq.com/article/1688467978491
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出