不要被数据蒙蔽你的眼睛

01-你看的房价上涨是真的么?

21世纪的当代,有购房需求的同胞们不可避免的会添加一些房产中介的微信,也因此常常会收到相关房屋价格变化的信息。

如 「据最新二手房市场交易数据显示,我市11月份二手房成交均价比12月份上涨了7.7%,目前房市大热,大家走过路过不要错过。」

细心的同学可能会对数据的来源有所较真,想到其底层数据有造假的可能。于是乎,自己按照对应的统计网站进行了一稿计算。结果没想到的是,统计内容竟然是真实的。于是乎,不得不认可文章中的说法。毕竟如下表格所示的「经过验证」的数据,怎么着也不像是假的呀。

                    

 那么该地区的房价是否真的上涨了呢? 绝大多数尤其是不了解统计的人看了肯定会说当然涨了。然而事实上,市中心和郊区房屋均价 都降低了3000 元/平方米。为什么会出现这种情况呢?因为该数据中存在 「辛普森悖论」。


02-什么是辛普森悖论

房屋价格不可避免的受区域影响极大,郊区的房屋均价和市区的房屋均价不可同日而语。下面将该地区的房屋成交均价按照地域划分进行展示:

从上表可以看出,汇总得到的「真实」的房屋成交均价,在分组后呈现完全相反的结果。其中市区和郊区的房屋成交均价11月相比较12月而言,均下降3000元。 而汇总的均价,反而上涨了2400 元。这种极度违背我们感官的现象就是 「辛普森悖论」。

辛普森悖论是于1951年由”E.H.辛普森“提出。

在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。

辛普森悖论并不是一种罕见的现象,相反,其在现实生活中非常普遍,特别是在社会科学和医学中。如新入学的学生是否受到性别歧视,新开发的药物对疾病是否有效等。了解辛普森悖论,能帮助我们避免陷入数据的陷阱,从而做出正确的决策。

03-为什么会发生辛普森悖论

从数据角度分析如下。下图的X轴表示套数,Y轴表示成交总价,则橙色点表示的是11月成交均价,蓝色点表示的是12月成交均价。最右上角的两个点分别是由子向量(市区和郊区)相加得到。其中成交均价 = 房屋总价/套数 即每个向量的「斜率」。

 通过上图我们可以得到抽象公式:

 即子部分的比例大小,和汇总后的整体大小无直接关系。

04-如何避免辛普森悖论

数据分析作为和数据打交道最频繁的工作之一,如何有效避免「辛普森悖论」成为每一个数据分析从业人员的一个重点,也是难点。

避免辛普森悖论的关键是要有效识别不同分组对事物全貌的影响。

  • 数据陷阱意识提高。在做数据分析时,除了做整体的汇总分析外,也需要增加个体或者分组的分析。两种维度的分析都是必要的。如果两种维度分析得到的结论一致,那么或许可以认可数据结果。若是两种数据得出的结论不一致,那么一定要警惕是否陷入了数据陷阱。
  • 业务敏感性提升。不同分组下的数据结果可能是完全不同的。因此准确的用户或者行为分组极为重要。而如何能做到准确的用户分组呢,首先需要沉入业务,深刻理解业务。如性别分组可能会对药物实验数据产生完全不同的统计效果,学院分组可能会对录取数据产生完全不同的效果,试卷类型分组可能会对通过率产生完全不同的统计效果等。
  • 宏观数据无效性。 很多业务场景下,整体的统计效果反而缺乏参考意义,一定要细分到具体维度,如设备类型,地域,价格,渠道等等维度在进行比对。
  • 针对性系数修正。在抽样数据统计过程中,如果发现确实存在辛普森悖论的情况。可以考虑调整比例系数的方式,以消除分组影响。

05-避免辛普森悖论举例

大家在日常工作中,可能会遇到要分析 某APP升级后UI在不同操作系统下的转化率提升情况。

1. 如下图所示,如果仅仅是从整体维度看,可能会产生安卓用户的转化率高于IOS用户的错误。

2.但是当我们考虑到该款APP作为一款PDF文档阅读软件,手机和平板作为日常使用场景的区分极为关键。我们就会对转化率进行新一层解读。

3. 反过来,我们可以发现整体算法中,分组权重设置的是不合理的。我们可以以总数的最大值4000(Android平板)作为基数,以此可以得到Android手机,IOS手机等权重系数分别是4,2.29,1,5.33。在此基础上,重新计算转化率的对比情况。

 4. 如下图所示,引入权重系数后,显然IOS用户的转化率是高于Android用户的。

综上,在实际的转化率分析中,我们除了要不断的提高分析方法外,还必须充分考虑对统计结果有影响的其他因素。必须警惕「辛普森悖论」的发生。与此同时,进一步增加对诸如「APPU」「ARPPU」这样看似相似实际上有很大差异的指标的应用的理解。

如觉得文章还对胃口,欢迎关注公众号“好奇分析”,更多有关数据分析的原创精彩内容每周更新。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Cordova应用程序中捕获实时视频并添加蒙版,您可以使用以下步骤: 1. 安装cordova-plugin-media-capture插件,以便您可以从应用程序中调用设备摄像头: ``` cordova plugin add cordova-plugin-media-capture ``` 2. 创建一个Cordova页面,该页面包含一个视频元素和一个蒙版元素,蒙版元素应该在视频元素上方。以下是一个简单的示例: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Cordova Real-Time Masking Example</title> <style> #video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } #mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: none; } </style> </head> <body> <video id="video" autoplay></video> <div id="mask"></div> <script src="cordova.js"></script> <script> document.addEventListener('deviceready', function() { var video = document.getElementById('video'); var mask = document.getElementById('mask'); var constraints = { audio: false, video: true }; navigator.mediaDevices.getUserMedia(constraints) .then(function(stream) { video.srcObject = stream; video.onloadedmetadata = function(e) { video.play(); }; }) .catch(function(err) { console.log(err.name + ": " + err.message); }); video.addEventListener('play', function() { var canvas = document.createElement('canvas'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; var ctx = canvas.getContext('2d'); setInterval(function() { ctx.drawImage(video, 0, 0, canvas.width, canvas.height); ctx.fillStyle = 'rgba(0, 0, 0, 0.5)'; ctx.fillRect(0, 0, canvas.width, canvas.height); mask.style.display = 'block'; mask.style.backgroundImage = 'url(' + canvas.toDataURL() + ')'; }, 100); }, false); }, false); </script> </body> </html> ``` 3. 这段代码会在页面加载时请求用户许可使用摄像头,并在蒙版元素上方显示视频流。代码使用setInterval()函数每隔100毫秒来更新蒙版元素,使其显示当前捕获的视频帧,并添加一个半透明的黑色蒙版。您可以根据需要修改蒙版的颜色和透明度。 希望这可以帮助您实现您的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值