现在很多公司,包括Netflix、Amazon、Uber,都在为了测试新的产品功能而没日没夜地跑着A/B测试。大家都关心哪个功能用户最喜欢、哪个功能最终会拉高收入。数据科学家的角色就是评估这些实验,或者说证实这些测试的结果是可靠的、能够用到决策过程中的。并不是任何p<0.05的实验结果都是可靠的哟!今天的这篇文章我会向大家介绍功效分析(Power Analysis)这一种用来验证测试结果有效性的统计分析方法。简言之,统计功效(Statistical Power)就是真理被发现的可能性。就像电影海报的设计确实能影响人们点击电影,但Netflix能发现这件事的概率是多少?如果统计功效是0.8,那就是说Netflix的实验有80%的概率能发现这件事。它也可以用来估算一个实验所需要的样本大小(也就是说,一个实验如果需要到达一定程度的信度,它需要多大的样本才能让实验检测到效应)。我先给大家铺垫一点理论基础,然后会在Python里向你展示如何做功效分析。要理解功效分析,首先要理解三个相关概念:显著水平、一类错误/二类错误、效应值。在假设检验里,显著水平是当零假设(H0)为真时拒绝零假设的概率。用来说明显著水平的指标就是p值。p值就是当零假设为真时,某个结果以及更极端的结果出现的概率。这样说可能大家容易晕。那我们举个小例子。我们假设硬币是公平的,也就是抛硬币正面朝上的概率应该和背面朝上的概率一样。那我们的研究假设(H1)就是,硬币是公平的。我们的零假设(H0)就是硬币是不公平的。然后你抛了10次硬币,结果出现了8次正面朝上,那么把8次朝上的概率,加上9次朝上(更极端的现象)、10次朝上的概率(更更极端的现象),即为零假设(H0)的概率,也就是拒绝H1的概率,这个就是p值。那相应的,正面朝上的次数是0、1、2的概率和8、9、10也是一样的。所以当这个概率<0.05时,我们就可以认定,硬币不公平的概率小于0.05,因此要拒绝零假设。第二个概念就是一类错误和二类错误。这是我们在做假设检验时在统计上可能会犯的错误类型。当我们拒绝了一个应该为真的零假设时(也就是接受了一个假的H1假设),我们犯的是一类错误(false positive)。当我们没能成功地拒绝一个假的零假设时(也就是拒绝了一个真的H1假设),我们犯的是二类错误(false negative)。验孕棒就是一个超级好的例子。如果你明明没有怀孕,验孕棒告诉你你怀孕了,那就是拒绝了真的零假设(真H0=没有怀孕),这就是一类错误;如果你明明怀孕了,但验孕棒告诉你你没有怀孕,那就是没能拒绝错误的0假设(假H0=没有怀孕),这就是二类错误。最后一个我们要了解的概念就是效应值,也就是在人群中一个现象的可测量的量级。效应值可以用不同的指标来计算,比如:Pearson相关
回归系数
均数比较(比如Cohen’s d)
我们最常见的就是均数比较Cohen’s d. 也就是在被择或研究假设下,实验效应的量,也就是实验中两组间差异的效应。d=(组1均值-组2均值)/误差。这个我们后面还会讲到。好了,现在我们终于讲回统计功效这件事了。一个假设检验的统计功效就是一个测试正确地拒绝了零假设(接受了H1)的概率,当零假设确实为假时。一个实验的统计功效越高就意味着犯二类错误的概率越低。也意味着当实验确实有效应时,这个实验能够检测这个效应的概率越高。下面的公示可以简洁地表达这个概念:Power = Pr(reject H0 | H1 is true) = 1 - Pr(fail to reject H0 | H0 is false)这个公式看起来牛逼哄哄但不怎么看得懂,其实你这样理解就好:统计功效=1-二类错误的概率。为什么说统计功效重要,因为它深深地影响着统计学差异的可靠性。统计功效越高的实验意味着,它观察到的统计学差异(P<0.05)能反映真实情况的可能性越大。还是Netflix的例子,如果说他们的实验做得不好,统计功效太低,最后Netflix认为电影海报设计和人们对电影的点击率没有关系。这个结果显然是错的,而发生这种错误的概率就是二类错误。那从公式中显而易见的是,实验的统计功效越高,二类错误就越低,就意味着我们越能避免这种错误。那这个对于Netflix的个性化推荐决策就非常重要了。所以在设计实验设计的时候,就非常需要注意控制统计功效。那什么是功效分析呢?刚刚我们说了统计功效,主要会受到三个因素的影响:效应值、样本量、显著水平。这三个指标加上统计功效一共是四个指标,这四个指标是互相影响紧密相关的,而功效分析做的就是,当给定其中任意三个指标的大小后,通过功效分析,来推算第四个指标大小。那我们先定义一下这四个指标。显著水平:可以把它看做是发现效应不发生的概率(一般是0.05)
效应值:指的是在被择或研究假设下效应的量,也就是实验中两组间差异的效应。最常见的效应计算方式是Cohen’s d, d=(μ1-μ2)/误差 (也就是组1 均值和组2均值的差除以误差)
功效:真实实验效应发生的概率
样本大小:指的是实验设计中每种条件/组中观测的数目。
一般来说,我们都希望使用尽可能少的样本,然后最大化实验的功效(省钱嘛)。Source:Precision Consulting, LLC讲到这里,大家一定又觉得不知所云了。那我们就举一个例子来解释以下第一种应用场景是什么意思。并且用Python来实现一下。假如你是Amazon的营销数据科学家,你想研究推送广告对用户下单速度的影响。则零假设为H0:μ1-μ2 ≥ 0,μ1是推送广告时用户的下单时间均值,μ2是不推送广告时用户的下单时间均值。假如你拒绝该零假设,那就是μ1< μ2,即看了推送广告以后的下单时间短于不看广告的下单时间。现在我们要设计实验来验证假设,挑选一个由不同个体构成的样本,将他们随机分配到下面两组中:第一组是:用户在搜索某个单品时收到关于该品类的广告推送第二组是:用户在搜索某个单品时没有收到关于该品类的广告推送假设根据过去的经验我们知道下单时间的标准差是1.25s,并认定反应时间超过1s的差值就是巨大的差异。那么问题来了,我们假设推送广告对于缩短下单时间是有影响的,并且希望在95%的置信区间(p<0.05)的情况下有80%的把握检测到这种效应,这时我需要多少个样本呢?在这个例子中我们为独立样本t测试来做分析。Python工具包statsmodels包含了做功效分析所必要的功能。现在我们就想知道,如果我们希望在95%的置信区间(p<0.05)的情况下有80%的把握检测到0.8的实验效应,我们需要多大的样本。我们可以跑一下下面的Python代码,就会得到答案是25,也就是每组需要25个被试。
好啦,现在你理解数据科学家们在跑A/B测试的时候应该如何验证测试结果的有效性了。A/B测试在各大公司,尤其是互联网科技公司中非常常见,几乎每一位数据分析师都要懂A/B测试。理解和会运用这些统计分析方法是做好A/B测试,成为一名数据分析师的基石。现在正值春招季开始,许多公司都已经开始积极招募数据分析人才,如果你想掌握关键的统计方法,并系统学习它们是如何被运用到A/B测试中解决实际的商业问题,就快来报名MarTechApe携手拥有多年A/B测试实战经验及新人教授经验的行业专家,精心打磨推出的《A/B测试实操训练营》吧!用一段真实的A/B测试项目经历为你的能力背书,让你在面试和工作中脱颖而出!
真枪实弹的A/B测试项目实操,真实数据+五大应用案例,从零学会A/B测试的里里外外!
为你建立一个完整的、专业的、深度还原大公司的的A/B测试项目,让你在面试时可以自信展示自己亲自做的案例,成功拿下offer!
从0到100真实操作A/B测试项目的全套流程:数据清洗、数据自动化处理、实验设计、实验执行、结果分析、报告展示。
经历真实工作场景中的、各大互联网科技公司里使用的A/B测试流程,以及适应不同商业场景的各类实验/准实验方法。学会工作中最重要的分析方法!
深度学习A/B测试实战中常见的测试陷阱及避免方法。
牢固掌握公司里A/B测试项目中的实际SQL应用,为A/B测试搭建数据库、清理数据、创建数据集。
学会用Python自动化实现A/B测试,为你的老板提高100%的工作效率!
接受系统的统计训练,打下坚实牢固的统计基础,彻底明白A/B测试的统计原理、分析方法、实验设计方法、抽样准则。
对互联网科技公司的深度剖析和指标介绍,让你自如面对各类面试考验!
各大互联网、科技公司A/B testing面试题解题步骤示范与详细解析。
美国知名电商Wayfair高级商业分析专家
拥有多年电商A/B测试实战经验,及新人教授经验
精通Advanced SQL, Python等数据分析工具
设计推出的A/B测试,为公司带来上千万美元的收入
长按二维码,添加小助手为好友,回复“AB”,即可报名《A/B测试实战训练营》:
熟悉我们的老用户,应该知道我们一直都是实行阶梯价格的,这次也不例外:先到先得、越早报名越优惠(原价$1699美元)。以下价格单位为美元:今年的你,是否能在更好的公司做更优秀的自己?投资自己,全方位提升能力,为自己增添被验证有效的宝藏项目经历!赶快报名吧!
前往“发现”-“看一看”浏览“朋友在看”