--- template: overrides/blogs.html tags: - analytics --- # A/B测试实战case分享,面对考官追问也不慌 !!! info 作者:Jeremy,发布于2021-06-28,阅读时间:约10分钟,微信公众号文章链接:[:fontawesome-solid-link:](https://mp.weixin.qq.com/s/OC5YpJf01E-IvLy8mK5PHA) ## 前言 A/B测试是在增长黑客,精细运营理论中常用的数据驱动产品优化的方法。很多同学或多或少了解过A/B测试背后的理论和统计方法,但是没有机会参加实际项目,积累实践经验。我在学习过程中也遇到过类似的困扰,今天想向大家推荐一个可以很好补充项目经验上的空缺,在遇到A/B测试相关问题时可以更从容应对的实战项目:优达学城(Udacity)上的A/B testing by Google(Udacity是一个线上课程平台,有很多高质量的计算机,人工智能,商业分析相关课程)。 课程链接: https://www.udacity.com/course/ab-testing--ud257 ![A/B Testing 课程内容](https://cdn.jsdelivr.net/gh/BulletTech2021/Pics/2021-6-26/1624681931031-image.png) 这门课会带你详细地讲解项目背景,真实案例中的实验设计,同时开放地鼓励你对实验结果进行阐述和分析。想积累经验的同学,建议亲自完成该课程,会发现很多实践中才会遇到的问题。想观望一下或者快速过一遍A/B测试流程的同学,可以参考这篇总结的测试报告。 ## 1. 实验背景和简介 优达学城是一个在线教育网站,该网站通过学生报名付费课程的方式盈利。优达学城将报名学生的课程完成率作为一个非常重要的运营指标,以此提高用户的使用满意度,获得较好的课程反馈和口碑。为了提高这一指标,优达学城计划对课程报名入口做一些改动,引导学生选择最合适的上课方式,提高课程的完成率。 ### **1.1 控制组:** 现有的用户报名流程: 在进行实验前,优达学城的课程主页上有两个选项:“开始免费试用” 和“获取课程资料”。如果学生点击“开始免费试用”,系统将要求输入银行卡信息,然后进入免费试学阶段,该阶段学生可以选择取消使用,否则14天后他们将自动收费。如果学生点击“获取课程资料”,那么他们可以免费观看视频以及做随堂测试,但是他们无法获得导师指导以及证书,也无法提交最终项目获得反馈。 ### **1.2 对照组:** 实验测试的报名流程:在实验中,如果学生单击“开始免费试用(14天试用)”,则会询问他们有多少时间可用于该课程。如果学生回复每周学习5个小时或以上,则进入正常流程,免费试用14天后按月收费。如果他们表示每周少于5个小时,则会出现一条消息,提示Udacity课程通常需要花费更多时间才能成功完成课程,并建议学生选择纯免费版(只获得课程资料)。此时,学生可以选择继续注册免费试用版,或改为纯免费版。界面如下所示: ![对照组消息提示界面](https://cdn.jsdelivr.net/gh/BulletTech2021/Pics/2021-6-28/1624891653296-Final%20Project_%20Experiment%20Screenshot%20(2).png) ### **1.3 实验假设:** 本次实验的假设是这会提前为学生设定更明确的期望,从而减少因为没有足够时间学习而退出免费试用,并因此受挫的学生数量,同时完成付费并完成课程的学生数量不会显著下降。如果假设成立,Udacity可以改善学生用户的整体体验,并将比较珍稀的导师资源提供给更有意愿完成课程的学生。 测试中分组的单位是cookie,学生参加免费试学登陆后用户id会被跟踪。同一id只能参加一次免费试学。对于不能参加免费试学的用户,id不会在实验中被跟踪。在指标选择中,分析单位最好按照分组单位。 ## 2. 指标选择 ### **2.1 不变指标:** 选择以下指标作为不变指标,用于检验实验可靠性: | 指标名 | 指标描述 | Dmin 最小变化值 | 符号 | |-----------------|----------------------------------------------|-----------------|------------------| | 唯一cookie数量 | 访问课程概览页面的唯一cookie数量(每日统计) | 3000 | Cookies | | 点击数 | 点击“开始免费试学”按钮的唯一 cookie 的数量 | 240 | Clicks | | 访问-点击转化率 | Clicks/Cookies | 0.01 | View\_click\_CTR | ### **2.2 评估指标:** Udacity 希望减少报名课程但未成功支付的用户比例,用流失率指标反映。该指标定义为: (报名用户id数 – 付费用户id数) / 试学点击数 同时,Udacity希望最终付费用户数量不会明显下降,选择净转化率反映,理想状况下该指标在实验中应该没有显著变化。该指标定义为: 付费用户id数(payments)/ 点击数(Clicks) 最后,Udacity的实验如果有效,则报名课程的总用户数也会相应减少,选择总转化率反应该变化。总转化率的定义为: 报名用户id数(enrollments) / 点击数(Clicks) | 指标名 | 指标描述 | Dmin 最小变化绝对值 | 符号 | |----------|-----------------------------------------------------------------------|---------------------|------------------| | 流失率 | (报名用户id数(enrollments) – 付费用户id数(payments)) / 点击数(Clicks) | 0.01 | Churn\_rate | | 总转化率 | 报名用户id数(enrollments) /点击数(Clicks) | 0.0075 | Gross_conversion | | 净转化率 | 付费用户id数(payments) / 点击数(Clicks) | 0.0075 | Net\_conversion | ## 3. 实验设计 ### **3.1 样本量计算:** 为了计算出实验需要的最小样本数量和实验时间长度,我们需要Udacity平台的预估数据。对此,Udacity 提供了一份流量和转化指标的日均估值: | 指标 | 估计日均值 | |-----------------|------------| | 唯一cookie数量 | 40,000 | | 试学点击数 | 3,200 | | 报名用户数 | 660 | | 访问-点击转化率 | 0.08 | | 点击-报名转化率 | 0.20625 | | 报名-付费转化率 | 0.53 | | 流失率 | 0.096937 | | 点击-付费转化率 | 0.109313 | 设定显著性水平 α = 0.05,检验功效 β = 0.20。 根据样本计算公式: $$ n_{clicks}=\left(Z_{(1-\alpha / 2)} s d_{1}+Z_{(1-\beta)} s d_{2}\right)^{2} / d^{2} $$ 其中: $$ sd_{1}=\sqrt{p(1-p)+p(1-p)} $$ $$ sd_{2}=\sqrt{\{p(1-p)+(p+d)(1-(1-(p+d)\}} $$ (p为基准转化率,d为最小变化值) 页面浏览cookies所需的最小样本数量 = $\frac{n}{0.08} \times 2$ 各评估指标需要的最小样本数量分别为: | 指标名 | 最小点击数量(clicks) | 最小样本数量(cookies) | |----------|----------------------|-----------------------| | 流失率 | 13928 | 348200 | | 总转化率 | 25835 | 645876 | | 净转化率 | 27413 | 685326 | 选择其中数值较大的作为样本数量,即685326。 ### **3.2 曝光流量和实验长度:** 首先需要关注本次实验设计是否会对现有系统产生较大风险,我的观点是不存在较大风险: 对用户而言:对用户后续付费,转化流程没有影响;收集的用户学习时长不属于敏感数据。 对网站而言:网站界面没有大幅改动;没有数据库及后台改变。 所以,综合来看,可以选择曝光75%流量,每天cookies数量约为30000,需要进行23天实验。其中,由于点击试学用户在14天后才有付费行为,所以实际实验数据应该收集至第37天。 ## 4. 实验结果分析 ### **4.1 可靠性检验:** 检验Pageviews(cookies), Clicks, View_click_CTR。 Cookies 和 Clicks服从二项分布,p = 0.5; 根据中值定理,可得X服从正态分布: $$ N\sim(p,\sqrt{p(1-p)/N}) $$ 对于CTR而言,标准偏差计算方式为: $$ SD_{pool}=\sqrt{p_{\text{pool}}\left(1-p_{\text{pool}}\left(\frac{1}{N_{\text{cont}}}+\frac{1}{N_{\text{exp}}}\right)\right.} $$ 可靠性检验结果: | | 样本量分布 | 点击量分布 | 点击-访问转化率分布 | |---------------|-----------------|-----------------|---------------------| | 观察值 | 0.5006 | 0.4994 | 0.08218 | | 置信区间(95%) | [0.4988,0.5012] | [0.4959,0.5041] | [0.0799,0.0832] | 三组不变指标差异均在置信区间内,通过可靠性检验。 ### **4.2 显著性检验:** 实验指标均为比例指标,且样本数量较大,适宜采用Z检验,计算对照组和实验组绝对差值和置信区间,判断置信区间是否包含零点和最小变化值。 Z检验结果: | 指标名 | 绝对变化量 | 置信区间(95%) | 最小变化值Dmin | 是否统计性显著 | 是否实际性显著 | |----------|------------|--------------------|----------------|----------------|----------------| | 流失率 | -0.0157 | [-0.0218, -0.0096] | 0.01 | 是 | 否 | | 总转化率 | -0.0206 | [-0.0292, -0.012] | 0.0075 | 是 | 是 | | 净转化率 | -0.0049 | [-0.0116, 0.0018] | 0.0075 | 否 | 否 | ## 5. 实验结论 实验中流失率的变化具有统计显著性,但是离具有实际显著性还差一点点,总转化率的变化具有实际显著性,而净转化率没有统计显著性,说明报名试学的用户在对照组中有显著减少,同时没有显著影响到最终付款学生的数量,这符合Udacity的预期目标。 综合而言,本次实验改动基本符合Udacity 的预期,但是有可能达不到Udacity 期望的效应大小。后期可以考虑尝试的工作有: 1. 尝试适当延长实验时间获得更多的付费用户样本数量,观察流失率是否变成有实际显著性。 2. 设计提高留存的版本迭代方案重新测试,例如对完成一部分课程的试学学员提供鼓励提示或少量奖励(如积分等)。