ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

A/B test 原理全解:随机化、p 值与样本量计算

A/B test 原理全解:随机化、p 值与样本量计算 上周和一个做增长的朋友吃饭他给我看了一份挺典型的复盘改版页面跑了 14 天转化率从 4.8% 涨到 5.1%p 值 0.03团队欢天喜地全量上线。三个月后大盘转化率没动甚至还掉了 0.1 个百分点。他问我明明当时是显著的为什么上线之后什么都没发生。这个问题我大概被问过几十次。答案不复杂——他们做的那份 A/B test从头到尾其实只做对了一半把流量分成了两组却没有建立起一套能让结论站得住脚的推断逻辑。这篇东西我打算把 A/B test 背后的原理从头到尾捋一遍不写平台操作手册只讲这台机器是怎么转的随机化为什么能换来因果结论、p 值究竟在回答什么问题、样本量公式里的每一个符号对应现实中的什么、以及哪些环节会让一个显著的结果悄悄变成噪声。适合已经会用工具但说不清原理的产品、运营、数据分析同学也适合刚开始接手实验平台的后端工程师。1. 从一次翻车的改版说起A/B test 到底在比较什么1.1 没有随机化你比的是人群不是策略很多人对 A/B test 的理解停在分两组、看数据、选好的这一层。但如果只做到这一步你得到的其实是一份观察性研究不是实验。区别在哪举个特别土的例子假设你想验证喝咖啡能不能提高工作效率你找了一群自愿喝咖啡的人发现他们效率确实更高。这个结论成立吗不一定。因为愿意喝咖啡的人可能本来就更年轻、更抗压、更愿意加班——你比较的不是咖啡的效果而是喝咖啡的人和不喝咖啡的人这两拨人的差异。线上实验同理。如果改版页面的用户是通过用户自己选择进入新页面这种方式分出来的那你测出来的差异里混着用户主动性的差异、渠道来源的差异、活跃度的差异。这些混杂变量confounder就像一个永远关不掉的背景噪音让你无法把效果归因到策略本身。随机化解决的正是这个问题。当分流完全由系统在用户访问的那一刻决定并且和用户的一切属性无关时两组在实验开始前的期望值是相同的同样的性别比例、同样的地域分布、同样的历史消费金额、同样的设备型号甚至连今天心情好不好这种你根本采集不到的变量期望上也是平衡的。这时候两组之间唯一的系统性差异就只剩下你施加的那个策略。这里有个很关键的细节容易被忽略随机化的单位要和你的分析单位一致。分流按用户分分析就要按用户聚合分流按会话分分析就得按会话来算。我见过一个团队分流按 device_id 做分析时却按 session 去重结果同一个用户在不同会话里可能进了不同组两组之间的污染让效应量被稀释了一大截本来能测出来的提升变成了不显著。1.2 潜在结果框架因果推断的最小内核要真正理解 A/B test绕不开一个叫潜在结果potential outcomes的框架。它看起来很抽象但一旦想通后面所有统计概念都会变得特别好理解。对每一个用户我们想象存在两个平行世界的结果如果他看到旧版本转化率是 Y(0)如果他看到新版本转化率是 Y(1)。我们真正想知道的是这两者的差 Y(1) − Y(0)也就是个体处理效应。而 A/B test 之所以需要那么多流量根本原因就在于一个人不可能同时出现在两个世界里我们永远只能观测到其中一个值另一个永远缺失——这就是统计学里说的因果推断的根本问题。既然个体效应测不到我们退而求其次去测平均处理效应ATEE[Y(1)] − E[Y(0)]。随机化之后实验组的平均结果是对 E[Y(1)] 的无偏估计对照组的平均结果是对 E[Y(0)] 的无偏估计两者相减就得到 ATE 的无偏估计。理解了这一层你就能明白为什么两组基线必须可比是所有实验设计的第一原则也能明白为什么那些事后补救的办法比如拿历史数据做对照组、用倾向性得分匹配永远只能算近似——它们试图在随机化缺席的情况下人工造出可比性但总有一些看不见的变量匹配不到。2. 假设检验这台机器是怎么转起来的2.1 零假设与两类错误把证据不足和证明无效分开A/B test 的结论输出本质上是一次假设检验。我们先把立场摆成最保守的样子零假设 H0 是新版本和旧版本没有差异备择假设 H1 是有差异。然后我们看手里的数据在这两个假设下分别有多大概率出现——如果数据在 H0 下出现的概率低到某个阈值以下我们就说不太可能是巧合拒绝 H0。拒绝 H0 的时候可能犯错这是第一类错误假阳性策略其实没用我们却说有用然后全量上线白白浪费改动成本甚至伤害用户体验。不拒绝 H0 的时候也可能犯错这是第二类错误假阴性策略其实有用我们却没测出来把一个好的改动扔进了垃圾堆。这两类错误的代价完全不对称。第一类错误的代价是把坏东西推给全量用户第二类错误的代价是错过一个机会——但机会可以重来糟糕的改动上线之后想撤回就麻烦了。所以业界默认把第一类错误率 α 卡在 0.05也即 95% 置信水平而把第二类错误率 β 放到 0.2也即 80% 统计功效。这个不对称的选择不是数学推导出来的是业务代价权衡出来的。注意α 和 β 是你在实验开始之前就要定下来的不能在看到结果之后再调。看到结果之后说这次我们放宽到 0.1 吧本质上就是在给自己发一张作弊许可证。2.2 p 值不是策略有效的概率这是我在面试和评审会上见过最多的误解。p 值的定义是在零假设成立的前提下观测到当前结果或更极端结果的概率。注意它的条件——它假设 H0 为真然后算数据的概率。它完全没有回答策略有效这件事的概率有多大。用更直白的话说p 0.03 的意思不是这个策略有 97% 的概率有效而是如果新版本其实毫无作用那么纯靠随机波动也有 3% 的概率出现至少这么大的差异。这是一个关于数据的陈述不是一个关于假设的陈述。还有一个更隐蔽的坑p 值显著不等于效应量大。当样本量足够大时哪怕真实差异只有 0.01 个百分点也能算出极小的 p 值。反过来样本量小的时候一个 20% 的真实提升也可能给出 p 0.4。所以看结果永远要两件事一起看p 值回答是不是真的有效果效应量回答效果值不值得做。我在评审时最常说的一句话就是先看置信区间再看 p 值。2.3 置信区间比 p 值信息量更大的一种读法置信区间给的是效应量的一个区间估计。95% 置信区间的含义是如果把这个实验重复无数次每次算一个区间那么大约 95% 的区间会包含真实的效应值。注意不是真实效应有 95% 的概率落在这个区间里——真实效应是个固定值它要么在里面要么在外面没有概率可言。这个区别有点学究气但它会影响你对结论的解读方式。实操上置信区间至少告诉你三件事效应量的方向区间是否跨过 0、效应量的量级区间的中心在哪、估计的精度区间有多宽。一个很典型的场景是新版本提升 0.8%95% CI 是 [0.1%, 1.5%]。这个结果说明策略大概率是正向的但上限和下限差了 15 倍说明精度还不够这时候贸然全量上线是有风险的更稳妥的做法是继续累积样本或者做一个更长期的观察。另外一个经验如果你的置信区间下限刚好压在 0 附近等同于 p 值刚好压在 0.05 附近这种临界显著的结论千万别当成坚实的证据。它可能就是一次运气重复实验很容易翻盘。3. 样本量这道算术题十个项目九个算错3.1 从 MDE 反推先想清楚你要抓住多大的提升样本量计算的第一步不是套公式而是回答一个业务问题这个改动至少要带来多大的提升我才愿意为它投入资源这个值叫最小可检测效应MDEMinimum Detectable Effect。MDE 定得越大需要的样本量越小实验越快出结果但小提升你就抓不到MDE 定得越小实验越灵敏但需要的样本量和时间会指数级上升。这里有个反直觉的地方样本量和 MDE 的平方成反比。MDE 缩小一半样本量要涨 4 倍。所以如果你想把能检测的最小提升从 1% 缩到 0.5%流量的压力是四倍不是两倍。怎么定 MDE 才算合理我一般用三个参考一是这个指标的日常波动幅度MDE 至少要比这大否则实验永远做不出结论二是历史实验的典型效应量看看同类改动一般能带来多少提升三是这次改动的投入产出比如果一个小改动只值 0.1 个百分点的提升那就别做实验了直接上线看大盘反而更经济。3.2 把公式拆成可以手算的四个因子两比例检验转化率类指标最常用的每组样本量公式是这样的n (z_{1-α/2} z_{1-β})² × [p1(1-p1) p2(1-p2)] / (p1 - p2)²我们把它拆成四个因子来看因子含义典型取值对样本量的影响z_{1-α/2}显著性水平对应的分位数α0.05 → 1.96降低 α 需要更多样本z_{1-β}统计功效对应的分位数β0.2 → 0.84提高功效需要更多样本p1(1-p1)p2(1-p2)指标的方差项随基线转化率变化转化率越接近 50%方差越大(p1-p2)²效应量的平方由 MDE 决定效应越小需求越大且是平方关系第一、第二个因子合起来(1.96 0.84)² 7.84这个常数在 α0.05、功效 80% 的条件下是固定的。你可以记成7.84 法则后面手算会快很多。第三个因子有个容易被忽视的性质当基线转化率接近 50% 时方差项最大需要的样本量最大当转化率接近 0% 或 100% 时方差项很小样本量需求下降。所以同样是提升 5% 的相对幅度从 50% 提升到 52.5% 需要的样本量比从 2% 提升到 2.1% 要大得多——因为后者是绝对提升 0.1 个百分点前者是 2.5 个百分点绝对值差了 25 倍。3.3 一个完整的手算案例与实验时长假设你在优化一个注册页基线注册转化率 5%你希望抓住相对 10% 的提升也就是从 5% 提到 5.5%绝对提升 0.5 个百分点。α 0.05功效 80%。代入公式p1 0.05, p2 0.055 方差项 0.05 × 0.95 0.055 × 0.945 0.0475 0.051975 0.099475 效应项 (0.005)² 0.000025 n 7.84 × 0.099475 / 0.000025 ≈ 31,195每组大约需要 3.12 万人两组加起来 6.24 万人。接下来算时长如果你的页面每天有 1 万 UV分流后每组 5000 人那么 31195 / 5000 ≈ 6.24 天。这时候千万别直接取 7 天完事要往后凑到整周——一周七天里工作日和周末的用户行为差异往往比你想的大。取 14 天更稳因为可以顺带覆盖两个完整周期同时也能观察效应随时间的变化趋势。还有个隐藏的坑样本量和时长的换算里必须考虑实验曝光率。分流进了实验组不等于用户真的看到了改动。如果一个页面的首屏触发率只有 60%那实际有效样本只有名义样本的 60%你的实验时长要按 1/0.6 放大。我见过太多实验跑了很久还是没结论最后发现是曝光埋点埋错了位置一半用户压根没进分析口径。4. 让结论失效的几类隐性 bug4.1 SRM分流比例不对后面全白算SRMSample Ratio Mismatch是实验平台里最应该被自动化监控的一项指标。它的意思是实际分流比例和设计比例出现了统计上显著的偏离。你设计的是 50/50跑完发现有 50.8% 在实验组、49.2% 在对照组这个偏离如果超出了随机波动的范围就说明分流链路出了问题。为什么 SRM 这么要命因为它意味着分流的随机性被破坏了。可能的原因五花八门实验组页面加载变慢导致一部分用户没等到曝光就走了、某个渠道的流量在分流前就被过滤掉了、埋点上报失败在某一组更严重、甚至不同组的缓存策略不一致。不管是哪种一旦随机性被破坏两组就不再可比你后面所有的统计推断都建立在一个错误的前提上。检测方法很简单用卡方检验χ² Σ (观测值 - 期望值)² / 期望值两组各 5 万流量的实验期望 25000/25000观测到 25400/24600代入得到 χ² 160000/25000 160000/25000 12.8自由度 1对应 p 值约 0.00035严重超出 0.001 的告警阈值。提示行业里常用的 SRM 告警阈值是 p 0.001 而不是 0.05。原因是 SRM 检查是每次实验都要跑的例行检查属于多重比较场景用 0.05 会产生大量误报把真正的问题淹没在噪音里。4.2 多重比较与 p-hacking看得越多越容易发现效果这是新手最常踩的坑也是最难自查的坑。假设你做一个实验同时监控 20 个指标每个指标在 α 0.05 下独立检验。那么至少有一个指标显著的概率是 1 − 0.95²⁰ ≈ 64%。也就是说即使你的改动完全没有任何作用你也有六成以上的概率找到一个显著的指标。这就是多重比较问题。每多看一个维度、多切一刀人群你就多买了一张中奖概率 5% 的彩票。切分维度是 p-hacking 的重灾区整体不显著那就按性别切、按地域切、按新老用户切切到某个子群体显著为止然后拿这个结论去汇报。这个操作在方法上有个名字叫子组分析如果它不是实验前预先注册好的那它的结论可信度非常低。正确的做法有几种。最保守的是 Bonferroni 校正把 α 除以检验次数做 20 个检验就把阈值降到 0.0025。这个办法过于保守容易把真实效应也过滤掉。更常用的是 Benjamini-Hochberg 方法控制错误发现率FDR而不是整体错误率允许一定的假阳性比例在指标数量多的时候更平衡。不管用哪种方法有一条原则是铁律事前注册分析计划。在实验开始之前把主指标、次指标、护栏指标、要切分的维度全部写清楚跑完之后严格按计划分析。任何计划外的探索性分析都要明确标注为探索性并且用一个独立的实验去验证它。4.3 辛普森悖论、新奇效应与幸存者偏差辛普森悖论可能是最反直觉的一个坑。举个具体的例子假设实验组在移动端的转化率是 6%对照组是 5%实验组在 PC 端的转化率是 3%对照组是 2.5%。两个端上实验组都赢但整体一算实验组的整体转化率反而比对照组低。原因很简单移动端整体转化率高但实验组的移动端流量占比只有 30%而对照组的移动端占比有 70%加权之后整体就被拉低了。这个悖论在实验里的实际表现就是分流虽然随机但用户在实验期间使用什么设备这件事可能在两组间不自平衡尤其是实验周期短、样本量小的时候。所以在看整体结论之前先检查关键分层维度上的流量分布是否平衡是一个非常值得养成的习惯。新奇效应是另一个慢性毒药。用户看到一个全新的界面出于好奇会多点几下前几天的数据特别好看之后逐渐回落到正常水平。反过来还有首因效应老用户对新界面不习惯短期内数据下滑适应期过后才回升。这两种效应都会让短周期实验的结论失真。对抗它的办法有两个一是看趋势不看均值把实验期间按天拆分画出两组的日度指标曲线看差异是不是随时间收敛二是拉长观察窗口对涉及到用户习惯改变的改动实验周期至少要覆盖两周以上理想情况下还要做一个上线后回看的对比看全量后的效果是否和实验期一致。幸存者偏差则常见于需要用户多次回访的场景。比如一个改动可能让一部分用户第一次访问就流失了但留下来的用户活跃度更高导致后期的指标看起来变好了。这种时候必须把指标定义成每个进入实验的用户的口径而不是每个完成某项行为的用户的口径否则你就是在幸存者里挑数据。5. 把方差压下去CUPED、分层和序贯检验5.1 CUPED 的直觉用实验前的自己当自己的对照组前面算样本量的时候那个方差项 p(1-p) 是整条公式里最让人不甘心的地方。它代表的是用户之间的天然差异——有的人天生爱下单有的人天生不下单这些差异和你的改版毫无关系却贡献了大部分的统计噪音。CUPEDControlled-experiment Using Pre-Experiment Data的思路很朴素既然每个人在实验前都有一段历史行为数据那我能不能用这段历史数据来解释掉一部分实验期指标的波动如果能剩下的波动就更小样本量需求就更低。具体做法是构造一个协变量 X通常是实验前同一指标的取值比如实验前 14 天的日均活跃天数或历史下单金额然后调整后的指标是Y_cuped Y - θ × (X - E[X]) θ Cov(Y, X) / Var(X)E[X] 是 X 在整个实验人群里的均值。这个调整的巧妙之处在于θ 和 E[X] 都是基于全量数据估计的对实验组和对照组施加的是同一个偏移量所以调整之后两组之间的期望差异不变但方差被压低了。方差降低的比例正好等于 ρ²也就是 Y 和 X 的相关系数的平方。如果历史行为和实验期指标的相关系数是 0.5那么方差降低 25%等价于样本量需求降低 25%或者实验时长缩短四分之一。相关系数到 0.7方差降低 49%接近砍半。这个收益在流量紧张的业务里是实打实的救命稻草。选协变量有几个讲究第一必须是实验前的数据任何实验期间的数据都不能用否则就是引入了策略本身的效应第二必须和实验期指标有稳定的相关性相关性太差的话 θ 会接近 0白白增加复杂度第三不能对策略本身敏感比如你的策略可能影响用户的回访频率那就别用回访频率当协变量。5.2 序贯检验与偷看问题几乎所有做实验的人都会犯同一个错误每天看一次数据。今天涨了再等等看今天跌了是不是该停了。这个行为有一个专业名字叫 peeking它会让实际的假阳性率大幅膨胀。原因在于p 值是随着样本累积而随机游走的。实验跑到第 3 天 p 值可能是 0.3第 5 天变成 0.04第 7 天又回到 0.15。如果你只在 p 0.05 的那一刻决定停止实验那你实际上是在做无数次检验并只保留了成功的那一次——这就是前面说的多重比较只不过检验的次数变成了天数。有研究做过模拟持续 peeking 的情况下名义 α 0.05 的实验实际假阳性率能膨胀到 0.2 以上。解决思路有两条。一条是固定地平线实验开始前定好结束时间中途绝对不看结果到点一次性分析。简单粗暴但有效适合大部分中小规模的实验。另一条是序贯检验。它的做法是根据已经累积的样本比例动态调整显著性阈值。经典的实现有几种边界设计Pocock 边界在各阶段用同一个较宽的阈值适合希望尽早停止的场景OBrien-Fleming 边界早期极严格、后期逐渐放松适合绝大多数实验因为它在早期几乎不给你停止的理由从而保护了整体的 α。最近几年还流行起来一种贝叶斯视角的替代方案它直接计算新版本比旧版本更好的概率让业务方更容易理解。但要注意贝叶斯方法的结论依赖于先验分布的选择先验取得越保守越难得出显著结论。如果团队里没人能说清楚先验是怎么来的那这个方法反而容易造成误读。5.3 分层、配对与 CUPED 的边界条件CUPED 之外还有两个常用技术。分层随机化是把用户按某个关键属性比如历史活跃度分桶、地域、新老用户先分成若干层然后在每一层内部独立随机分组。这样做的结果是关键属性在两组间几乎完全平衡方差也随之降低。它的实现成本比 CUPED 低不需要历史数据的存储和计算适合任何有明确分层维度的场景。配对设计是把相似的用户两两配对然后在每一对里随机指定一个进实验组、一个进对照组。理论上能最大程度消除个体差异但实现复杂而且要求你有足够可靠的相似度度量实际业务里用得不多。最后说说 CUPED 的边界。它有一个前提经常被忽视实验分流的随机化单位必须和分析单位一致并且协变量需要在分流之前就已经确定。如果一个用户可能在实验期间被重新分流那他的历史数据对应的协变量就不能用了。另外CUPED 对极端值的处理要特别小心如果历史消费金额的分布有严重的重尾比如电商场景里 1% 的用户贡献 40% 的 GMVθ 会被少数极端值主导调整后的结果反而可能不稳。这种情况下我一般会先对协变量做截尾或取对数再算 θ。6. 从指标到决策实验设计与工程实现里的硬骨头6.1 指标口径主指标、护栏指标与触发时机一个完整的实验至少要有三类指标。主指标是你想改进的那一个通常只有一个最多两三个多了就变成多重比较灾难。次指标用来解释主指标为什么变化帮助你判断这个变化是好是坏比如主指标是下单转化率次指标可以看加购率、页面停留时长、支付成功率。护栏指标是那些你绝对不能让它变差的指标比如崩溃率、页面加载时间、退款率、投诉量。护栏指标的作用不是告诉你策略有效而是告诉你策略有没有副作用。我见过一个很典型的案例某个弹窗优化让点击率提升了 30%看着很好但护栏指标里的次日留存掉了 2 个百分点——因为弹窗太打扰用户关掉 App 就不想再打开了。如果只看主指标这个改动会被当成大成功上线实际上是长期伤害。另一个容易被忽略的是触发时机。用户在什么时刻被算作进入了实验直接影响样本量和指标口径。常见的有三种口径进入页面就算、看到改动区域就算曝光触发、完成某个动作才算转化触发。前者的样本量最大但噪音也最大因为很多人其实没看到改动后者的样本最干净但会引入选择偏差——因为是否完成动作本身可能被改动影响。行业里比较通用的折中是曝光触发用它来定义分析人群同时把只看过一半页面的用户排除掉。6.2 分流实现哈希、层与域分流的技术实现说起来简单做起来细节很多。最基础的做法是哈希def get_group(user_id, salt, buckets10000): key f{user_id}:{salt} h int(hashlib.md5(key.encode()).hexdigest()[:8], 16) return h % buckets用 user_id 加上实验专属的 salt 做哈希能保证同一个用户在同一实验里每次都进同一组同时不同实验之间的分组相互独立因为 salt 不同。取模的桶数用 10000 而不是 100是为了支持精细的流量切分比如只放 5% 流量做小流量实验。再往上走就是分层与域的概念。如果每个实验都独立切流量那么同时跑 10 个实验每个用 10% 流量用户要分到 10 次很快就会出现实验流量不够和用户被太多实验覆盖的问题。解决办法是把流量分成多个相互正交的层每个层内部再切分给不同的实验。同一层内的实验互斥一个用户只能进一个不同层之间正交一个用户可以同时进多个不同层的实验。这样做的好处是流量利用率大幅提升同时只要不同层之间的实验互不干扰正交性就能保证结果不被污染。判断两个实验能不能放在不同层关键看它们是否作用于同一批用户、是否会影响同一批指标。如果两个实验都改了首页按钮即使放在正交层里也会互相干扰必须放进同一个互斥域。6.3 网络效应与不可拆分的场景前面所有讨论都基于一个隐含假设一个用户的结果不受其他用户分组的影响这叫 SUTVA个体处理稳定性假设。这个假设在很多场景下是成立的——一个人看到新版注册页不会影响另一个人的注册行为。但在社交、双边市场、共享资源类场景里这个假设会直接崩掉。举个例子如果实验组用户因为新功能更活跃了会去给对照组用户发消息、点赞、互动那么对照组其实也间接接受了处理。这时候两组之间的效应差异会被稀释你测出来的就是直接效应 部分间接效应量级上偏低。处理这种网络效应有几种思路。集群随机化是把相互有交互的用户打包成一个集群比如一个公司、一个班级、一个小区随机化在集群层面进行集群内部的交互不影响组间可比性。代价是集群内用户的相关性很高有效样本量远小于名义样本量需要额外的方差校正。切换实验适用于流动性强的市场场景比如骑手派单、司机接单。做法是在时间维度上交替开关策略比如上午用新算法、下午用旧算法或者按小时、按天轮换。这种设计的前提是时间维度的可比性需要确保不同时段之间的用户群体没有系统性差异。还有一种更轻量的做法是基于地理位置的随机化。同城用户之间的互动概率远低于同小区所以按城市切分往往能在控制干扰和控制样本量之间取得不错的平衡。7. 我自己踩过的几个坑说完原理最后聊几个我实际踩过、并且觉得值得反复提醒的坑。第一个是指标突变。有一次实验跑到第 6 天主指标突然跳了 15%团队差点当场宣布成功。后来查出来是那天有一个大促活动整体流量结构变了两组受到的冲击不一样。所以实验期间如果有任何运营动作、版本发布、外部事件一定要记录下来最好在平台上打上标记事后分析时能把这段数据单独处理。第二个是小流量实验的错觉。5% 流量跑三天样本量根本不够但 p 值有时候就是会低于 0.05这时候千万别兴奋。我现在的做法是对流量不足的实验直接不输出显著性判定只显示样本不足结论不可靠从工具层面堵住这个口子。第三个是上线后不验证。实验结论和全量上线的效果不一致通常有三种原因实验人群和全量人群不一致比如实验只在上海做了全量是全国、实验环境和生产环境的技术差异比如实验期的服务容量更充裕、以及前面说的新奇效应。养成上线后回看一周大盘的习惯能帮你越来越准地判断哪些实验结论可以信任。第四个是把 A/B test 当成唯一工具。不是所有问题都适合做实验。品牌类的改动、长周期的战略决策、样本量永远达不到的场景硬做实验只会得到一堆无法解读的结果。有些时候用户访谈、定性研究、甚至小规模的灰度观察比一个统计上不显著的实验结论更有信息量。工具是拿来解决问题的不是拿来表演科学性的。最后一个想法A/B test 的价值不在于给你一个显著的结论而在于它强迫你把决策的依据从直觉变成可验证的假设。哪怕一次实验的结论是没测出差异只要它帮你排除了一个方向这次实验就是有价值的——前提是你在开始之前真的想清楚了要测什么、样本够不够、以及什么样的结果会让你改变决策。
返回列表