Skip to content

A/B测试实战case分享,面对考官追问也不慌

Info

作者:Jeremy,发布于2021-06-28,阅读时间:约10分钟,微信公众号文章链接:

前言

A/B测试是在增长黑客,精细运营理论中常用的数据驱动产品优化的方法。很多同学或多或少了解过A/B测试背后的理论和统计方法,但是没有机会参加实际项目,积累实践经验。我在学习过程中也遇到过类似的困扰,今天想向大家推荐一个可以很好补充项目经验上的空缺,在遇到A/B测试相关问题时可以更从容应对的实战项目:优达学城(Udacity)上的A/B testing by Google(Udacity是一个线上课程平台,有很多高质量的计算机,人工智能,商业分析相关课程)。

课程链接: https://www.udacity.com/course/ab-testing--ud257

A/B Testing 课程内容

这门课会带你详细地讲解项目背景,真实案例中的实验设计,同时开放地鼓励你对实验结果进行阐述和分析。想积累经验的同学,建议亲自完成该课程,会发现很多实践中才会遇到的问题。想观望一下或者快速过一遍A/B测试流程的同学,可以参考这篇总结的测试报告。

1. 实验背景和简介

优达学城是一个在线教育网站,该网站通过学生报名付费课程的方式盈利。优达学城将报名学生的课程完成率作为一个非常重要的运营指标,以此提高用户的使用满意度,获得较好的课程反馈和口碑。为了提高这一指标,优达学城计划对课程报名入口做一些改动,引导学生选择最合适的上课方式,提高课程的完成率。

1.1 控制组:

现有的用户报名流程:

在进行实验前,优达学城的课程主页上有两个选项:“开始免费试用” 和“获取课程资料”。如果学生点击“开始免费试用”,系统将要求输入银行卡信息,然后进入免费试学阶段,该阶段学生可以选择取消使用,否则14天后他们将自动收费。如果学生点击“获取课程资料”,那么他们可以免费观看视频以及做随堂测试,但是他们无法获得导师指导以及证书,也无法提交最终项目获得反馈。

1.2 对照组:

实验测试的报名流程:在实验中,如果学生单击“开始免费试用(14天试用)”,则会询问他们有多少时间可用于该课程。如果学生回复每周学习5个小时或以上,则进入正常流程,免费试用14天后按月收费。如果他们表示每周少于5个小时,则会出现一条消息,提示Udacity课程通常需要花费更多时间才能成功完成课程,并建议学生选择纯免费版(只获得课程资料)。此时,学生可以选择继续注册免费试用版,或改为纯免费版。界面如下所示:

对照组消息提示界面

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. 设计提高留存的版本迭代方案重新测试,例如对完成一部分课程的试学学员提供鼓励提示或少量奖励(如积分等)。


Viewed times

Comments