一、A/B实验简介
A/B 测试是一个用于在线测试的常规方法,可用来测试新产品或新功能。实验者需要做的是设置两组用户,将其中一组设置为对照组,采用已有的产品或功能,另一组是实验组,采用新版产品或功能。接下来,找到上述用户做出的不同响应,然后确认哪个版本的功能更好。鉴于此,在进行 A/B 测试时,实验者的目标是设计一个合理且能够给到可复验的结果,让实验者能够很好地决定是否要发布一款产品或功能。
A/B 测试的使用实例包括:
- Google 测试了 41 种不同的蓝色阴影。
- Amazon 通过一项 A/B 测试, 初步决定推出首款推荐的个性化产品,因为该测试表明增加此功能可以带来很大收益。
- LinkedIn 测试了是否要将用户信息流的榜首用于显示最新新闻文章或鼓励添加更多联系人的提示。
- Amazon 确定了页面加载时间每增加 100 毫秒,会使销量下降 1%。
- Google 的延迟结果同样证明了 100 毫秒的延迟所带来的影响。
A/B测试也有不能使用的时候。
- 在测试新的体验时 A/B 测试的用途就没那么大了,在测试新的体验时,当前已有的用户可能会觉得“你改变了我的体验,发生了什么?我喜欢我原来的方式, 我有点不高兴” ,这也被称为改变厌恶症。另一方面,他们可能觉得这是新的,然后他们尝试所有东西,这就被称为新奇效应。 在新的体验中会发生两个问题,一个问题是比较的基准是什么,第二个问题是实验者需要多少时间才能让用户接受新的体验(实际上就是看看多长时间才能创造出平稳的用户体验,然后据此靠谱的决策)。
-
A/B测试无法在缺乏对照组的情况下进行。例如,如果彻底重新建立网站或改变用户互动的方式,这些情况下很难运行对照组的实验。
-
由于其他一些原因,时间也可能成为难题所在。例如 有一个推荐公寓租赁的网站,人们寻找公寓不频繁。实验者真正想要的是让用户通过推荐给其他喜欢这项服务的人来扩大业务。但现实是,在试验的范围内,十分难以测定人们是否真的因为更多的推荐来到该网站。即便人们向朋友推荐,效果的出现是否需要等到下一周?是否需要等到六个月后?这些信息难以通过短期的 A/B 测试收集或实现。
- 此外,A/B 测试无法告诉你是否遗漏了什么东西,假设实验者在做数码相机评论网站,A/B 测试可以告诉实验者是否需要在某一款相机评论上面发表相机评论,但是 A/B 测试无法告诉实验者,实验者是否完全忽略了其他需要来评价但是实验者没有评价的相机。
在无法使用A/B测试的情况下,还有很多不同的收集用户数据的方法,同时,部分方法甚至还可以作为运行 A/B 测试的补充。例如, 通常会有记录用户在网站进行操作的日志,可以通过检查或观察分析日志得出假设“是什么原因造成其行为改变”,沿着这个方向设计实验,完成随机化和试验,进行前瞻性分析。同时,可以使用两个数据来源相互补充,这种情况下,可以通过查看日志建立一个假设,如果想要测试能否在实验中让假设成真,还需要运行 A/B 测试比较结果,查看理论是否合理。此外,还有一大堆其他技术,从用户体验研究到焦点小组、调查和人为评价,会给出非常深入的定性数据,作为 A/B 测试的补充。
二、A/B实验具体流程
1. 商业案例概述
接下来,将以某一个商业案例为背景,介绍A/B测试相关基础知识。Audacity是一个专攻金融课程的在线教育公司,他们在试着测试功能 增强学生互动。Audacity 网站典型的用户流程是:在访问主页的用户中,有一些用户会查看一些不同页面探索网站,还有更少数的人会创建账户,最后有一些人会以某种方式完成探索(比如购买、上课、完成一系列课程或者在博客分享网站),这种流程类型通常被称为客户漏斗模型。对网站而言,这是个很常见的概念,在这个概念中,漏斗最上层是最经常发生的事件,客户沿着漏斗从上到下渗透,越往下走,客户走到那一步的几率就越来越小。
现在,公司考虑对 Audacity 主页进行实验性地变更,实验者考虑改变“现在开始”按钮(如果用户点击这个按钮 他们会看到 Audacity 的课程清单),把“现在开始”按钮从橙色改为粉色。这个简单的实验的第一个假设是:把“现在开始”键从橙色改为粉色会增加多少探索 Audacity 课程的学生,也就是移动至漏斗的第二步。
2. 选择度量指标
现在已经大概了解了想进行的变更,需要选择一个指标来测量这个变更。在当前的假设中,还没有谈及,如何测量改变颜色是否真的是一种改进。
- Audacity 在意的归根究底还是有多少人完成了课程,所以可以选择完成课程的数量作为指标,然而学生可能需要几周或几个月的时间才能完成课程,采用这个作为指标会耗费太多时间,不太现实。
- 另外一个选择就是有多少用户实际点击了“现在开始”按钮,在原本的设想中,如果更多的人点击了这个按钮,然后进一步地探索这个网站,最终其中一部分人会创建账户完成课程。也就是说 增加用户从第一层往下走的几率会对漏斗的最终结果有正面的影响。但是计算点击会存在没有考虑网页总访问数的问题。所以可以使用访客点击页面的比例,也就是点击课程按钮的数量除以主页访问的数量,这个指标一般称为点击率。
- 另外还有一个关系相近的指标——点击概率,点击概率是至少点击一次的独立访客数量除以浏览页面的独立访客数量。这两个指标的区别是:假设有一个主页,两个用户访问了主页,第一个没有点击“现在开始”按钮就离开了(也就是说点击 0 次),而第二个人点击了 5 次(可能下一个页面载入很慢,这个用户不耐烦点击了 5 次)。在这种情况下,点击率等于 2.5(有 5 次点击,2 个页面访问),但是点击概率等于 0.5(访问这个页面的一半用户点击了按钮)。
比率与概率有不同的特点,想测量网站的可用性就使用比率。比如,如果想测量某个按钮的可用性,就使用比率,因为用户在页面上可以选择不同的地方点击,比率会告诉你他们能多经常地找到这个按钮。想测量总影响就使用概率,如果是想知道用户会多经常地进入网站的第二级页面,那就使用概率,因为无需考虑那些点击两次或重新载入的用户所进行的重复点击操作。
为了实现收益上升的目标,将使用点击概率作为指标,更新后的假设为:把“现在开始”键从橙色改为粉色将提高按钮的点击概率,并且这会最终提高终极业务指标即完成课程的总数。
3. 估计点击概率
要计算点击概率,首先要和工程师合作修改网站,通过变更网站确保能捕捉网页访问中的任何事件。当用户点击时,后台能捕捉到点击事件,一旦获得了数据,可以计算点击比率,只需要计算页面访问总数以及点击总数,然后相除。但对于概率来说,必须将每个页面访问与所有的子点击进行对应,对于每个页面访问,你最多计算一个子点击。计算子点击总数以及页面访问数,然后相除。
4. 进行重复实验
现在来测量“现在开始”按钮的点击概率,假如 Audacity 主页的单独用户为1000,而其中有 100 位至少点击了一次“现在开始”按钮,从这个数据预测最佳点击概率是10%。但为保证结果的准确性,应进行重复实验(重复进行测量,即对于访问这个网站的另外 1000 名用户,再次记录他们中有多少人点击“现在开始”按钮)。
5. 确定数据分布
数据中经常会有特定的一些分布帮助我们了解数据有可能有多大的变化,本案例需要计算的点击概率很适合二项分布,可以将点击叫做成功,将没有页面点击称为失败。如果数据是红色和蓝色或者是两个不同的结果,也可以用这种分布。重要的是,该案例中有两种可能的结果(点击或没有点击),需要计算的指标是点击概率。
在使用二项分布时,必须使用一些假设。首先,必须有两个不同的结果,我们称之为成功与失败。
第二,事件必须是独立的(知道了某一次翻硬币的结果,但不会知道下一次翻硬币结果是什么)。
最后,事件要遵循同一种分布(也就是说,每一次翻硬币的成功概率必须是一致的)。
6. 计算置信区间
当实验者知道它会遵循二项发布之后,一个好处是可以通过计算置信区间来估计点击概率的整体会有多大变化(根据样本估计点击概率的数值范围)。如果置信区间(如果不断地重复实验,在样本均值附近建立的区间)为 95%,会有 95% 的几率涵盖真正的值。
7. 建立原假设和备择假设
在预估“现在开始”按钮的点击概率后,开始变更按钮进行试验,通过假设检验以量化的方式确定结果发生的概率。首先,需要一个零假设或者说基准,也就是对照组和实验组之间的点击概率没有区别。然后需要考虑的是备择假设,可以是对照组和实验组之间的点击概率存在不同,可以是实验组的点击概率更高或更低。
要使用假设检验,确保我们的结果具有统计显著性,实验者需要计算结果是偶然出现的可能性,要计算这个概率 你需要先假设如果实验没有效果,结果会是怎样。在 Audacity 的例子中,采集了两个样本,对照组使用橙色按钮,实验组使用粉色按钮,之前已经假设过每个组都遵循二项发布,但是两组的概率可能会不同。对照组内的点击概率称为 Pcont,实验组内的点击概率称为Pexp,这样会导致两种分布。如果变更按钮颜色没有效果,两组分布会相同,双方正好在彼此上方,也就是说 Pcont 与 Pexp 相等,“实验无效时结果会是……”假设称为零假设。如果变更按钮颜色有效果, Pexp不等于Pcont 0,“实验有效时结果会是……”称为备择假设。
8. 计算统计显著性
现在已经设立了假设检验,需要决定是否拒绝零假设。这个案例中有两组样本,一组是对照组,一组是实验组,两者的用户数量可能会不同。接下来需要做的就是将预计的对照组点击概率与实验组的概率进行对比,量化任务会告诉实验者得到的结果,即观察到的区别是否是偶然出现的,或者如果两组结果完全一致,是否非常不可能出现这种区别。
可以预估采集到的数据中的 Pcont 与 Pexp,然后计算两者之间的差别,以及如果零假设成真,计算这个是偶然出现的概率P。如果概率P非常的小,可以排除零假设并得出实验有效果的结论。例如,如果概率小于 0.05 则排除零假设,0.05这一临界值也称为 α。
9. 实用或实际显著性
在使用假设检验确定实验中观察到的差异是否具有统计显著性后,需要从商业角度来决定怎样的点击概率变化具有实际显著性,也就是说变更对实验者来说有多重要。在商业上并不是所有变更都比较重要,变更本身可能是需要投资的,为了效益更大化,可能需要更高的实际显著性才会使实验者进行变更。在医学中,5%、10%、15% 的变更才是实质性的。但是在 Google,点击概率里的1%或者2%的改变就已经很大了,所以被认为具有实际显著性的差异。
鉴于此,实验者需要关注可重复性,统计显著性讨论的就是可重复性,所以在设置实验时需要确保这些结果具有统计显著性。同时,实验者还需要确认从商业角度来说,在实验中也看到了感兴趣的改变,它就兼具实际显著性和统计显著性。
10. 权衡样本容量和功效
实验设计中的主要问题是确定样本量(网页浏览量),以确保统计功效足够高。功效高意味着如果存在效应,实验能够检测到(例如80%功效意味着有80%的概率发现实际存在的差异)。
统计功效是正确拒绝原假设的概率(1-β),即当实际存在效应时,检验能检测到它的能力。影响功效的因素包括样本量、效应大小(实验组与对照组之间的差异程度)和显著性水平(α)。样本量越大,功效越高,因此当效应规模(effect size)较小时,需要更大的样本量来维持高功效。
实验者想要探测的效应量越小、想要的结果置信度越高、统计功效越高,需要运行的实验规模就越大,也就是对照组和实验组需要更多的网页浏览量。
综上,设计实验时需明确:
- 目标效应大小(最小值得检测的差异)
- 可接受的显著性水平(α,通常5%)
- 期望的统计功效(通常80%)
可通过功效分析(Power Analysis)计算所需样本量,工具如G*Power或统计软件(R/Python)均可实现。
示例场景:
假设当前转化率为10%,若想检测实验组提升至10.5%(效应大小0.5%),在α=5%、功效80%条件下,需约30万浏览量;若想检测更小的0.2%提升,样本量可能增至200万。这体现了效应大小与样本需求的负向关系。
11. 页面浏览数对实验可靠性的影响
11.1 样本量就像“放大镜”
1. 小样本(例如1000次浏览)
- 数据波动大,像用模糊的相机拍照,很难看清细节。
- 即使两组真实存在差异(比如实际差异是0.02),也可能被数据波动掩盖,导致错过真实差异的概率高(β错误)。
- 但好处是实验能快速完成。
2. 大样本(例如5000次浏览)
- 数据波动小,像用高清相机拍照,更容易发现细微差异。
- 检测到真实差异的能力更强(β错误降低,统计功效提高)。
- 缺点是实验时间更长,且可能发现“统计显著但实际无意义”的微小差异。
11.2 两类错误:实验结论的“误诊”风险
错误类型 | 通俗解释 | 控制目标 |
---|---|---|
α错误(假阳性) | 没病却误诊为有病: 两组实际无差异,却错误得出有差异 | 通常严格限制(α=5%) |
β错误(假阴性) | 有病却漏诊: 两组实际有差异,却没能检测出来 | 希望尽量降低(一般β≤20%) |
-
关键规律:
-
样本量越大,越容易避免β错误(就像用更精密的仪器检查身体)。
-
11.3 为什么大样本能提高检测能力?
1. 标准误差变小
- 样本量越大,数据的“波动范围”(标准误差)越小。
- 例如:1000样本时波动范围是±0.1,5000样本时可能缩小到±0.04。
2. 分布更集中,差异更明显
如果两组真实存在差异(比如实际差异0.02):
- 小样本时,差异会被波动淹没;
- 大样本时,差异会明显超出波动范围。
11.4 实际应用中如何选择样本量?
1. 明确你的目标
- 关心多大的差异?例如:“转化率提升至少0.02才有意义”。
- 愿意承受多大风险?通常设定:α=5%(假阳性风险),β=20%(功效=80%)。
2. 提前计算样本量
2.1 使用在线工具(如G*Power)输入三个参数:
- 最小有意义差异(例如0.02)
- α风险(例如5%)
- 功效要求(例如80%)
2.2 工具会自动算出需要的样本量。
3. 权衡速度与可靠性
- 需要快速迭代?先用小样本做探索,但需谨慎对待“无差异”结论。
- 需要可靠结论?务必按计算的大样本执行。
三、实验中的政策和伦理问题
1. 进行A/B实验涉及的四个原则
1.1 研究风险,即实验中参与者被暴露于哪种风险?
主要界限在于风险是否超过了“最低风险”。 最低风险的定义为参与者在日常生活中会遇到的伤害的概率和程度,包括身体、心理、情感、社会和经济方面。 如果风险超过最低风险,那就需要获得知情同意。
1.2 研究意义,即研究结果将产生何种好处?
即使风险很小,但是研究结果有什么意义呢?大多数 A/B 测试的益处在于改进产品。 在其他社会科学中,在于理解人的境况以提供帮助,比如教育和发展。医学界的测试风险往往较高,但却能带来健康状况的改善。
能够说明完成研究的益处是非常重要的。
1.3 备选方案,即参与者还有其他哪些选择?
比如,实验者要测试一个搜索引擎的变化,参与者始终可以选择使用其他搜索引擎。 主要问题在于参与者的选择越少,强制性以及参与者是否能选择参与与否的问题就越多,以及这些问题如何在风险和益处之间实现平衡。
例如,医学临床试验要测试治疗癌症的新药,鉴于大多数参与者面临的另一个主要选择是死亡,那么在知情同意的情况下,参与者的风险还是很高的。
对于在线实验,需要考虑的问题是用户可以使用的其他服务有哪些,以及转换服务的成本是多少,包括时间、金钱、信息等。
1.4 数据敏感性,即参与者可以期待怎样的隐私保护?
该原则包含多个问题:
- 对于新收集和存储的数据,数据的敏感性如何?处理数据时采取了什么内部防御措施?例如设置了何种访问控制?如何捕捉和管理违反该防御措施的行为等?
- 然后,如何使用收集的数据?如何保护参与者的数据?如何向参与者保证为了此研究而向他们收集的数据不会被用于其他目的?随着数据敏感性的增强,这一点越来越重要。
- 最后,哪些数据会更加广泛地公开,是否会给参与者带来任何额外风险?
2. 进行A/B实验需考虑的问题
对于在线 A/B 测试来说 可以总结为以下几个问题
- 一、关于数据收集,用户是否以条款、服务或隐私权保护策略的形式被告知?
- 二、收集的数据带有哪些用户标志,特别是个人身份信息 如姓名、电子邮箱、电话、地址?如果带有这些身份信息,收集的数据会更加敏感,应当接受审查
- 三、收集的数据类型是什么?数据的敏感性如何?收集的数据涉及健康或者财务数据吗?
- 四、数据的保密性和安全性级别是怎样的?公司人员能够访问这些数据,尤其是这些可以识别个人身份的数据吗?数据访问具备登录和审核安全吗?
另外,一个常被问起的问题是:什么是知情同意。知情同意即告知参与者,如果参加某项研究可能面临的风险,研究的好处是什么,他们还有哪些其他的选择,研究将会收集哪种数据以及如何处理数据。通常在知情同意的情况下,参与者会收到包含上述所有内容的知情同意书,然后由参与者决定参加该研究,还是不参加该研究。
但是,不是以人为主体的所有研究都应要求知情同意,比如参与者风险最小或者收集的数据不能鉴定个人身份的研究。
四、计算指标的差异性
在A/B实验中,“指标的差异性”指的是实验组(A组)和对照组(B组)在某个核心指标(如转化率、点击率、收入等)上的表现差异。为了对实验进行分析,需要了解指标的差异性。现在需要从统计学角度对差异性给出更严谨的定义,以便使用它来确定实验规模、分析置信区间和得出结论。
1. 指标差异性对实验规模、置信区间和实验结论的影响
1.1 指标差异性对实验规模(样本量)的影响
实验规模(即需要多少用户参与实验)取决于想检测的差异有多小。例如:
- 如果你预期实验组比对照组的转化率高1%,那么需要更多用户参与才能确认这个微小差异是真实的(而非随机波动)。
- 如果预期差异是5%,则所需样本量更小。
实验规模的计算公式会考虑
- 指标的基线值(如对照组当前的转化率)
- 预期的最小差异(Minimum Detectable Effect, MDE)
- 显著性水平(通常设为5%)
- 统计功效(通常设为80%)
1.2 指标差异性对置信区间的影响
置信区间的作用:实验结束后,通过统计方法(如t检验、Bootstrap)计算实验组和对照组差异的置信区间(例如95%置信区间)。
例如:差异可能是“+2%的转化率,置信区间为[0.5%, 3.5%]”。
- 如果置信区间不包含0(如[0.5%, 3.5%]),说明差异统计显著。
- 如果包含0(如[-0.2%, 1.8%]),则差异不显著,可能是随机波动。
差异性影响置信区间宽度:差异越大,置信区间通常越窄,结果越可信。
1.3 指标差异性对实验结论的影响
统计显著性:如果置信区间不包含0,且p值<0.05,说明实验组和对照组的差异极不可能是随机产生的。
实际意义:即使差异显著,还需判断是否有实际价值。例如
- 转化率提升0.1%可能统计显著,但对业务意义不大。
- 提升2%则可能值得推广。
决策依据:结合统计结果和业务目标,决定是否全面实施实验策略。
1.4 案例
假设某电商想测试新版页面(实验组)是否能提升购买率(对照组是旧版页面):
- 确定样本量:假设基线购买率是10%,预期最小提升1%(MDE=1%),计算得出每组需要10,000用户。
- 运行实验:实验组购买率11%,对照组10%。
- 分析置信区间:差异为1%,置信区间[0.3%, 1.7%](不包含0)。
- 结论:新版页面显著提升了购买率,且提升幅度有实际价值,应上线新版本。
2. 计算指标差异性的具体步骤
2.1 明确核心指标和假设
在计算前,先明确:
-
核心指标(如转化率、点击率、人均收入)。
-
实验假设(如“新版本页面转化率比旧版本更高”)。
-
统计参数:
-
显著性水平(α):通常设为5%(即允许5%的假阳性错误)。
-
统计功效(1-β):通常设为80%(即能检测到真实差异的概率为80%)。
-
2.2 计算指标的差异性
分三个阶段操作:
2.2.1 实验前:确定所需样本量
样本量由以下因素决定:
- 基线值(Baseline):对照组的当前指标值(如对照组转化率=10%)。
- 最小可检测效应(MDE):你希望检测到的最小差异(如转化率提升1%)。
- 统计功效(Power)和显著性水平(α)。
计算公式(以比例型指标为例,如转化率):
案例:
假设基线转化率 p=10%p=10%,MDE=1%,α=5%,β=20%,则每组需要约 15,500用户(可用在线工具直接计算,如Evan’s Awesome A/B Tools)。
2.2.2 实验中:计算观察到的差异
实验结束后,收集数据并计算实际差异:
- 实验组指标值(如转化率=11%)。
- 对照组指标值(如转化率=10%)。
- 绝对差异:11% - 10% = 1%。
- 相对提升比例:1%/10%=10%。
2.2.3 实验后:统计检验
通过假设检验判断差异是否显著。常用方法:
(1) Z检验或T检验(比例型指标)
以转化率为例,计算Z值:
若 ∣Z∣>1.96(α=5%时),则差异显著。
(2) 置信区间法
计算差异的置信区间(如95%置信区间):
-
如果置信区间不包含0,则差异显著。
案例:
实验组转化率=11%(n1=15,500n1=15,500),对照组=10%(n2=15,500n2=15,500),则:
-
差异=1%,置信区间≈[0.4%, 1.6%]。
-
区间不包含0,说明差异显著。
2.3. 工具推荐
-
样本量计算:
-
统计检验:
-
用Python的
statsmodels
库(proportions_ztest
函数)。 -
Excel公式:
=NORM.S.INV(1-α/2)
计算Z值。
-
2.4. 注意事项
-
避免误判:
- 统计显著 ≠ 实际重要:即使差异显著,若提升幅度太小(如0.1%),可能不值得投入资源。
- 样本量不足:可能导致漏检真实差异(假阴性)。
2. 多次检验问题:
如果同时测试多个指标,需校正显著性水平(如Bonferroni校正)。
3. 非参数检验:
如果数据分布不满足正态性,可用Bootstrap方法或Mann-Whitney U检验。
2.5. 完整案例演示
场景:某App测试新按钮颜色(实验组)对点击率的影响,对照组保持原按钮。
-
实验前:
- 基线点击率(对照组):5%。
- MDE:希望检测到至少0.5%的绝对提升(相对提升10%)。
- 计算样本量:每组需约 20,000用户(α=5%,Power=80%)。
2. 实验中:
- 实验组点击率=5.6%,对照组=5.0%。
- 绝对差异=0.6%,相对提升=12%。
3. 实验后:
- 计算Z值=2.4(>1.96),p值=0.016(<0.05)。
- 置信区间=[0.2%, 1.0%],不包含0。
- 结论:新按钮颜色显著提升了点击率,建议上线。
2.6. 总结
计算指标的差异性需要:
- 实验前:通过基线值和MDE确定样本量。
- 实验中:收集数据并计算实际差异。
- 实验后:用统计检验(如Z检验、置信区间)判断显著性。
始终结合统计结果和业务目标做决策!
五、指标差异性
1. 方差对指标差异性的影响
1.1 方差与差异性的关系
方差(Variance)衡量的是单个组内数据的波动程度(即数据点与均值的偏离程度)。
-
例如:实验组用户转化率的方差大,说明用户之间的转化行为差异较大,结果可能不稳定。
指标的差异性通常指的是实验组与对照组之间某一参数差异(如转化率差异、收入差异等)。
-
例如:实验组转化率均值比对照组高2%。
结论:
方差是分析差异性时的重要参数,但它不等于差异性本身。方差会影响我们对差异性的统计判断(如置信区间宽度、显著性水平),但直接计算方差无法直接得出两组之间的差异是否显著。
1.2 为什么方差会影响差异性分析?
以均值为例,在统计学检验中(如t检验、Z检验),方差直接影响以下关键步骤:
(1) 标准误(Standard Error, SE)
标准误衡量均值估计的精度,其公式中包含了方差:
差异性的置信区间公式为:
方差越大 → 标准误越大 → 置信区间越宽,导致检测到差异的难度增加。
(2) 统计检验的敏感性
以t检验(均值差异检验)为例,独立样本t检验的公式为:
- 方差越大 → t值越小 → 越难拒绝原假设(即越难发现显著差异)。
- 如果实验组和对照组的方差较大,即使存在真实的均值差异,也可能被数据的波动掩盖(更难通过统计检验发现显著性)。
- 如果方差较小,即使微小的均值差异也可能被检测到。
差异性分析相关知识可点击(科研论文差异性分析,如何选择正确的统计学方法)链接进行学习。
(3) 样本量计算
在实验设计阶段,方差是计算所需样本量的核心参数之一。以连续型指标为例:
1.3 实际案例说明
案例背景
比较实验组和对照组用户的平均购买金额(单位:元):
步骤1:计算均值差异
绝对差异:120−110=10120−110=10 元。
步骤2:计算t值
若显著性水平 α=0.05,临界t值约为1.96(自由度较高时)。
由于 2.77>1.962.77>1.96,差异显著。
步骤3:观察方差的影响
- 如果对照组方差从900降至400(其他不变),则t值升至3.54,检验结果更显著。
- 方差降低 → 更易检测到差异。
1.4 总结
差异性需要通过均值差异和统计检验(如t检验、置信区间)来判断,而方差在其中影响检验的敏感性和可靠性。此外,实验者还需检查实际显著性水平对于指标而言是否真的有实际意义,如果指标在正常情况下即存在很大变动(方差较大),那么实际显著性水平在实践中就没什么用,因为它对于这一指标可能不切实际。
2. 指标差异性
实验者重视指标的敏感性是为了让指标只对实验者所关心的更改具有敏感性,而指标的稳定性是针对实验者不关心的更改的稳定性,因此当不发生任何有趣的事情时,它不会发生太大改变。以视频加载时间延迟为例,平均值对异常值很敏感,因此如果在数据中看到加载时间总是很长,这可能是因为用户机器原因或网络连接不良,平均值受各类观察结果的影响很大,因此不能称为稳健。另一方面,中位数对于此类行为更稳定,但如果实验者即使是影响很大一部分用户(例如20%),可能都不会看到中位数有任何变化,因此中位数是稳定的。但在这个例子中,实验者可能考虑使用其他一些统计数据(例如 90% 或 99%),观察它们的变化,它们可能很好地反应实验者想要测量的信息。
指标差异性可用于对指标稳定性的评估,在不进行变更时,显著的指标差异性意味着指标过于敏感或者是本身不稳定(如用户行为波动大)。此外,还需检查实际显著性水平对于指标而言具有实际意义,如果指标在正常情况下即存在很大变动,那么实际显著性在实践中没什么用,因为实际显著性对于这一指标可能不切实际。
2.1 数据获取
测量指标差异性,数据获取主要有三种方法:
第一种是进行实验,例如在延迟示例中,实施一些简单的实验(提高视频的质量、增加用户加载时间),观察指标是否对这种情况做出响应。同时,也能够使用 A/A 实验确定它们是否太敏感,在这个实验中不修改任何指标,只将能看到相同信息的人们进行比较,观察指标是否显示两者之间的差别。通过这个关键步骤,可以确保不会将一些实际上没有任何意义的东西认为是重要的。
第二种是使用已经有的实验,可以查看公司以前实施的实验,检查这些实验是否改变了关注的指标。
第三种是对记录的回顾性分析,如果没有实验数据或如果不能实施新的实验,观察对网站做过的更改,检查关注的指标是否和这些更改一同发生了变化。或者可以只看指标历史,是否能够找出主要更改的原因,这能帮助获得一些关于当前形势的直觉。
2.2 计算指标差异性的方式
实验者计算指标差异性,就是在计算两个对照组某个参数(如总体点击概率)差值为0的置信区间(即真实值为0的置信区间)。如果实验者对数据潜在的分布有一个假设(二项分布、正态分布),可以根据这些经典的数据分布类型所对应的方差公式计算数据的方差,然后计算指标差异性。但对于比较复杂的指标,分布可能会很奇怪,这就需要转用实证估计。现在研究者计算一些简单指标的差异性时,都会发现差异性的分析估计最后还是出现低估的情况,因此研究者开始全面使用 A/A 实验,从而通过实证预估指标的差异性。
A/B 实验有对照组A对比实验组B, A和B之间测量出的变化是由在系统中进行的变更导致的。而A/A测试是将流量随机分为两个完全相同的对照组(例如A1组和A2组),进行无干预测试,实际上用户看到的东西是没有什么改变的,也就是说测量到的任何区别都是因为潜在的差异性(比如说用户群体系统、用户的行为等等)。如果在 A/A 测试中发现指标差异性很大,可能在评估真正的实验时,指标的敏感性太高(不稳定)。如果使用 A/A 测试确定差异性, A/A 测试的次数需尽可能多,但是运行更多的 A/A 测试会有明显的边际效益递减。
运行很多不同的 A/A 实验除了能够计算指标差异性并评估指标敏感性和稳定性,还有一个好处是:如果实验体系本身很复杂,它能帮助测试系统是否存在偏差(实验分流是否存在问题,例如某些用户属性分布差异大)。如果无法进行非常多次的A/A实验,那另外一个选择就是做一个规模很大的 A/A 实验,使用bootstrap方法将样本集随机地划分为一堆小样本群,然后对这些随机的子集进行对比。
在计算指标差异性是,方法的优先级是:
- 如果准备使用相对简单的指标运行实验,可以进行分析估计方差,计算指标差异性。
- 如果准备使用比较复杂的指标,至少要考虑采用 bootstrap方法,如果bootstrap 估计与分析估计结果一致,就能继续下一步。但如果 bootstrap 估计与分析估计结果不一致,这时就需要考虑运行大量的 A/A 测试,深入了解发生了什么情况。
2.3 使用A/A实验计算指标差异性
使用 A/A 实验计算指标差异性可以分为三种方式:
- 一,如果已经对置信区间完成分析计算,可以使用 A/A 实验检查结果是否符合预期,这是一种完整性检查功能。如果得到的结果不符合预期,这就表明计算出错,之前对数据分布的假设无效。
- 二,如果想要对指标分布进行假设,但是不能分析估计方差,可以通过实证预计方差。然后用你关于分布的假设,按照之前的方式计算置信区间。
- 三,如果不对数据做出任何假设,可以直接从 A/A 实验的结果中估计置信区间。
现在先来讲第一种使用案例。以之前的商业案例为例,首先运行20次实验(简称实验A,每次实验有两个对照组),每次每组有50名用户。然后再运行20次实验(简称实验B),每次每组有100名用户。然后是 10次(简称实验C),每次每组有500名用户。这些都是 A/A 实验,没有区别。以实验A为例,如果想要判断每次实验中两个对照组的总体点击概率之间是否存在显著差异,以此评估指标的稳定性,则需要计算两个总体点击概率差值为0的置信区间(即真实值为0的置信区间)。
置信度为 95% 的情况下,在多少次实验中,两对照组间的总体点击概率(至少点击一次的独立访客数量除以浏览页面的独立访客数量)会出现具有统计显著性的区别(即便这两组间并没有差别)?答案是:在 95% 的置信区间中,真实值(0)会在95%的情况中出现,也就是说在20次实验中,预计会看到平均一个显著差别。当然,对 20 次实验来讲,发现没有或者两个或者其他数量的显著结果也不奇怪。实验A、B、C中,如果发现在实验A中有一个显著结果,另外两个实验为零,这个不奇怪。如果在某一实验中有五个显著结果,那就说明实验设置或者假设可能有些问题。
然后可以用 A/A 测试进行的另一项检查,即判断差异是否符合预期的分布。以实验A为例,计算每次实验两对照组间的总体点击概率差值,共获得二十个差值。检查差值的分布是否按预期符合正态分布。实验次数越多,数据点越多,数据分布越紧密且分布类型越清晰。
接下来讲第二种使用案例,如果不能对方差进行分析计算,可以通过实证估计方差。以实验A为例,首先计算每次实验两个对照组之间的总体点击概率差值,共获得二十个差值,计算这二十个差值的标准偏差。如果预计指标大概为正态分布,可以用刚刚计算得到的标准偏差和置信度 Z 分数计算误差范围。因为该案例属于获得真实值(0)的误差范围(单次观测的误差范围),而非均值的误差范围,因此误差范围为标准偏差乘以置信度 Z 分数,不用除以样本量的平方根。
注:单次观测的误差范围是指针对某一次独立观测或测量结果,其可能偏离真实值的最大预期范围。它反映了单次观测结果的不确定性,通常用于描述随机误差的大小。误差来源包括仪器精度、环境干扰、操作随机性等(属于随机误差,而非系统误差)。以正态分布为例,真实值的误差范围计算公式为
注:标准偏差、标准误差、方差、误差范围和置信区间之间的关系(以单样本均值为例)
1. 方差(Variance):衡量数据分布的离散程度,计算为数据点与均值差的平方的平均值。
2. 标准偏差(Standard Deviation, SD):方差的平方根,与原数据单位一致。
3. 标准误差(Standard Error, SE):样本统计量(如均值)的波动性,计算为样本标准差除以样本量的平方根
4. 误差范围(Margin of Error, MoE):在统计推断中,表示估计值(如均值、比例)的不确定性范围,通常与置信区间关联。例如,在调查中报告的“±3%”即为误差范围。公式一般为MoE=临界值×标准误差(SE),以正态分布为例,误差范围公式的完整表达为:
4. 置信区间(Confidence Interval, CI):基于样本统计量构建的总体参数的估计范围。例如,95% 置信区间表示重复抽样时,95% 的区间会包含真实参数。以在t分布下,均值的置信区间为例,置信区间为均值±MOE。
关键关系总结
-
方差 → 标准偏差:标准偏差是方差的平方根,两者均描述数据的离散程度。
-
标准偏差 → 标准误差:标准误差利用标准偏差和样本量反映统计量的波动性。
-
标准误差 → 置信区间:置信区间的宽度由标准误差和置信水平共同决定。标准误差越小,置信区间越窄,估计越精确。
示例:四者的计算链
对比与注意事项
-
标准差 vs. 标准误差:标准差描述数据本身的波动;标准误差描述统计量(如均值)的波动。
-
置信区间的宽度:受样本量(n↑⇒SE↓n↑⇒SE↓)和置信水平(如 95% vs. 99%)共同影响。
最后是第三种使用案例,根据 A/A 测试的结果直接估计置信区间。以实验A为例,将所有的差值按顺序把放一起,确定数值范围(如为负 0.15 至正 0.15)。如果想要 95% 的置信度,就要选择一个方框,仅包括 95% 的值(也就是在每一边舍掉 2.5% 的值),剩下的数据点范围达到 95% 的置信度。实验A有 20 个数据点,去掉最大和最小差值会得到90%的置信区间(如下限为负 0.1,上限为 0.06)。因为实验A只有20个数据点,没有办法计算95%置信度下的置信区间,因为去掉最低点和最高点会让置信度降低至 90%。
2.4 bootstrap法计算指标差异性
如果无法进行非常多次的A/A实验,可以进行一个规模很大的 A/A 实验(例如每个对照组A1、A2中有10000名用户)。从A1组中随机收取100名用户作为对照组A11,从A2组中随机收取100名用户作为对照组A21,将A11和A21视为第一次A/A实验,分别计算两个对照组的总体点击概率。重复以上步骤获得第二次A/A实验(对照组A12和A22)、第三次A/A实验(对照组A13和A23)……
获得多次A/A实验后,参照2.3中的步骤计算指标差异性。
2.5 总结
指标差异性可以通过分析技术或实证技术获得,不同的指标存在不同的差异性,有些指标的差异性可能太高,所以在实验中并不推荐使用,即便这个指标在业务或产品方面有很大的作用。
六、设计实验
1. 确定分流单位
1.1 分流单位类型
基于以上的知识涉及A/B实验的第一步是确定将实验对象分配到不同组别(如对照组和实验组)的方式,也就是确定分流单位。分流单位是实验中进行随机分配的最小独立单元,决定了实验对象的分组依据,它确保同一单元在实验期间始终处于同一组别,从而影响数据的连贯性和噪声水平。常用分流单位有三种:用户标识(如登录名)、匿名标识(如cookie)、单一事件。
用户标识是不错的用户代理,而且它稳定不变。以用户为最小单位,确保同一用户的所有行为归入同一组。适用于需长期追踪用户行为的实验(如功能迭代),不同组之间不会混淆。但问题是每人都能有多个账户,因此也有多个登录名。
匿名标识(如 cookie,分配给设备中特定浏览器的一个东西)也会存在同样的问题,因为它与单个浏览器和单个设备进行绑定,设备和浏览器的改变会引发 cookie发生变化。
基于事件的分流意味着对于每一次事件,都需要重新判断它是在实验组还是对照组,这意味着用户无法获得一致的体验,只有在用户不可见更改的情况下才妥当。比如对排序列表的顺序做出了更改就符合这种情况,大多用户无法区分或察觉排序变化。
还有一些是不太常用的分流单位,仅限移动设备的一种选择是设备 ID,它介于 cookie 和用户 ID 之间。设备 ID 一般是指用户绑定到特定设备并不再变更的内容,它也被认为是可识别的,因为它不可变的特性。但它不具有跨设备或跨平台的一致性,而用户标识具备。另一种分组方案是基于 IP 地址的分流,IP 地址相同的事件会划分在同一组。如果用户变更登录地点,他们往往会得到一个新 IP 地址。
1.2 分流单位的选择
分流单位的选择主要考虑三点:
第一是分流一致性。如果使用用户ID,用户获得的体验是连贯的,只要是登录状态,就算更换设备也不会影响体验。对于某些更改,比如测试课程展示效果,用户在各个设备的体验都是一致的。另一方面,如果测试的更改项会影响登录前后的效果,那么用户 ID 用处就不大了(用户未登录时系统无法获取用户ID,而登录后才能获取用户ID,因此系统无法获取未登录用户的行为数据。如果系统在用户未登录时使用其他标识符作为分流单元,在登录后使用户ID作为分流单元,无法保证登录前后的行为准确关联,因此无法保证登录前后的行为被分配到同一组)。比如要变更页面布局或登录按钮的位置,此情况下,用 cookie 会使登录前后体验一致,但不能保证设备间的一致。
此外,确保分流的一致性需考虑更改的用户可见性,对于用户可见的更改 ,需要使用 cookie 或用户 ID。而对于用户不可见的更改(如从延迟变化、后台架构的变化或是排序变化),需要根据第三个考虑因素判断使用 cookie 或用户 ID,还是事件触发等动态单元。
最后,确保分流的一致性还需测量内容,比如测量学习效果,用户是否适应更改,这些案例需要 cookie 或用户 ID 这种状态稳定的分流单元。比如制造网络延迟,确认用户使用量是否减少,需要用 cookie 或用户 ID检查一段时间内的情况。因此对于用户注意不到的变化,需要根据测量内容判断,选择用户 ID 或 cookie,还是事件触发等动态单元。
分流单元类型 | 适用场景 | 示例 |
---|---|---|
用户ID | 需要长期跟踪用户行为(如账户系统) | 用户登录后,根据用户ID固定分流 |
Cookie | 未登录用户的匿名追踪(短期实验) | 未登录用户根据浏览器Cookie分流 |
设备ID | 移动端应用实验 | 根据手机IMEI或广告标识符(IDFA/AAID)分流 |
会话(Session) | 单次访问的独立实验(如页面布局测试) | 用户每次访问都可能被重新分流 |
事件触发 | 与特定行为相关的实验(如按钮点击后的处理) | 用户点击按钮时触发分流 |
注:事件分流
事件分流指每次用户触发某个特定事件时,随机分配到不同的组,而不是基于用户或会话的持续分组。因此同一用户的不同事件可能分配到不同组。
案例1:推荐系统的即时反馈测试
- 目标:测试两种推荐算法对单次视频播放时长的影响。
- 设计:每次用户点击“播放”时,随机选择算法A或B,记录播放时长。
- 分析:比较两组播放时长的均值,校正用户内多次播放的相关性。
案例2:动态定价策略
- 目标:验证价格微调对单次购买决策的影响。
- 设计:用户每次进入商品页时,随机显示价格A或B,记录是否购买。
- 关键点:需避免同一用户看到多次价格波动导致信任下降。
事件分流的优点是包括更高的灵活性,能够测试瞬时的干预效果,而无需担心用户长期行为的影响。
第二是伦理要求。在设计、运行、分析实验时应考虑数据类型和数据可辨识性,使用用户 ID作为分流单元,显然数据是可辨识的。因此如果根据用户 ID 收集数据,需要处理所有安全和保密问题并且获取用户许可。如果基于事件或 cookie 分流,就不一定知道用户身份,用户许可就不是什么问题了。
第三是指标差异性。之前提到如何根据实证计算指标的差异性,当时给出的理由是,因为根据实证计算得出的差异性有时会远高于根据分析方法计算得出的差异性。现在的理由是,当分析单元不同于分流单元时,指标差异性会发生变化。分析单元就是指标的分母,例如在计算点击率指标(点击量除以页面查看量)时, 页面查看量就是分析单元,如果分流单元也是页面查看,那么根据分析方法计算的差异性可能很接近根据实证计算的差异性。
然而,如果分流单元是 cookie 或用户 ID,两个方法计算的点击率指标差异性会相差四到五倍甚至更多,这是需要根据实证计算差异性。相差很大的原因是:根据分析方法计算差异性时,需要对数据的分布情况作一个假设,在作这个假设时,实验者不仅在假设数据的分布情况,还在假设事件具有独立性。因此如果分流单元是事件,就需要为每个事件进行一次随机抽签,独立性假设是有效的。如果分流单元是 cookie 或用户 ID,之前所作的独立性假设就是无效的,因为实验者已经将事件分组,它们之间实际上已存在某种关系,这种关系可能导致差异性升高。
2. 确定目标人群
2.1 目标人群
在讲述如何确定目标人群前,现说明总体、目标人群的含义。总体是指理论上实验可能覆盖的所有潜在个体,包括当前和未来的参与者,例如某产品的所有用户(包括未激活用户)。目标人群是指实验实际关注的特定子群体,例如过去30天活跃的移动端用户,A/B实验的样本从目标人群中进行选择。总体是广义的“潜在实验对象池”,而目标人群是实验中实际研究的具体群体。例如,总体是“所有可能患某种疾病的人”,目标人群是“某地区18-65岁且有症状的患者”。
案例:视频平台测试推荐算法
总体:所有安装过App的设备(包括未登录用户)。
目标人群:过去7天内至少观看10分钟视频的登录用户。
实验设计:
- 仅从目标人群中随机抽取用户参与A/B测试。
- 结论可推广至“活跃的登录用户”,但需谨慎推断到未登录用户或低频用户。
在A/B实验中,当以用户ID或cookie作为分流单元,需要确定目标人群,例如可以根据某些现成条件对用户空间中的用户进行分流(比如使用的浏览器、所处的地理区域、国家、语言、年龄……)。你可以用这些信息来定位用户空间中的某个特定群体。例如,如果要测试某个不确定最后是否会上线的功能,或者这个测试发布的风险较高,那么需要限制参与到实验中来的用户数量。此外,如果想在国际上发布一个新的UI,可能需要经历更多的测试过程,例如当实验者不确定新功能是否兼容旧式浏览器时,可以使用现代浏览器这一条件来限制用户数量。最后,如果要同时在公司中开展多个不同实验,为了避免户重叠,也需要对目标人群进行限制。
当然,也存在不能提前确定目标人群的情况,例如无法识别特定功能将影响哪些用户,例如在分析返回图片的所有搜索查询时无法确定用户空间。同时,在某些情况下实验者可能需要考虑对全局总体进行测试,例如不确定新功能到底是否有效,不确定定位是否准确、是否会如自己所想,或者因为新功能会对流量的 90% 产生影响,因此不必尝试对实验进行定位。在仅根据目标人群相关数据计算指标前,需考虑是否还有必要进行全局性实验,此外还得确保为实验的目标人群和非目标人群设置相同的过滤器,例如避免仅将登录用户分到目标人群中,以免在对比全局总体时才意识到错误。最后,在发布重大更改时,可能要回头开展一项全局实验,以确保相关更改不会对未在实验中定位的人群产生意外影响。
2.2 队列
目标人群还可继续细分为队列。队列是指共同经历某一事件划分出的子群体(通常表示同时进入实验的人),其行为或状态会在时间维度上被追踪。队列的行为通常随时间推移被观测(如留存率、复购率),因此被用于研究群体在时间轴上的变化模式。例如按 cookie 或用户 ID 分流而且关注特定国家,在实验过程中会存在用户减少或增加的情况,而且用户参与实验的时长不同。在使用队列时,需要定义一个进入类别,然后仅关注大约在相同时间加入实验组和对照组的用户,并从那个时间开始进行实验,不必关注在此后加入的用户。此外,实验者从最初的群组开始实验,也可以使用其他信息,如果想了解最近两个月一直在使用网站的用户,或者用户 ID 同时关联了移动设备和桌面设备的用户,实验者可以使用所有这种信息来定义队列。
通常而言,实验者仅会在观察用户稳定性时使用队列,例如观察学习效果或者衡量网站使用的增加情况或者移动设备使用的增加情况,在这些例子中,实验者希望根据用户历史表现了解所做的更改是否对用户的行为产生了重大影响。假设Audacity已开设并正在提供某门课程,有些学员完成了这门课程,有些学员差不多学到了一半,还有些学员尚未参加,他们想试着调整其中一节课的结构,以便了解是否能改善整个课程的完成率。在这种情况下,可能需要使用队列。因为他们想了解的是学员会在课程发生什么情况时暂停或取消暂停一节课(例如更换设备之类的),所以将使用用户 ID 作为分流单元,直接对所有参加课程的学员进行实验是没有意义的,因为有些学员已经完成了这节课并通过了考试,他们看不到课程的变化,因此Audacity使用队列,仅对在实验开始后参加这节课的学员进行实验。队列是目标人群的一个子集,这些学员拥有参加新结构的课程这一共同经历,而且都没有见过旧结构的课程。为进行A/B实验,Audacity将队列拆分为一个实验队列和一个对照队列。
注:队列、目标人群、总体之间的关系
- 队列是纵向追踪的子群体,目标人群是静态定义的实验对象(实验所关注的群体),总体是理论上的最大集合。
- 队列是分析目标人群行为变化的工具,而目标人群是总体的具体化。
- 实际应用中,三者需结合使用:从总体划定目标人群,再从目标人群划分队列,最后通过队列分析挖掘深层洞见。
3. 确定样本容量
3.1 样本容量的确定
确定实验组和对照组的规模是一个迭代过程,实验者应尝试选择不同的分流单元和目标人群,探究它们对实验的规模和持续时间的影响。如果对结果不满意可以重新选择并迭代。
实际显著性、统计显著性以及指标差异性会影响实验所需的规模,此外,指标的差异性还会受到分流单元以及目标人群的影响,因此需要进行多方面的考虑来确定实验规模。同时,实验者需要考虑实验持续时间并弄清楚想分析的事情是否有可能实现。以页面加载时间 90%的延迟为例,如果实验者计划使用基于用户 ID 的分流方式来了解用户体验到的延迟是否会影响其使用网站的频率,执行这个实验投资过高。实验者可以使用网站的历史数据,将连接缓慢的用户作为目标人群,关注最近两个月经常使用网站的用户队列,从而更快获得更多有关他们的数据。虽然这个限制会使得实验范围缩小,但在实际投入时间执行大规模实验之前,它能帮助你弄清楚能否从实验中获得见解。
计算实验所需的具体样本容量的工具:
3.2 样本容量的缩减
在为某一A/B实验确定样本容量时,为考虑进行该实验的工作量且不妨碍其他A/B实验的进行,样本容量不应是总体,应缩减实验样本容量。有多种缩减样本容量的方式:调整α、β值,调整分流单元,缩小实验范围。
以Audacity为例,他们准备更改各门课程在课程列表页面中的显示顺序,使用的指标是各课程页面的总体点击率(用户对任何课程的总点击量/页面查看次数),为了就课程列表给用户提供一致的体验,同时记录实验中未登录用户产生的流量。Audacity选择将cookie用作分流单元,使用标准的 α 和 β 值(分别为 0.05 和 0.2),实际显著性界线dmin是0.01。根据经验,他们估计在使用基于 cookie 的分组单元时,每千次页面查看的标准误差为 0.0628,结果显示Audacity需要每组至少产生300,000 次页面查看才能获得见解,这相当于他们一个月所获得的点击量。Audacity并不希望花长时间来得出实验结果,并且这种方法使他们无法同时开展另一个实验。
在这种情况下,Audacity首先可以增加实际显著性界线,也就是不检测较小的更改,或者增加 α 或 β ,接受较高的误报概率。
其次,Audacity可以将分流单元从cookie更改为页面查看,这样可以降低指标差异性并更贴近分析估计,在这个例子中,Audacity使用页面查看作为分流单元来重新计算标准误差的实证估计量,发现相同样本量的新标准误差是0.0209,这样每组 34,000 次页面查看就够了,不过这一更改的主要问题在于其对用户体验一致性的影响是否可以接受。
最后,Audacity可以将实验目标设定为特定点击量,假设优达学城建立了多种语言的班级,仅针对英语班级开展本次实验,这可能不会缩短实验所需的时间范围,但它允许Audacity同时对非英语用户产生的流量开展其他实验,筛选流量还可能影响对实际显著性界线的选择。首先,因为观察的是总流量的一个子集,Audacity可能需要做出较大更改才能对业务产生影响。或者,因为差异性可能较低,Audacity可能想利用这个优势来检测较小更改,而不是减少实验规模,因为实际显著性界线可能向任意方向移动,实验规模也是如此。但是因为方差可能下降,而实际显著性界线可能上升,所以实际所需规模可能会更小。假设优达学城继续使用页面查看作为分组单元,然后将实验目标设定为仅英语用户产生的流量,以此进一步将标准误差降低至 0.0188,他们还决定将英语用户产生的流量的实际显著性界线增加至 0.015,这样的话,他们只需要获得每组 12,000 次页面查看即可。
3.3 样本容量的诱发因素
在进行A/B实验时,实验者并不总是事先知道什么会受到影响。例如,实验者要为网页设计一个改善方案,但是不知道它将对哪种浏览器最有用或者最没用,或者网站可能具有语言检测功能,它可以检测出这种语言的搜索结果比那种语言的结果多。实验者很难准确预料这些功能将影响多少用户,也许能进行大概估计,但很难为相应实验直接设定目标。例外,实验者还需确定检测影响的方法,例如实验者有一个根据特定条件触发的功能,如果这是一个很明显的用户界面功能,他能够知道它实际影响了多少用户。但如果这是一种后台功能,实验者应该让指标能够体现相应功能应该影响到的用户,以及相应功能实际影响到的用户。
在这些情况中,实验者不确定更改将影响总体中的多少部分,那么在规划实验持续时间和规模时,就要采取保守规划。可以先进行一个试点项目,短时间开展实验,了解哪些用户将受到影响,或者根据第一天或第一周的数据来猜测需要观察总体中的多少部分。
4. 确定实验持续时间和实验暴露比例
确定实验规模后,需要确定持续开展实验的时间、实验开始的日期(返校时间?节假日?)、在实验期间发送流量的比例(多少流量会进入A/B实验)。
假设分组单元为 cookie,实验者关注的是在指定一天中有多少比例的cookie将发送至实验组和对照组。假设需要为实验组和对照组采集共计 100 万个 cookie,在指定某天中只有 100,000 个 cookie 访问网站。如果将 50% 的流量发送给实验组,将剩余 50% 的流量发送给对照组,实验需要持续十天。另一种方案是向实验中的每个组发送 25% 的流量(因为还想执行其他测试),实验需要持续开展 20 天。
不对所有流量开展实验以更快获得结果的原因有:首先是安全性,实验者在推出新功能时,不确定它是否能正常运行。即使能确定这一点,也不确定用户将有什么反应,他们可能会觉得新功能不好用。所以实验者可能想让网站基本维持现状,仅向部分用户开展实验,直到获得满意结果。
第二个原因是压力,假设实验者推出了一个新功能,但不确定将来是不是会保留它,因此不会希望很多人看到它并在网络上传播。
第三个原因是影响结果差异性的不确定因素,例如实验者在采用一半一半的流量分配开展实验时,将采集一天中的所有数据,如果这一天是节假日,这天的数据能否用来做决策。另一个更常见的情景是工作日与周末的行为通常存在很大差异,所以实验者会倾向于针对较小比例的流量开展一个持续多天的实验,从而了解工作日与周末、节假日、一天中的不同时段之间的差异,以及所有其他可能导致差异性的因素。另一个方案是在公司开展多个实验任务,或者针对相同功能开展多个实验任务并为不同任务设置不同水平的参数,或者针对相同功能的不同类型开展实验。如果想直接对比这些方面,就简单的方式就是针对较小比例的流量同时开展这些实验。当其中一个测试受节假日或流量的某个奇怪变化影响时,所有测试都会有相同反应,实验者可以对比这些有着相对顺序的测试。
5. 考虑用户的学习效应
学习效应是指衡量用户的学习情况或者用户是否适应一项更改。之前简要提及了两种类型的学习效应,面对更改,一种是用户感到排斥,一种是用户感到好奇。在这两种情况中,当用户第一次看到更改时,他们会做出这两种反应之一,但是一段时间之后,他们可能做出不同的行为。衡量学习效应的关键问题在于时间,用户需要花时间来适应更改,但实验者通常没有那么多时间来做决策。
如果实验者时间很充裕的话,实验者开展A/B实验需要注意的事项有:首先,需要正确选择分流单元,实验者衡量学习效应时,需要使用有状态的分组单元例如 cookie 或用户 ID。
第二个注意事项是因为学习效应不仅取决于时间还取决于用户看到更改的周期(称之为频率),实验者使用队列而不是总体进行A/B实验,即在实验组和对照组中根据用户看到更改的时间或次数选择队列。
最后一点是风险和持续时间的问题,就持续时间而言,因为要衡量学习效应,这需要花费一定时间才能看到结果,这个时间可能会很长。当某项更改的测试持续时间很长时,实验者不希望让太多用户受到影响,因为最后你可能转而测试其他更改。另一点是风险,实验者在衡量用户的学习效应时,不太确定这个效应到底是怎样的,也就是说 更改的风险可能较高。基于这两个方面,实验者可能会想针对较少比例的用户开展一项持续时间较长的实验。
Google开发了一种可以同时使用前期和后期的方法,前期和后期都涉及一致性试验,Google不会在整个系统中都使用A/A 测试,他们会根据实验组和对照组的具体情况来进行选择。在针对某个总体对实验组和对照组进行 A/B 测试之前(处于前期阶段),总体没有变化,用户看到更改的频率完全相同,这是对相同的用户集进行 A/A 测试。在前期 如果衡量到实验组和对照组存在差异,这些差异应该是源于其他因素(例如系统差异性和用户差异性)。前期不仅在测试用户学习效应时很实用,在所有情况下都很实用,实验者在实验中衡量到的任何差异都源自实验本身,而不是总体中事先存在的固有差异,这就是前期,它相当于说总体中没有任何差异。后期是指在针对实验组和对照组开展实验之后,实验者还准备进行另一个 A/A 测试,在实验完成之后,如果在实验组和对照组的总体中衡量到任何差异,可以认为其源自实验周期中产生的用户学习效应。这些是高级技巧,如果实验者曾开展过成百上千次实验,那么可以利用这些技巧来衡量用户学习效应,否则还是使用那些初级技巧。
6. 逐步扩大实验人数
逐步扩大A/B实验的实验组人数直到所有用户得到变更是一个很好的方法,在Google,当实验者计划发布一个变更时,他们做的另一件事是去掉所有的筛选。例如实验者想要测试变化,如果之前只用英语测试变化,接下来会逐渐增加,对所有用户进行测试,因为实验者想要知道变更对在原始实验中没有测试的未受影响的用户是否有偶然影响。在逐步扩大的过程中有一个复杂问题需要处理,那就是当逐步扩大实验人数时效果可能会变得平缓,即使最开始的影响具有统计学上的意义。显著产生影响的结果在逐步扩大实验人数的过程中不会重复出现的原因有:
各种季节性影响,例如当学生过暑假时,网络行为会发生变化,当他们假期结束以后会再次发生变化。还有其他诸如假期的季节性影响,例如黑色星期五和网购星期一,在这些假期中,购买行为会有很大变化。捕捉这些季节性或事件驱动的影响的一种方法是我们称之为控制的东西,即实验者保持一组用户没有得到更改,向其余所有人发布更改,实验者继续将他们的行为比作是控制。在那种情况下,实验者会看到与实验中发现的相反的影响,实验者可以对它进行实时追踪,直到相信结果实际上是重复的。
还有一个原因是,对于一个变更,有些用户的行为不断发生变化,当用户发现或者接受或者改变对变化的接受情况时,他们的行为会发生变化,因此测量的效果也会改变,这就是队列分析能真正产生作用的地方。
另一个可能发生的情况是如果广告商有预算且时间充裕,如果没有合理控制预算,在逐步改变的时候,实验效应会发生变化。这里需要用到更加复杂的分析法和更复杂的实验设计,例如测量对学习效果的影响,可以使用之前提到的周期前和周期后方法、队列分析方法,尝试理解用户是如何随时间流逝适应改变的。
七、 分析结果
1. 完整性检查
以检验某一更改对点击率的影响为例,在查看实验的点击率结果之前需先进行完整性检查,确保已经恰当地完成了实验。由于实验中有太多环节会出差错,而这将导致实验结果无效,例如实验分配错误导致实验组和对照组无法进行对比,或者在实验组和对照组中使用了设置不同的筛选条件,或者设计了数据采集功能但实际采集的事件并非目标对象。鉴于此,在分析实验结果前需要先对通过检查不变量指标进行完整性检查,主要有两种检查对象。第一种是基于分流单元的总体规模指标,检查实验组和对照组的总体规模是否具有可比性。另一种是实际的不变量,这类指标不随实验的进行而发生改变,实验者需要检测它们是否没有发生变化。完成以上完整性检查之后才能进入更为复杂的分析阶段,判断实验设计是否合理并提出建议。
1.1 检查不变量
通过一个例子讲解检查不变量在对照组和实验组内是否有合理的相似性。假设实验者运行一个实验达到两周,实验的分流单元是 cookie,所以要做的第一个完整性检查是看对照组的 cookie 数量是否大致接近实验组中的数量。实验者收集到了每组(实验组和对照组)每天的 cookie 数量,然后计算每组的 cookie 总量,看整体分布是否均匀。结果显示对照组的 cookie 总量是 64,454,实验组的 cookie 总量是 61,818,对照组的 cookie 比实验组的多。现在需要判断对照组和实验组 cookie 总量的差异是否在预料之内,每条 cookie 都是以 0.5 的概率随意分配至对照组和实验组,
所以问题是共 64,454 条 cookie 被分配至对照组中是否正常。
这个例子是个随机事件,一个 cookie 要么被分配到对照组,要么到实验组,这就像掷硬币般公平,如果硬币的正面朝上就会把 cookie 放在对照组,接下来需要判断的是如果硬币的正面朝上了64,454 次是否奇怪。正面的次数遵循二项分布定理,因此可以构建一个二项式置信区间,样本总量大约是12万,足以将数据分布假设成正态分布。详细步骤如下:
- 首先,计算二项分布的标准差,cookie被分配到对照组的成功率为0.5。
- 然后,用标准差乘以置信度的 z 值,得到误差范围。
- 接着,计算一个 0.5 左右的置信区间。
如果实验设置合理,观察到的成功率很有可能落入置信区间,因此实验者应检查观察到的成功率是否落入置信区间。现在以此数据为例操作这些步骤,标准差是 0.0014,置信度例取 95% (则 z 值是1.96),所以误差范围是 0.0027,这意味着置信区间为 0.4973 至 0.5027,所以 95% 的概率观察到的成功率会落在该范围。实际上成功率是 0.5104,明显超过了 0.5027,所以设置有点问题。
为了更好地查明哪里出了问题,最好再看一遍每日数据,检查是由于某天的数据异常导致该问题还是整体模式出了问题。如果没有哪一天是明显最异常的,这表明是总体模式的问题而非具体某一天的问题。在这种情况下,应救助工程师查明实验设置是否有问题,如果没用,可以尝试进行分割,比如以国家、语言 或平台为标准进行分割,看是哪个部分可能造成该问题,或者你可以查看各组中 cookie 的龄长,看是否一组常有新 cookie 而另一组有旧 cookie,或其他类似这样的事情。
1.2 完整性检查失败后应做的措施
如果完整性检查失败了,不要继续分析实验结果,而是分析完整性检查失败的原因。在真正分析实验之前,必须调试并找出问题所在,如果越过这一步骤,实验结论肯定是错误的。试错的路径可以有好几个:
- 首先可能是技术上出了问题,要和工程师一起查明实验架构是否出了问题,实验设置是否正确,实验分流是否出错,和工程师一起调试实验设置。
- 可以尝试的第二件事是回顾性分析,尝试从数据采集方面重新进行实验分流,这经常是完整性检查失败的原因。
- 第三件事是可以尝试利用实验前和实验后的时间段,在实验前可以检查不变量是否发生变化,如果在实验前和实验中都看到过,那问题就出在实验结构、设置等方面。如果只在实验中看到了更改,实验前没看到,那问题就出在实验本身上了,可能是数据采集或相关方面的问题。
两组数据数据不匹配最常见的原因就是数据采集,尤其是想采集用户正在体验的新实验数据时,可能实验者的采集不准确,也许变更很少触发,实验者在实验组中正确采集了数据,但在对照组中没有快速采集,所以没有进行同类比较。但也可能是其他原因,像实验设置,比如筛选器只筛选英文,可能实验者对实验组进行了设置,但没有设置对照组,导致结果没有可比性。更少见一点的原因还有实验架构或实验系统等问题,或者发生了一些事情,比如重设 cookie,这就会把实验搞砸。
现在记住一件重要的事,所有的这些对比都是近似值,所以实验者不会得到完全相同的数字,只会是近似相同。
可能会有人认为两个组的差异可能是学习效应导致的,但关键的问题是,如果真的存在学习效应,在实验的一开始看不到太多改变,它是随时间增加的。所以如果从一开始就看到一个很大的改变,可能不是学习效应。
2. 单项指标分析
2.1 单项指标分析具体流程
实验者的目标是制定业务决策,判断实验是否对指标产生积极影响。从实验分析的角度来说,就是判断实验结果是否具有统计显著性。而且一般而言,实验者希望能够预计更改的幅度和方向,掌握这些信息后就可以决定是否建议该业务落实此项实验。
判断更改是否具有统计显著性需要对分析 A/B 测试所需的差异性进行评估,如果实验结果不具有统计显著性就需要多花点时间来分析结果,如果希望发现显著差异就更应如此,比如可以把实验分到几个不同的平台里、分散到每周的不同时间进行,这样不仅能帮助实验者找到实验设计的 bug,还可以让实验者重新假设人们对实验的反应。此外,实验者也可以通过其他方式进行检验,比如使用非参数符号检验法,将得到的结果再与参数假设检验的结果对比。
接下来以具体案例解释检验更改是否具有统计显著性的流程。假设 Audacity 进行实验以测试
“现在开始”按钮颜色和位置的更改效果,他们选择的指标是点击率,分流单元为 cookie,实际显著性最小值为 0.01,α 值为 0.05,β 值为 0.2。实验运行一周后进行完整性检查(检查两组的页面浏览量是否具有可比性),然后开始分析实验结果。
点击率很可能形成泊松分布假设,其分析比二项分布更加困难,所以为计算置信区间,可以通过实证估算方差。Audacity 计算出实证标准误差,当每组页面浏览量的样本量为 10,000 时,标准误差为 0.0035。假设标准误差与根号下两组数据的样本量分之一的和成正比,因此计算本项实验的标准误差可以使用以下等式,即实证标准误差除以实证比例系数等于本项实验的标准误差除以本项实验的比例系数,其中本项实验的比例系数与对照组和实验组的页面浏览量相关,算得实验标准误差为 0.0041。接下来计算对照组和实验组的点击率之差,实验组点击率减去对照组点击率得出的结果为 0.0300。再计算误差范围,标准误差乘以1.96 等于 0.0080,置信区间则为 0.0220 至 0.0380。置信区间不包括实际显著性最小值 0.01,这说明有 95% 的把握可以判定更改网页成效明显,具有推行价值。
但是保险起见,可以通过符号检验复查一下。首先,计算每天的点击量除以对应的页面浏览量。其次,符号检验需要知道实验天数,本项实验运行的天数为 7。另外,还需要知道更改效果为正的实验天数,对比每天两组的点击率后发现实验组每天的点击率都很高,这从表面看来对实验有利,但是这种情况随机发生的可能性有多大?如果不考虑其他因素,网页更改每天都有一半机会取得积极成效,所以接下来的问题是如果在相同条件下分别运行实验 7 次,得到积极成果的概率有多大?它的计算方法与前面总体完整性检查相同,本项实验中,事件为每天,得出的两个结果为积极成果和消极后果,且得出某一结果的概率为 50%,但是实验者不能假设是正态分布,因为7天不足以使二项接近正态分布。实验者可以用二项分布的概率密度使用在线计算器进行计算,首先输入观察到的成功数量,将“结果”定义为积极成果(即实验组点击率高于对照组),实验运行 7 天则成功的结果数量为 7,然后在概率处填入 0.5 点击“计算概率”,双尾 P 值结果 0.0156即为随机得到积极成果的概率。由于该数据小于设定的 α 值 0.05 ,符号检验的结果与假设检验一致,表明积极成果的出现不具有随机性,因此建议不会改变。
2.2 辛普森悖论
如果符号检验的结果与假设检验不一致,或者周末的数据具有显著性但工作日相反,要做的第一件事是仔细观察实验特征是如何发挥作用的,它的运行过程是否因不同的平台而异,比如只适合一种平台。但是某些统计因素确实会导致与正常直觉相反的结果,其中常见于一般实验中的是“辛普森悖论”,它指的是数据可分成许多不同的小组(如用户数量),而且每个小组的结果单独看来都是稳定的,但是一旦合并考虑,各小组的数据共同对最终结果产生影响。
以伯克利大学研究生招生为例解释辛普森悖论。将各小组的数据合并后观察录取率(即录取人数除以申请人数),发现女生录取率比男生录取率低的值具有统计显著性,但是再观察各院系的录取率后,发现某些院系的女生录取率高于男生。原因是各院系的录取率是变量 从 6% 至 60% 不等,所以应当按照院系分别分析录取率,事实是更多女生申请了录取率很低的小院系,所以不考虑院系差异,将数据合并后,就会发现 女生的录取率很低,但是分别计算各院系的录取情况后则发现 男生和女生的录取率具有可比性。
同样,在关于点击率的A/B实验中也会存在辛普森悖论,实验有一些子组,比如在工作日更多地使用它的人,或者在周末更多地使用它的人。实验者可能会发现新用户的使用情况与周末使用相关,而资深用户的使用情况与工作日相关,所以有时实验者会从中发现对实验结果产生影响的是各子组的人数,在各子组范围内,用户的行为具有稳定性,得出的分析结果可能具有统计显著性,也可能没有,但是如果把各子组的数据合并起来,分析结果会受到所有小组流量变化的影响。例如分析实验组的总数或将实验组结果合并后算得的实验组点击率低于对照组,但是分别分析新用户和资深用户的情况,又得到相反的结论。
3. 多重指标分析
3.1 多重比较方法
当有多个而不是一个评价指标时会出现一个问题,那就是测试的东西越多,越有可能偶然发现显著差异,所以如果测试 20 个指标,置信度为 95%,至少有一个指标显示显著差异,但它只是偶然发生的。所以这是个问题,但是它不会重复发生,也就是说如果改天再做同一个实验或者分割或者只是切片或者做一些bootstrap分析,不会看到同样的指标每次都显示出显著的差异,它应该是随机发生的。还有另一种技术叫做多重比较,它调整你的显著性水平,以此解释实验者做了多少个指标或多少个不同的测试。
以一个关于跟踪多重指标的实验为例,假定 Audacity 在学生错过小测试时鼓励学生,问他们是否愿意和学习教练联系,Audacity做实验使这个信息更频繁地出现。他们追踪不同的指标:学生在课程中选择教练的概率、学生在课程中选择教练的速度、学生支付的平均价格,然后分别做三个重要的测试,每个测试 α=0.05,至少有一个指标会显示显著要差异(假正例)的可能性是:
1-0.95*0.95*0.95=14.3%
这个计算做了一个假设,把这些概率相乘代表假设指标是独立的,事实上,这三个指标是相互联系的,很有可能一起发生变化,所以 14.3% 高估了出现假正例的可能性,但是假设独立性方便做出保守估计。
追踪多个指标的主要问题是假正例,随着增加测试的指标数量,原本罕见的事情会变得更常见。实验者可能会使用置信度高的单个指标,从而降低出现假正例的总概率,具体使用什么样的置信度取决于你要多保守的结果。第一种方式是假设每个指标是相互独立的,然后使用之前计算总 α 时使用的相同的等式,把总 α 设置为想要的(如 0.05),然后计算能得出总α的单个 α。另一种方法是使用 Bonferroni 校正法,Bonferroni 校正法有两大优势:方便计算、没有任何假设,也就是说,它不像第一种方法进行独立性假设。Bonferroni方法也是非常保守的,它保证总的alpha值至少实验者指定的一样小。同样,它没有做任何假设,根据研究情况,这可能是研究者想要的,也可能不是。要使用Bonferroni校正,可以通过实验者想要的总体alpha除以指标的数量来计算每个指标应该使用的单个alpha。因此,如果有三个指标,并且希望假阳性的总体概率为0.05,用于每个指标显著性检验的单个alpha等于0.05除以3为0.0167。
Bonferroni修正的主要问题是,实验者通常会追踪有相关性的参数,并且所有参数都倾向于同时移动。在这种情况下,这种方法过于保守。在我们之前的教练例子中。如果用户在课程较早的时候就开始接受辅导,那么接受辅导的可能性也会上升,价格也更有可能发生变化。因此,在这种情况下,Bonferroni方法对于Audacity的需求来说可能过于保守。这将导致他们进行的实验比他们希望的要少。
3.2 组合指标
当有多个指标时,实验者会希望相关的指标会向同一个方向移动(例如在测试点击率和点击概率时,它们会向同一个方向运行)。另一件可能发生的事是如果有一个组合指标,例如 RPM(每一千个查询的营业额,由点击率和每次点击的成本组成),所以如果RPM是一个方向的,实验者需要从每次点击成本的点击率中理解为什么它会朝着这个方向发展。
话虽如此,多个参数可能难以控制。假设已经确定了页面上的阅读时间或停留时间是一个很好的信号,代表人们喜欢这个页面。同时,点击也是一个很好的信号。但是当对页面进行UI更改时,可能会发现,人们花更少的时间阅读,但点击的次数更多。实验者必须了解人们对变化的反应,因为无法定量地评估哪一个更好。这也是为什么实验者想要单一的组合指标,这样他们就可以根据它做出决策。
当实验者制定组合指标时,最主要的问题是如何找到一个好的组合指标。实验者需要了解公司在做什么,问题是什么,以便关于平衡多个指标提出建议,比如该怎么平衡停留时间和点击量,因为对用户体验来说,点击是一个糟糕的衡量标准。实验者需要明白关于组合指标的事情是,它并不能帮助实验者理解为什么停留时间和点击会朝着不同的方向移动,平衡长期投资(如网站回访)和短期日常指标(如增加点击量)有什么好处。实验者不想为了追求一个而失去另一个,因此,最好的组合指标通常会在这两者之间取得很好的平衡。
4. 做出决策
一旦得知了哪些指标发生了显著变化,如果结果有统计意义,意味着很有可能对用户体验产生影响,问题就会变为A :你了解这个变更吗?B :你想发布这些变更吗?
如果一些指标在统计时有显著变化但是在其他指标中没有,那又回到问题 A :你了解这个变更吗?直觉和许多其他实验的经验能在这里提供帮助。例如对于一些小的变更,一个指标存在变化而其他指标没有变化是比较正常的,但是如果对于一个大变更,一个指标存在变化而其他指标没有变化,那可能表明出了问题。
如果变更对一小部分用户有积极影响但是对其他用户没有影响或者有负面影响,实验者需要了解这个现象发生的原因,这是一个关于有不同用户的问题吗?他们有多喜欢或者不喜欢这种变化?
在其他实验中见过那些影响吗?有 bug 吗?这些都是有可能的。当在一些用户和其他用户间有变化时,例如粗体,我们喜欢把某些词加粗来强调,加粗英文或者德文等类型的字母强调效果非常好,但是如果加粗日文、韩文或者中文会使它们变得难以阅读,也会增加用户的阅读难度。在那种情况下,实验者会为那一部分用户做些不一样的事,不用加粗字体,可以使用不同的颜色。
关于是否决定发布变更,实验者必须问自己几个问题。首先,有没有统计学意义上的和实际意义上的结果证明这些变更有道理。第二个问题,实验者是否了解那些变更实际上对用户体验有什么影响?第三个问题 它是否值得?现在要记住的关键是,最终目标实际上是提出显示实验者判断的建议。这不是关于设计实验,运行实验,适当调整实验的规模,正确选择所有的度量标准,以及所有这些不同的事情。
5. 总结
进行A/B实验时,首先需要检查,并再三检查实验设置是否正确,检查最终方差,确认实验指标合理性,然后在进行其他操作前再检查一次。请记住,实验者不仅在追求统计显著性,其实也在做业务决策。假如统计显示实验显著提升了30% 的用户体验,但对其他用户而言仍然不变,是原封不动地开始实验还是想试着改进呢。假如实验改善了 70% 的对象但却使另外 30% 变得更糟,那么就需要决定是否保持实验设置不变或先试着做些微调。此外,不要忘记做全面的商业分析,例如保持这项更改的工程成本是多少?是否有客户支持或销售问题?总的来说,如果选择做出更改,相对于在更改后将得到的报酬或不做更改而言,更改的机会成本会是多少?这都是关于用户体验和商业的判断与抉择,最终的酬劳也得基于这一切。
如果实验者还没通过任何渠道测试更改,即使其伴随的影响很微小,也应立即对此进行测试。如果这是实验者做的第一个实验,尤其当这个实验项目很大或很重要时,还想试着进行几个不同的实验,那在决定启动该实验之前先分析结果,再看看第一个实验的结果是否满意。