原来硅谷是这么做A/B测试的

作者: 肖彬_用户增长_数据分析 | 来源:发表于2017-08-24 13:44 被阅读1720次

    最近在学习优达学城Udacity“数据分析师”“A/B测试”部分,系统学习了硅谷的A/B测试的理念,流程,设计及分析结果,在这里跟大家分享下。

    先普及下什么是“A/B测试”

    A/B测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好版本正式采用。

    AB测试.jpg

    项目概述

    在本项目中,你所要考虑的是由优达学城运行过的一个真实试验。具体数字已做更改,但是模式并没有改变。
    你要将试验的想法变成一个完整定义的设计、分析其结果,并提供一个高层次的后续实验。

    如何完成这个项目

    请查看此处的项目指南,回答相关问题。

    为什么进行这个项目?

    在这个项目中,你需要决定如何进 行A/B 测试,并分析测试结果的数据。这些都是从线上试验得出结论所需的重要技能。

    我会学到什么?

    完成这个项目后,你将能够:

    • 选择合适的指标,来评估你想要实施的改动
    • 定义和验证这些指标
    • 根据所需的样本量和预期风险,计划试验进行的时间
    • 对结果进行完整性检查,确保一切顺利
    • 根据结果得出结论
    • 建议是否要实施改动

    试验设计

    指标选择

    列出你将在项目中使用的不变指标和评估指标。(这些应与你在“选择不变指标”和“选择评估指标”小测试中使用的指标一样)

    对于每个指标,解释你为什么使用或不使用它作为不变指标或评估指标。此外,说明你期望从评估指标中获得什么样的试验结果。

    1. 不变指标

    • (1) Number of cookies(Cookie的数量):
      cookie是分组单元,必须是不变指标,而且测试的是首页的子页面,不会影响首页的情况,也就不会影响cookie数量;

    期望结果:不变;

    • (2) Number of clicks(点击次数):
      首页没有任何改变,cookie不变,点击次数也不变;

    期望结果:不变;

    • (3) Click-through-probalility(点进概率):
      点击次数不变,cookie不变,点进概率也不变;

    期望结果:不变

    1. 评估指标
    • (1)Gross conversion(总转化率):
      因为提醒用户每周5小时学习时间,可能会影响完成登录并参加免费试学的用户id的数量,这也是我们想通过A/B测试来研究的问题。因此,是个很好的评估指标。

      期望结果:减小;

    实验预期是减少因为没有足够的时间而离开免费试学,并因此受挫的学生数量,即:分子会减小,分母不变,因此总转化率期望是减小;

    • (2)Retention(留存率)
      因为提醒用户每周5小时学习时间,会对付费用户 和 完成免费试用的用户的比例产生影响,是个很好的评估指标;

      期望结果:增大;

      因为根据预期,期望最终通过免费试学和最终完成课程的学生数量不变,而登录的用户id数量减少,根据公式,留存率会增大;

    • (3) Net conversion(净转化率)
      为提醒用户每周5小时学习时间,会对付费用户产生影响,因此净转化率是个很好的评估指标;

      期望结果:不变;

    因为根据实验预期,付费用户不变,点击“开始免费试学”按钮的唯一cookie数量不变,所以净转化率的期望结果不变;

    1. 无关指标
    • (1)Number of user-ids(用户id的数量)
      根据实验设计,用户id数量有可能变化,因此不能是不变指标;

    同时,也不是好的评估指标,因为如果实验组和控制组的用户id变化很大,

    但是因为实验组和控制组的点击cookie数量可能有不同,所以测试出来的变化不一定仅仅是因为试验,因此不能准确地评估试验的效果。

    怎么样才能更好地评估呢?我们可以将用户id的数量除以点击的cookie的数量(进行归一化操作),只比较比例,这样就可以消除cookie数量不同的影响了。

    归一化操作得到的度量也就是总转化率,在总转化率存在的条件下,我们可以不选择用户id作为评估度量。

    测量标准偏差

    列出你的每个评估指标的标准偏差。(这些应是来自“计算标准偏差”小测试中的答案。)

    对于每个评估指标,说明你是否认为分析估计与经验变异是类似还是不同(如果不同,在时间允许的情况下将有必要进行经验估计)。简要说明每个情况的理由。

    ** 标准偏差根据公式: sqrt(p * (1-p) / N) 计算 **

    • (1) Gross conversion(总转化率)
      p = 0.20625(给出)

    N= 5000*0.08 = 400

    Std dev = sqrt(0.20625 * (1-0.20625) / 400) = 0.0202

    总转化率是以cookie数量作为分母,也是转移的单位。转移单位等于分析单位,标明分析估计值与经验变异类似

    • (2) Retention(留存率)
      p = 0.53(给出)

    N= 50000.080.20625 = 82.5

    Std dev = sqrt(0.53 * (1-0. 53) / 82.5) = 0.0549

    留存率是以“登录用户数”为分母,与转移单位cookie不相似,分析单位和转移单位不相似,所以分析估计值与经验变异不相似

    • (3) Net conversion(净转化率)
      p = 0.1093125(给出)

    N= 5000*0.08 = 400

    Std dev = sqrt(0.1093125 * (1-0.1093125) / 400) = 0.0156

    净转化率是以cookie数量作为分母,也是转移的单位。转移单位等于分析单位,标明分析估计值与经验变异类似

    规模

    样本数量和功效

    说明你是否会在分析阶段使用 Bonferroni 校正,并给出实验正确设计所需的页面浏览量。(这些应是来自“计算页面浏览量”小测试中的答案。)

    不使用Bonferroni校正

    因为本试验中总转化率和净转化率并非是独立的,而是相关联的,使用Bonferroni校正会使试验结果过于保守;

    页面浏览量通过在线计算器(http://www.evanmiller.org/ab-testing/sample-size.html)计算样本量(alpha = 0.05,beta = 0.2),再转化为实验组的页面浏览量,再乘以2得出总的页面浏览量:

    • (1) Gross conversion(总转化率)
      参数:baseline conversion rate:20.625%(给出),

    Minimum detectable effect:1%(给出),

    样本数量:25835

    实验组页面浏览量:25835/0.08 =322938

    总页面浏览量:322938 * 2 = 645875

    • (2) Retention(留存率)
      参数:baseline conversion rate:53%(给出),

    Minimum detectable effect:1%(给出),

    样本数量:39115

    实验组页面浏览量:39115/0.20625/0.08 =2370606

    总页面浏览量:2370606 * 2 = 4741212

    • (3) Net conversion(净转化率)
      参数:baseline conversion rate:10.93%(给出),

    Minimum detectable effect:0.75%(给出),

    样本数量:27413

    实验组页面浏览量:27413/0.08 =342663

    总页面浏览量:342663 * 2 = 685325

    取其中较大值,但是留存率算出来需要的页面浏览量474万,相对于每天4万的页面浏览量太大了,所以舍弃掉 留存率这个指标;

    在总转化率和净转化率算出的取较大值,最后使用 净转化率需要的页面浏览量685325

    持续时间和暴光比例

    说明你会将多少百分比的页面流量转入此试验,以及鉴于此条件,你需要多少天来运行试验。(这些应是来自“选择持续时间和曝光”小测试中的答案。)
    说明你选择所转移流量部分的原因。你认为此试验对优达学城来说有多大风险?

    曝光比例是0.8;

    因为,曝光流量比例主要是根据对实验的风险容忍度决定的,还要考虑到实验的周期不能太长;

    从风险上来说,

    • (1) 本试验只是询问用户每周能投入多少时间学习,不会对用户的身体,心理等造成不良影响,不涉及道德伦理问题;
    • (2) 收集投入学习时间的数据,不具有个人识别性的信息,不是敏感数据;
    • (3) 对网站来说,不涉及网站及后台,数据库的架构等关键节点,对数据库安全没有影响;

    因此试验风险较小,可以考虑给出50%--100%的流量。

    从实验周期上来说,每天页面总流量是4万,需要的总流量是68.5万,分别计算需要的时间,50%流量需要35天,100%流量需要18天;

    综合考虑风险容忍度和试验周期,我选择了曝光80%的流量,持续时间22天的方案;

    试验分析

    合理性检查

    对于每个不变指标,对你在95%置信区间下期望观察到的值、实际观察的值及指标是否通过合理性检查给出结论。(这些应是来自“合理性检查”小测试中的答案)
    对于任何未通过的合理性检查,根据每日数据解释你觉得最有可能的原因。在所有合理性检查通过前,不要开始其他分析工作。
    • (1) Number of cookies(Cookie的数量)
      控制组页面总量:345543

    实验组页面总量:344660

    页面总量:690203

    Cookie分布概率:0.5

    SE = sqrt(0.5*(1-0.5)/( 345543+344660) ) = 0.0006018

    m = SE * 1.96 = 0.0011796

    置信区间=[ 0.5-m, 0.5+m] = [0.4988, 0.5012]

    观察值 = 344660 / 690203 = 0.5006

    通过合理性检查

    • (2) Number of clicks(点击次数):
      控制组总量:28378

    实验组总量:28325

    总量:56703

    Cookie分布概率:0.5

    SE = sqrt(0.5*(1-0.5)/( 28378 +28325 )) = 0.0021

    m = SE * 1.96 = 0.0041

    置信区间=[ 0.5-m, 0.5+m] = [0.4959, 0.5041]

    观察值 = 28378 / 56703 = 0.5005

    通过合理性检查

    • (3) Click-through-probalility(点进概率):
      控制组概率:0.0821258

    SE = sqrt( 0.0821258 * (1-0.0821258) / 344660 ) = 0.000468

    m = SE * 1.96 = 0.00092

    置信区间=[ 0.0821258-m, 0.0821258+m] = [0.0812, 0.0830]

    观察值 = 0.0821824

    通过合理性检查

    结果分析

    效应大小检验

    对于每个评估指标,对试验和对照组之间的差异给出 95% 置信区间。说明每个指标是否具有统计和实际显著性。(这些应是来自“效应大小检验”小测试的答案。)
    • (1) Gross conversion(总转化率)
      Control控制组 Experiment实验组

    Clicks点击 17293 17260

    Enrolment登录 3785 3423

    Gross conversion(总转化率) 0.2189 0.1983

    Pooled Probability=(3785+3423)/ (17293+17260) = 0.2086

    SE = sqrt(0.2086 * (1-0.2086) / (1/17293 + 1/17260 ) = 0.004372

    m = SE * 1.96 = 0.008568

    d = 3423/17260 - 3785/17293 = -0.02055

    置信区间=[ -0.02055-m, -0.02055+m] = [ -0.0291, -0.0120 ]

    置信区间不包括0,具有统计显著性

    置信区间不包含d_min,具有实际显著性

    • (2) Net conversion(净转化率)
      Control控制组 Experiment实验组

    Clicks点击 17293 17260

    Payment付费 2033 1945

    Gross conversion(总转化率) 0.1176 0.1127

    Pooled Probability=(2033+1945)/ (17293+17260) = 0.1151

    SE = sqrt( 0.1151 * (1 - 0.1151) / (1/17293 + 1/17260) = 0.003434

    m = SE * 1.96 = 0.006731

    d = 1945/17260 - 2033/17293 = -0.004874

    置信区间=[ -0.004874-m, -0.004874+m] = [ -0.01160, 0.001857 ]

    置信区间包括0,不具有统计显著性;

    置信区间包含d_min(+/- 0.0075),不具有实际显著性;

    符号检验

    对于每个评估指标,使用每日数据进行符号检验,然后报告符号检验的 p 值以及结果是否具有统计显著性。(这些应是“符号检验”小测试中的答案。)

    利用在线计算器计算:http://graphpad.com/quickcalcs/binomial1.cfm

    • (1) Gross conversion(总转化率)
      成功数量:4

    试验次数:23

    概率:0.5

    双尾P值:0.0026

    双尾P值0.0026 小于 alpha 水平0.025,具有统计显著性;

    • (2) Net conversion(净转化率)
      成功数量:10

    试验次数:23

    概率:0.5

    双尾P值:0.6776

    双尾P值0.6776 大于 alpha 水平0.025,不具有统计显著性;

    汇总

    说明你是否使用了 Bonferroni 校正,并解释原因。若效应大小假设检验和符号检验之间存在任何差异,描述差异并说明你认为导致差异的原因是什么。

    没有使用Bonferroni校正,因为本试验中的总转化率和净转化率不是独立的,是高度关联的,使用会使得实验结果过于保守;

    建议

    提供建议并简要说明你的理由。
    不建议启动试验;

    因为总转化率具有统计和实际显著性,且为负,说明试验会减少因为没有足够的时间而离开免费试学,并因此受挫的学生数量,这个符合试验预期。

    但是净转化率的置信区间包含负数,置信区间的含义是”我们有95%的信心试验结果会落在这个区间“,根据此处的计算结果(-0.0116, 0.0019),也就是说有很大的概率净转化率会减少,并且有一定的概率净转化率的减少会超过实际显著性0.0075。因此我们无法说明”降低的程度不大“。
    所以不建议启动。

    后续试验

    对你会开展的后续试验进行概括说明,你的假设会是什么,你将测量哪些指标,你的转移单位将是什么,以及做出这些选择的理由。
    试验概述:

    说一下我自己的亲身体验,从我开始知道优达学城,到付费报名数据分析师,中间有大概6个月的时间,期间有体验过纳米学位试学,但当时有些内容根本看不懂,编程之前也没有学习过,很懵,也不知道该怎么学,学习路径怎样,学习后的就业问题等等,都不清楚。

    试用到期后我也就没有付费,后来就开始自己摸索这学习编程,找就业方面的资料等,直到我看了一个数据分析师毕业学员的分享,才真正解答了我的疑惑,也就报名正式开始学习了。

    我总结下来,问题是,试学时,在课程中遇到问题需要解答的时候,需要到论坛发帖(我习惯了淘宝式的即时客服,对于论坛发帖,还要等好久才能知道结果,我是拒绝的),没有方便的即时沟通方式,这会大大影响到用户体验和付费转化。

    此实验,可以测试一项变化,在第一次开始学习纳米课程时,提示“已经为您配置了专属学习导师,是否有问题咨询?”的提示框,点击“咨询”,立即与课程导师建立在线对话,有问题可以随时问。同时在纳米学位课程学习页面的右侧有“咨询导师”的按钮,点击直接在线咨询导师;

    假设:

    我假设这会即时解答学员的问题,个性化提供学习建议和设计学习方案,提高学员最终付费率。

    度量选择:

    1 . 不变度量

    • (1)用户id的数量
      此试验是在用户点击试学,并且登录id后,不会影响到登录用户数量,因此选择用户id做不变度量;

    2 .评估度量

    • (1)留存率
      试验可能会影响最终付费用户数量,留存率是个很好的评估指标;
    转移单位:
    • (1)用户id
      此测试发生在用户登录后,id会被跟踪,用户id是合适的转移单位;

    相关文章

      网友评论

      • 022284b8c452:太牛了,有个问题想咨询下,测量标准偏差这一部分,N=5000*0.08我想知道这个5000代表什么?在英文项目说明中也没找到这个。另外,后续的分析和计算也没用到Std Dev,想知道这一步的目的是什么?在检测什么内容呢?谢谢!
      • Cliff_97b2:这是标答吗?咋跟导师给的review一样样的。
        肖彬_用户增长_数据分析:@Cliff_97b2 这是我的作业,拿出来分享,不是标准答案啊,但应该有很多相似的部分。
      • 杨颖__指数成长:虽然我没有看懂,但是觉得你很棒,因为文字里面透露了你的细致,技能等,加油,战友
        肖彬_用户增长_数据分析: @A杨颖 谢谢鼓励,加油啊😬
      • 汉地ing:作者通过把自己在udacity学习的A/B测试知识做了分享,其中包含了设计、分析结果。当中涉及到很多专业的知识的运用和体现,可以看出肖彬在付费学习中渐入佳境,能从中总结出自己的思考和整理。
        在学习过程中,给自己来一次阶段性的总结和个例分析,能起到对自己能力的重新认识,日后遇到对这个问题同样感兴趣的人,就可以分享交流,直接可以多次分享文档。加油!
        汉地ing:@肖彬AI 其实对于同频的人来说,这是一篇很好的文章,只是我在这方面没深入学习,遇到同样感兴趣的人,这就是一篇技能好文章。
        007写作有几篇自己写的作品,当需要跟别人解释某个方法的时候,我就把文章推给他,算是时间多次销售。你这篇就是可以多次销售给跟你同频的人
        肖彬_用户增长_数据分析: @梁汉强 感谢点评,此文偏细分专业,太生涩难懂,见谅啊😬

      本文标题:原来硅谷是这么做A/B测试的

      本文链接:https://www.haomeiwen.com/subject/pfzddxtx.html