30 | 统计意义(上):如何通过显著性检验,判断你的A/B测试结果是不是巧合?
下载APP
关闭
渠道合作
推荐作者
30 | 统计意义(上):如何通过显著性检验,判断你的A/B测试结果是不是巧合?
2019-02-22 黄申 来自北京
《程序员的数学基础课》
课程介绍
讲述:黄申
时长11:04大小10.11M
你好,我是黄申,今天我们来聊聊统计意义和显著性检验。
之前我们已经讨论了几种不同的机器学习算法,包括朴素贝叶斯分类、概率语言模型、决策树等等。不同的方法和算法会产生不同的效果。在很多实际应用中,我们希望能够量化这种效果,并依据相关的数据进行决策。
为了使这种量化尽可能准确、客观,现在的互联网公司通常是根据用户的在线行为来评估算法,并比较同类算法的表现,以此来选择相应的算法。在线测试有一个很大的挑战,那就是如何排除非测试因素的干扰。
从图中可以看出,自 2016 年 1 月 12 日开始,转化率曲线的趋势发生了明显的变化。假如说这天恰好上线了一个新版的技术方案 A,那么转化率上涨一定是新方案导致的吗?不一定吧?很有可能,1 月 12 日有个大型的促销,使得价格有大幅下降,或者有个和大型企业的合作引入了很多优质顾客等,原因有非常多。如果我们取消 12 日上线的技术方案 A,然后用虚线表示在这种情况下的转化率曲线,这个时候得到了另一张图。
从图中可以发现,不用方案 A,反而获得了更好的转化率表现,所以,简单地使用在线测试的结果往往会导致错误的结论,我们需要一个更健壮的测试方法,A/B 测试。
A/B 测试,简单来说,就是为同一个目标制定两个或多个方案,让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下每个部分用户的使用情况,看哪个方案产生的结果更好。这也意味着,通过 A/B 测试的方式,我们可以拿到使用多个不同方法之后所产生的多组结果,用于对比。
问题来了,假设我们手头上有几组不同的结果,每组对应一个方案,包含了最近 30 天以来每天的转化率,如何判断哪个方案的效果更好呢?你可能会想,对每一组的 30 个数值取平均数,看看谁的均值大不就好了?但是,这真的就够了吗?
假设有两组结果需要比较,每一组都有 5 个数据,而且这两组都符合正态分布。我用一张图画一下这两个正态分布之间的关系。
从这张图可以看出,左边的正态分布 A 均值μ1 比较小,右侧的正态分布 B 均值μ2 比较大。可是,如果我们无法观测到 A 和 B 这两个分布的全部,而只根据这两个分布的采样数据来做判断,会发生什么情况?我们很有可能会得出错误的结论。
比如说,在这张图的采样中,红色的点表示 B 的采样,它们都是来自 B 分布的左侧,而蓝色的点表示 A 的采样,它们都是来自 A 分布的右侧。如果我们仅仅根据这两组采样数据的均值来判断,很可能会得出“B 分布的均值小于 A 分布均值”这样的错误结论。
A/B 测试面临的就是这样的问题。我们所得到的在线测试结果,实际上只是一种采样。所以我们不能简单地根据每个组的平均值,来判断哪个组更优。那有没有更科学的办法呢?在统计学中,有一套成熟的系统和对应的方法,今天我们就来讲讲这种方法。
为了让你能够充分理解这个,我先介绍几个基本概念,显著性差异、统计假设检验和显著性检验、以及 P 值。
显著性差异
从刚刚那两张正态分布图,我们可以分析得出,两组数据之间的差异可能由两个原因引起。
第一,两个分布之间的差异。假设 A 分布的均值小于 B 分布,而两者的方差一致,那么 A 分布随机产生的数据有更高的概率小于 B 分布随机产生的数据。第二,采样引起的差异,也就是说采样数据不能完全体现整体的数据分布。我在之前的图中,用来自 A、B 两组的 10 个数据展示了采样所导致的误差。
如果差异是第一个原因导致的,在统计学中我们就认为这两组“有显著性差异”。如果差异是第二种原因导致的,我们就认为这两组“无显著性差异”。可以看出来,显著性差异(Significant Difference),其实就是研究多组数据之间的差异是由于不同的数据分布导致的呢,还是由于采样的误差导致的呢?通常,我们也把“具有显著性差异”,称为“差异具有统计意义”或者“差异具有显著性”。
这里你还需要注意“差异具有显著性”和“具有显著差异”的区别。如前所说,“差异具有显著性“表示不同的组很可能来自不同的数据分布,也就是说多个组的数据来自同一分布的可能性非常小。而“具有显著差异”,是指差异的幅度很大,比如相差 100 倍。
不过,差异的显著性和显著差异没有必然联系。举两个例子,比如说,两个不同的数据分布,它们的均值分别是 1 和 1.2,这两个均值相差的绝对值很小,也就是没有显著差异,但是由于它们源自不同的数据分布,所以差异是具有显著性的。再比如说,来自同一个数据分布的两个采样,它们的均值分别是 1 和 100,具有显著的差异,但是差异没有显著性。
统计假设检验和显著性检验
统计假设检验是指事先对随机变量的参数或总体分布作出一个假设,然后利用样本信息来判断这个假设是否合理。在统计学上,我们称这种假设为虚无假设(Null Hypothesis),也叫原假设或零假设,通常记作 H0。而和虚无假设对立的假设,我们称为对立假设(Alternative Hypothesis),通常记作 H1。也就是说,如果证明虚无假设不成立,那么就可以推出对立假设成立。
统计假设检验的具体步骤是,先认为原假设成立,计算其会导致什么结果。若在单次实验中产生了小概率的事件,则拒绝原假设 H0,并接受对立假设 H1。若不会产生小概率的事件,则不能拒绝原假设 H0,从而接受它。因此,统计学中的假设是否成立,并不像逻辑数学中的绝对“真”或“假”,而是需要从概率的角度出发来看。
那么,问题来了,多少才算是“小概率”呢?按照业界的约定俗成,通常我们把概率不超过 0.05 的事件称为“小概率事件”。当然,根据具体的应用,偶尔也会取 0.1 或 0.01 等。在假设检验中,我们把这个概率记为α,并称它为显著性水平。
显著性检验是统计假设检验的一种,顾名思义,它可以帮助我们判断多组数据之间的差异,是采样导致的“偶然”,还是由于不同的数据分布导致的“必然“。当然,这里的“偶然”和“必然”都是相对的,和显著性水平α有关。显著性检验的假设是,多个数据分布之间没有差异。如果样本发生的概率小于显著性水平α,证明小概率事件发生了,所以拒绝原假设,也就是说认为多个分布之间有差异。否则呢,接受原假设,认为多个分布之间没有差异。换句话说,显著性水平α即为拒绝原假设的标准。
P 值
既然已经定义了显著性检验和显著性水平,那么我们如何为多组数据计算它们之间差异的显著性呢?我们可以使用 P 值(P-value)。P 值中的 P 代表 Probability,就是当 H0 假设为真时,样本出现的概率,或者换句话说,其实就是我们所观测到的样本数据符合原假设 H0 的可能性有多大。
如果 P 值很小,说明观测值与假设 H0 的期望值有很大的偏离,H0 发生的概率很小,我们有理由拒绝原假设,并接受对立假设。P 值越小,表明结果越显著,我们越有信心拒绝原假设。反之,说明观测值与假设 H0 的期望值很接近,我们没有理由拒绝 H0。
在显著性检验中,原假设认为多个分组内的数据来自同一个数据分布,如果 P 值足够小,我们就可以拒绝原假设,认为多个分组内的数据来自不同的数据分布,它们之间存在显著性的差异。所以说,只要能计算出 P 值,我们就能把 P 值和显著性水平α进行比较,从而决定是否接受原假设。
总结
今天我从互联网公司常见的 A/B 测试实验入手,给你讲解了一个更科学的方法来比较不同算法的效果,它就是统计学里的差异显著性检验。这个方法包含了一些你平时可能不太接触的概念,你首先需要理解显著性差异、统计假设检验和 P 值。其中最为重要的就是显著性差异的概念,因为这是差异显著性检验区别于简单的平均值方法的关键。
为了便于你的记忆,我这里再用一个形象的比喻来带你复习一遍。
儿子考了 90 分,我问他:“你比班上平均分高多少?”如果他回答:“我不太确定,我只看到了周围几个人的分数,我猜大概高出了 10 分吧”,那么说明他对“自己分数比平均分高出 10 分”这个假设信心不足,结论有较大的概率是错误的,所以即使可能高了 10 分,我也高兴不起来。
如果他回答:“老师说了,班级平均分是 88 分,我比平均分高出了 2 分”,那我就很开心了,因为老师掌握了全局的信息,她说的话让儿子对“自己分数比平均分高出 2 分”的假设是非常有信心的。即使只高出了 2 分,但是结论有很大的概率是正确的。
理解了概念之后,我们就要进入实战环节了。其实显著性检验的具体方法有很多,例如方差分析(F 检验)、t 检验、卡方检验等等。不同的方法计算 P 值的方法也不同,在下一节,我会用 A/B 测试的案例来详细解释。
思考题
在对比两组数据的差异时,如果不断增加采样次数,也就是样本的数量,使用平均值和使用显著性检验这两者的结论,会不会逐渐变得一致?
欢迎留言和我分享,也欢迎你在留言区写下今天的学习笔记。你可以点击“请朋友读”,把今天的内容分享给你的好友,和他一起精进。
分享给需要的人,Ta购买本课程,你将得20元
生成海报并分享
赞 11
提建议
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
上一篇
29 | 归一化和标准化:各种特征如何综合才是最合理的?
下一篇
31 | 统计意义(下):如何通过显著性检验,判断你的A/B测试结果是不是巧合?
精选留言(12)
- yaya2019-02-22我觉得会逐渐变得一致的。样本数量越多,样本均值应该越来越接近于总体均值
作者回复: 是的
共 3 条评论10 - lianlian2019-02-22老师早上好啊!在“总结”的上一段写着“如果P值足够小,我们就可以拒绝原假设,认为多个分组内的数据来自不同的数据分布,它们之间存在显著性的差异。”这里,我的理解是,“存在差异的显著性”。请问我的理解对吗?
作者回复: 是的👌
共 2 条评论4 - Ronnyz2019-10-15样本越大,得到的结果会越趋于平均值,和显著性检验的结论会变得一致。 在假设检验中,当h0成立,而接受h1时,弃真。当h0不成立,而接受h0时,存伪。
作者回复: 很好的总结,弃真和存伪就是我们常说的type1 error和type2 error
共 2 条评论2 - Paul Shan2019-09-16思考题 样本数量增加,如果是正态分布,均值测量会越来越可靠,其差异也会越来越精确,但是仅仅靠均值无法完整描述分布,还要考虑方差。如果不是正态分布,情况就会更为复杂。
作者回复: 是的👍
2 - Paul Shan2019-09-16显著性差异 差异具有显著性表示差异的原因是分布差异 具有显著性差异表示差异的绝对值比较大 统计假设检验,先假设,然后看有没有反面证据(在假设条件下的小概率事件),如果有就拒绝原假设,接受对立假设。如果没有就接受原假设。这里拒绝原假设的论证手法和反证法类似。 P值就是在给定假设,观察值发生的概率。这个条件概率越大,假设越可靠。展开
作者回复: 确切的说,P值是指在空假设(原假设)成立的情况下,给定值发生的概率,如果越小,证明发生的概率越小,越具有偶然性,所以可以更有信心的拒绝空假设。
2 - 郭俊杰2020-05-22学完了,基本都懂了,thanks.2
- 罗耀龙@坐忘2020-04-22茶艺师学编程 思考题:在对比两组数据的差异时,如果不断增加采样次数,也就是样本的数量,使用平均值和使用显著性检验这两者的结论,会不会逐渐变得一致? 增加采集次数(样本数量)所得出的平均值,是能趋近整体的平均值……问题是在于平均值能描述出数据本身是如何分布吗? 因此我觉得在均值层面,增加采集次数的平均值和使用显著性检验得出的结论趋近相同,在整体来看前者只是后者结论的一部分。展开
作者回复: 如果两者都是正态分布,可以这么认为
1 - 拉普达2020-03-29根据辛钦大数定理,结果会变得一致1
- 0139232022-09-05 来自美国学完了,谢谢老师!
作者回复: 很高兴对你有所帮助
- 2012019042021-07-13前面的概念有点抽象,如果先讲儿子考试的例子会更容易理解一些,这就是观测到的不一定准确,还需要一个指标来衡量观测值的可相信程度。
作者回复: 感谢建议,我们后面看下如何调整一下内容
- 建强2020-07-12我的理解是分为两种情况: 第一种,如果两组数据来自同一分布,那么随着样本数的增加,两组数的均值分逐渐靠近,使用显著性检验的P值也会一致,则两者得到的结论是一致的; 第二种,如果两组数据来自不同的分布,随着样本数的增加,可能两组数的均值也会逐渐靠近,但两组数据使用显著性检验的P值肯定会明显不一致,因此不同分布的情况下,两者的结论可能是不一致的。展开
作者回复: 第一种,P值会增大,表示两者不同更有可能是采样的偶然性产生。 第二种,P值会减少,表示两者的不同由偶然性产生的可能性很小,两者应该是来自不同的数据分布
- Paul Shan2019-09-17(1-P)值是我们拒绝H0的信心指数,一般当P小于0.05,也就是1-P 大于0.95,我们就拒绝H0,反之我们就接受H0.