「一起学」Udaicty 数据分析(入门)P4 项目总结

P4 项目背景

需要基于 Udacity 的一次真实迭代,设计一个 A/B 测试,包括测试时使用的度量和测试的运行时长等。同时根据运行 A/B 测试后的结果(部分数据有修改),来判断是否全员执行此设计。

我的答案

一、试验设计

1.1 指标选择

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

  • 不变指标
    • cookie 的数量。因为我们修改的是点击「开始免费试学」后的子页面,相应的影响的也是后面子页面的数据,不会影响首页的数据,所以对于首页的 cookie 数量并不会改变。期望结果:不变。
    • 点击次数。同理,对于首页的「开始免费试学」点击次数也不会改变。期望结果:不变。
    • 点进概率。因为点击「开始免费试学」点的次数以及 cookie 的数量都不变,所以点进概率也不变。期望结果:不变。
  • 评估指标
    • 总转化率。因为修改了点击「开始免费试学」按钮后的界面,同时会根据用户所设的时间长短,走不同的用户路径。对于大于5小时的用户,就会走登陆填写信用卡的流程,小于5小时的用户则会走完全免费的路径,那么这个环节里面相较于原方案,会导致登陆用户 id 数减少。同时因为点击开始「开始免费试学」按钮的用户不变,分母不变分子减少,则期望结果为:变小。
    • 留存率。同理,因为实验期望「不会在很大程度上减少继续通过免费试学和最终完成课程的学生数量」,分子不变的情况下,分母变小,则期望结果为:变大。
    • 净转换率。因为实验期望「不会在很大程度上减少继续通过免费试学和最终完成课程的学生数量」,且点击开始「开始免费试学」按钮的用户不变,分母不变,分子不变,那么期望结果应该为:不变。

1.2 测量标准偏差

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

  • 总转化率
    • P = 0.20625
    • N = 5000 x 0.08 = 400
    • Std dev = sqrt(0.20625 x (1 - 0.20625) / 400) = 0.0202
    • 因为总转化率 = 用户 id 的数量 / 点击「开始免费学」按钮的唯一 cookie 数,所以作为分母的 cookie 数既是转移单位也是分析单位,所以分析估计与经验变异类似。
  • 留存率
    • P = 0.53
    • N = 5000 x 0.20625 = 82.5
    • Std dev = sqrt(0.53 x(1 - 0.53) / 82.5) =0.0549
    • 因为留存率 = 14天期限后仍然参加课程的用户 id 数量 / 完成登陆的用户 id 数,转移单位是 cookie 数量,而分母是 id 数,分析单位和转移单位不相似,所以分析估计与经验变异不相似。
  • 净转化率
    • P = 0.1093125
    • N = 5000 x 0.08 = 400
    • Std dev = sqrt(0.1093125 x (1 - 0.1093125) / 400) =0.0156
    • 因为净转化率 = 14天期限后仍然参加课程的用户 id 数量 / 点击「开始免费学」按钮的唯一 cookie 数,所以作为分母的 cookie 数既是转移单位也是分析单位,所以分析估计与经验变异类似。

1.3 规模

1.3.1 样本数量和功效

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

不使用 Bonferroni 校正。
因为 alpha = 0.05, beta = 0.2,根据在线计算器计算所得:

  1. 总转换率:
    • Baseline conversion rate = Probability of enrolling, given click = 0.20625 = 20.625%
    • Minimum Detectable Effect = 1%
    • 样本数量 = 25835
    • 总浏览量 = 25835/0.08 x 2 = 645875
  2. 留存率:
    • Baseline conversion rate = Probability of enrolling, given click = 0.53 = 53%
    • Minimum Detectable Effect = 1%
    • 样本数量 =39115
    • 总浏览量 =39115/0.20625/0.08 x 2 =4741212
  3. 净转换率:
    • Baseline conversion rate = Probability of enrolling, given click = 0.1093125= 10.93125%
    • Minimum Detectable Effect = 0.75%
    • 样本数量 = 27413
    • 总浏览量 =27413/0.08 x 2 = 685325

取上面最大的数字作为样本,留存率样本总数为 4741212。

