2 A/B测试介绍
公司希望测试新特性或某个网页页面的版本时, 通常使用的方法叫做 A/B 测试 , 这种方法的原理是一些用户作为, 控制组会看到页面旧版本 , 而另一组用户作为试验组 , 会看到页面新版本
根据两组的反馈 , 我们可以决定新版本是否更优或是否应当发布
这实际上是运用 , 假设检验 其中零假设 , 表示新版本不会优于旧版本 , 甚至更差 而备择假设 , 表示新版本优于旧版本
大量公司使用 A/B 测试 测试特性 , 布局以及颜色的变化 增加测试用户兴趣的衡量标准 , 例如你会运行 A/B 测试 了解网址登录页面的新形象 , 增加访问量的可能性, 邮件列表的订阅量 或者你运行 A/B 测试 , 了解向购物网站提供个性化建议是否可以增加购买量
注意:
A/B 测试有利于 , 测试某个页面上新特性或特性版本是否更优 , 但是并不适用于任何事情
例如 A/B 测试可以告诉你某个网址对一些产品排名的最佳方法 , 但是并不会说明增加两个其他产品 , 是否真正有利于这个网址 , 因此测试现有用户的全新体验时 , 由于改变好恶或新奇效应等因素 这种测试也不总是好的 , 现有用户可能倾向于旧版本 , 仅仅因为他们不喜欢变化 即使变化最终是有利的 , 或者 他们可能倾向于新版本 , 因为即使不会变好 他们也会期待变化 , 除此以外 , 其他很多因素可能会对 A/B 测试结果造成偏见 , 你将会在这个课程中了解更多内容
总结:
A / B测试用于通过运行实验来测试网页上的更改,其中控件组看到旧版本,而实验组看到新版本。
然后选择一个度量来衡量每个组中用户的参与度。然后使用这些结果判断一个版本是否比另一个版本更有效。A / B测试非常类似于假设检验,具有以下假设:
- 空假设:新版本并不比旧版本更好,甚至更糟
-
替代假设:新版本比旧版本更好
如果我们未能拒绝原假设,则结果将建议保留旧版本。如果我们拒绝零假设,结果将建议启动更改。这些测试可用于各种更改,从大型功能添加到颜色的小调整,以查看最大化您的度量标准的更改。
A / B测试也有其缺点。它可以帮助您比较两个选项,但它无法告诉您有关未考虑的选项。由于诸如变化厌恶和新奇效应等因素,在对现有用户进行测试时,它还会产生偏差结果。
- 改变厌恶:现有用户可能会给旧版本带来不公平的优势,因为他们对变化不满意,即使它最终变得更好。
- 新颖性效果:现有用户可能会给新版本带来不公平的优势,因为他们很兴奋或被这种变化所吸引,即使从长远来看它没有任何好处。
3 业务范例
在这个案例研究中 , 你将为在线教育公司 Audacity 分析 A/B 测试结果 , 这家公司提供金融课程 , 我们先来看一下 Audacity 网址的用户流程 , 新用户可以登录主页 , 如果感兴趣的话 , 可以点击探索课程 , 浏览课程列表时 , 某个课程吸引了他们 , 然后点开了解更多 , 一旦他们结束课程概览页面后 , 他们可能决定报名 , 报名后他们应当完成这个课程 , 在这个流程中通常称为客户漏斗
用户失去兴趣 在漏斗的不同阶段离开 , 少数人坚持到最后, 当然这是个相当简单的模型 , 无法体现所有用户体验 , 但是这很好地体现了从最初了解 , 到课程完成等主要阶段 可能性降低的顺序
为了提高学生参与率 , Audacity 想运行 A/B 测试 , 测试这个漏斗中不同点的变化 , 在这个案例研究中 , 我们将会分析他们希望进行两个特殊变化的测试结果 , 然后对他们是否应该开展每个变化提出建议
4 实验I
Audacity 想做的第一个改变是主页 , 他们希望这个全新动人的设计可以增加搜索课程(Explore courses)用户的数量
然后移动到漏斗的第二阶段 , 既然了解到想要做出的变化 , 我们需要选择衡量变化的标准 , 为了衡量多少人会进入下一个阶段 , 我们跟踪点击 , 主页上探索课程 (Explore Courses) 按钮新设计和旧设计的人数
然而只依靠用户人数不合情理 , 如果更多总用户浏览试验版本的页面 , 某个版本会出现更多总点击数 , 但是总用户基数大, 所对应的点击比例实际上非常小, 即使另一个版本点击数比例更高 , 因此我们使用页面用户点击数的一部分 , 即点击浏览课程 (View Courses) 按钮的数量, 除以主页(Home page)用户数量 , 这种衡量标准通常称为点击率 (CTR)
你可以进一步使用这种衡量标准 , 计算点击一次以上的独立访客数量 除以浏览页面的独立访客数量
既然有了衡量标准 , 我们创建已知备择假设 , 备择假设是我们希望为真的事情 , 在这个案例中 主页全新设计 , 点击率高于之前的主页设计 , 零假设表示分析数据之前我们假设为真的事情 , 即主页全新设计点击率 , 低于或等于之前主页设计 ,
如前所示 , 我们重新创建的假设是这样的
5 指标-点击率
正如你在上节课所见 , 这个数据集包括优达学城网址主页的浏览和点击行为 , 可以显示 A/B 测试控制版本和试验版本的用户 , 我们的任务是分析这些行为 , 观察两种版本的性能是否存在巨大差异
为了做到这一点 我们首先计算各组的点击率 , 首先是控制组 , 我们像这样抽取控制组的所有行为 , 现在为了计算点击率 , 我们用实际点击探索课程按钮的独立访客数量 , 除以浏览页面的独立访客总数量 , 这样得到点击率是 28%
对试验组也采用相同的方法 , 我们再次抽取所有点击动作 , 得到用户的唯一数 , 并用这个数除以浏览页面的独立访客数量 , 这样得到点击率是 31%
因此在这个样本中 试验组点击率 , 比控制组点击率高出 3% , 既然了解到样本中的明显差别, 我们需要了解这个差异是显著的 而不是因为偶然
我们利用引导指令输入样本 , 模拟抽样分布的比例差 , 我们先看一下抽样分布
如果你记得之前课程 , 我们计算统计量中的 p 值 , 即通过模拟零假设情况中的分布 , 得到的显著比例差 , 然后根据这个分布得到统计量的概率
为了模拟零假设 , 我们创建一个以 0 为中心的正态分布 , 标准差与我们模拟的抽样分布相同 , 我们可以看到这里的零分布 , 这是我们观察统计量的地方 , 我们找不到这样的 p 值 , 因为这些空值比支持备择假设的统计量更加极端 , 得到的 P 值为百分之一的一半
控制组和试验组点击率的差异 , 看起来非常显著 , 我们可以拒绝零假设 , 并且根据这些结果 , Audacity 应当发布主页的新版本
让我们回顾一下我们分析这个A / B测试结果的步骤。
- 我们计算了对照组和实验组的度量标准(此处为点击率),点击率之间的差异。
- 我们模拟了比例差异(或点击率差异)的抽样分布。
- 我们使用此采样分布来模拟零假设下的分布,通过创建以0为中心且具有相同的扩展和大小的随机正态分布。
- 我们通过找出零分布中的值的比例大于我们观察到的差异(此处为1种所得的值)来计算p值。
- 我们使用这个p值来确定我们观察到的差异的统计显着性。(考虑1%或5%的阈值)
6 实验II
Audacity 希望做出的第二个改变是课程概览页面 , 他们对其中一门课程制作了全新描述 , 更多地把课程中的概念与职业技能结合起来 , 减少对每个概念细节的描述 , 他们希望这种变化可以鼓励更多用户完成课程 , 在这个试验中 我们并不是选择唯一的衡量标准 , 而是分析多个衡量标准 , 我们将要跟踪报名率 , 课程页面的平均阅读时间 , 停留在课堂的平均时长 , 和课程完成率 , 首先,让我们确定每个指标观察到的差异是否具有统计学意义。
- 注册率:点击课程概述页面的注册按钮的费率
- 平均阅读持续时间:课程概述页面上花费的平均秒数
- 平均课堂时间:参加课程的学生在课堂上度过的平均天数
- 完成率:参加课程的学生的课程完成率
7 指标 - 平均阅读持续时间
除了计算报名率 , 我们也计算这个数据集中的平均阅读时长 , 这两个分析都是对比比率 , 利用这个衡量标准 我们将分析均数差 , 这个分析非常类似
由于我们需要对比阅读时长 , 我们只关心浏览(view)动作 , 首先过滤一下数据 , 我们只计算一次独立访客 , 通过查找访问网站一次以上的平均阅读时长
同样也按照不同分组 , 我们跟踪这些信息 , 这不是必要的 但是重置索引(在使用groupby函数后,用来分组的列将不能被通过索引的方式获取) , 这样我们可以保留编号和各组作为列名 , 同样这也让我们继续在DataFrame中进行 而不是多个索引系列
现在我们得到这样的各组平均阅读时长 , 一般说来 试验组的用户 , 比控制组用户的阅读时长多 15 秒钟
为了了解这个差异是否显著 , 我们使用自助法模拟 , 均数差的抽样分布 , 这是我们抽样分布的样子
现在为了得到 p 值 , 我们模拟零假设下的分布 , 然后根据这个分布得到观察统计量的概率 , 我们创建一个以 0 为中心的分布 , 其分散与我们的抽样分布相同, 这是我们的零假设
这是我观察到的统计量位置 , 我们统计量显然不是来自于这个零分布 , 我们观察到的差异是显著的
再次,让我们回顾一下我们分析这个A / B测试结果的步骤。
- 我们计算了对照组和实验组的度量,平均阅读持续时间之间的观察差异。
- 我们模拟了均值差异(或平均阅读持续时间)的抽样分布。
- 我们使用此采样分布来模拟零假设下的分布,通过创建以0为中心且具有相同的扩展和大小的随机正态分布。
- 我们通过找出零分布中的值的比例大于我们观察到的差异来计算p值。
- 我们使用这个p值来确定我们观察到的差异的统计显着性。
8 分析多个指标
您评估的指标越多,您就越有可能偶然发现重大差异 - 类似于您在之前的多次测试课程中看到的情况。幸运的是,这种多重比较问题可以通过多种方式处理。
9 得出结论
如果四个衡量标准中三个衡量标准 , 在测试单个衡量标准时存在显著差异 , 但是使用邦弗朗尼校正时差异不显著 这时如何提出建议呢? 邦弗朗尼方法较为保守 , 既然我们认为衡量标准具有相关性 , 那么最好通过更复杂的方法 , 将这些相关性考虑在内,例如封闭测试程序,Boole-Bonferroni绑定和Holm-Bonferroni方法。这些不太保守,并考虑到这种相关性。
如果您确实选择使用不太保守的方法,只需确保在您的情况下真正满足该方法的假设,并且您不只是试图欺骗p值。选择一个不合适的测试只是为了获得显着的结果只会导致误导的决策,从长远来看会损害公司的业绩。
10 A / B测试的困难
正如您在上述场景中所看到的,在设计A / B测试并根据其结果得出结论时,需要考虑许多因素。总之,这里有一些常见的考虑因素。
- 当现有用户首次体验变化时,新奇效应和变化厌恶
- 充足的流量和转化,以获得重要且可重复的结果
- 做出最终决策的最佳度量选择(例如,衡量收入与点击次数)
- 实验的运行时间足够长,以根据一天/一周或季节性事件的时间来考虑行为的变化。
- 转换率的实际意义(启动新功能的成本与转换增加的收益)
- 对照组和实验组的测试对象之间的一致性(每组中代表的人口不平衡可能导致像辛普森悖论的情况)
非常棒 我们完成了这个案例研究 , 总结一下 你学习了 A/B 测试的用法和值 , 定义了在试验中测量变化的衡量标准 , 分析置信区间和假设检验的结果 , 处理多个衡量标准和 A/B 测试的常见难题 , 祝贺你完成了这个案例研究 ,