1.3.2 持续时间和暴光比例

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

我会选择竟可能多的页面流量转入此实验,因为从风险上看此实验对优达学城来说风险较小:

  1. 因为只改变了一个弹窗,对后面的学习等步骤并没有影响,所以不会影响用户的使用习惯。
  2. 该试验没有关于数据库及后台的改变,不用担心数据的丢失及由于后台的失误导致网页奔溃用户无法访问网页等大问题。
  3. 因为此实验只记录操作数据,不记录用户的个人隐私数据。
  4. 不会对被试者造成生理及心理伤害。
  5. 本实验不存在道德风险。

样本总数为 4741212,日流量为 40000,所以 100% 流量的话,实验天数为 119 天。但是该实验天数太长,考虑修改样本总数,取第二大浏览量 —— 685325 。然后根据此数,100% 流量的话,实验天数为 18 天,此数较为合理。

二、试验分析

2.1 完整性检查

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

三、结果分析

3.1 效应大小检验

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

3.2 符号检验

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

3.3 汇总

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

没有使用 Bonferroni 校正。因为Bonferroni校正适用于n次独立检验,所以使用Bonferroni校正过于保守。

此外,如果要进行Bonferroni校正的话,除了判断指标是否相互独立,我们还要判断几个评估度量之间是与还是或的关系。(我们期望这几个指标同时满足还是满足其中之一)如果指标之间是相互独立的,但是得出最终结论时是与的关系,这样我们进行Bonferroni校正也会过于保守。

四、建议

提供建议并简要说明你的理由。

我不建议启动这个实验,原因如下:

  1. 从总转换率来看,我们有 95% 的信心实验结果落在(-0.0291,-0.0120)之间,说明总转化率是下降的,符合我们前面定下来的实验期望。
  2. 但是从净转换率来看,我们有理由相信它会落在(-0.01160,0.001857)之间,说明此数据可能会下降。并不符合我们的「同时不会在很大程度上减少继续通过免费试学和最终完成课程的学生数量」期望。从企业的角度看,还是期望更多的付费用户,以及完成学业的用户。所以对于优达学城来说核心指标应该是留存率以及净转换率,这两个指标是不能影响且最需要提要提高的值。
  3. 虽然此实验的确减少了总转换率,但是此实验启动将会影响净转换率,所以不建议启动此实验。

五、后续试验

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

首先明确一下改版目标(KPI)是什么?减少因为没有足够的时间而离开免费试学,并因此受挫的学生数量,同时不会在很大程度上减少继续通过免费试学和最终完成课程的学生数量。

  1. 根据这一点我们再来看看原来的流程:
  2. 用户点击「开始免费试学」
  3. 登陆/注册
  4. 登记信用卡
  5. 进行第一天的学习
  6. ….
  7. 坚持14天学习
  8. 完成学习

各个环节用户都会跳出,而跳出率最高的应该是第四步,坚持14天的学习对于很多人来说还是非常难的。原实验最大问题在于,当用户想要点击试学的时候,就证明用户已经有意愿去学习,在这种情况可能会出现过于自信,而输入大于 5 小时,即使过滤出了那些小于 5 小时的用户,那些过于自信的用户也依然会流失。

同时即使真的可以每周花费 5 小时在学习上,也会由于其他原因而跳出,比如课程过难等。所以基于此我想在二次登陆的环节进行小调整:

  1. 用户点击「开始免费试学」
  2. 登陆/注册
  3. 登记信用卡
  4. 进行第一天的学习
  5. 进行第二天的学习时,弹出一篇「励志鸡汤文」
  6. 坚持14天学习,每天弹出一篇「励志鸡汤文」
  7. 完成学习

为了保证能够在尽量的少的变量中进行实验,没有区分第几天会推文章,而是每天都退文章。

  • 所以我的假设是:当学员看了鸡汤文后,提高了学员最终付费率。
  • 测量指标:留存率。因为假设是提升最终付费率,所以选择留存率。
  • 转移单位:用户 id,因为测试实在登陆之后进行的,所以使用 id ,而且 id 也便于跟踪一些。
Comments
Write a Comment
  • wangyuheng reply

    可以分享源码资料吗