实验统计:怎么分清真效果和噪音
它回答的问题。 落地页改版上线,转化率从 5% 变成 6%。这是改版有效,还是这批访客本来就不同,或者纯粹是随机波动?用户本来就千差万别,哪怕什么都不改,今天和明天的转化率也不会恰好相等。实验统计要问的是:多大的差,才不像波动?
第一步:随机分流。 把访客随机分到 A 组(旧版)和 B 组(新版)。随机的作用是让两组在统计上同分布,年龄、来源、设备这些差异都被打散了,唯一系统性的差别就只剩改版本身。没有随机,分组本身就会带偏后面一切。局限:随机只保证平均可比,不保证这一次可比,样本越小越明显;它不解决代表性问题,实验里的人未必是未来的人;用户之间互相影响时,随机分流本身就被破坏了。
第二步:零假设与 p 值。 先立一个零假设:改版没用,两组真实转化率相等。在这个假设下,观测到的差完全由抽样波动造成。p 值就是在这个假设下,看到这么大或更大的差的概率。注意方向:p 等于 0.03,不是“改版有 97% 的概率有效”,也不是“零假设有 3% 的概率为真”。p 是在“假设没用”这个前提下算出来的,它不直接告诉你假设为真的概率。
第三步:两类错误与功效。 第一类错误是假阳性,没用却判有用,它的概率就是显著性水平,记作 α,惯例取 5%。这个 5% 是费舍尔留下的惯例,不是自然法则。第二类错误是假阴性,有用却没测出来,概率记作 β。统计功效就是 1 - β,惯例取 80%,意思是真有效时,有 80% 的概率能测出来。
第四步:样本量。 设每组样本量为 n,基线附近的标准差为 σ,你想测出来的差为 δ,也就是最小可检测效应(MDE)。双侧 α = 0.05 对应的 z 值是 1.96,功效 80% 对应的 z 值是 0.84,两组比较的公式是每组 n = 2σ²(1.96 + 0.84)² / δ²,括号里平方约 7.84,乘 2 约 15.68,取整就是常说的 16,于是:
例题数字(举例数,不是真实流量)。 基线 5%,σ² = 0.05 × 0.95 = 0.0475,想测出 1 个百分点的提升,δ = 0.01,每组 n ≈ 16 × 0.0475 / 0.0001 = 7600 人,两组一共约 15200 访客。关键在分母是 δ²:想测的效应减半,样本量要乘 4。所以开实验之前必须先定 MDE,你想测多小的效应,直接决定你要多少流量,流量不够时要么接受测大效应,要么接受跑很久。
偷看。 偷看是实验没跑完就反复看结果,看到显著就停,宣称有效。每看一次都是一次中奖机会,名义 5% 的假阳性会胀到 5 次看约 14%、10 次看约 19%。所以 5% 的承诺只在预先定好只看一次时成立,或者用按规矩把 α 分到每次看的正规序贯方法。落地页实验天天看、见好就收,等于自己给自己发了很多次彩票。
新奇效应。 用户对新东西的初期反应不代表长期。改版上线头几天,用户因为新鲜多点几下,或者因为嫌改动别扭少用几天,两种方向都有可能,共同点是初期数会骗人。拿头几天的转化率当长期效果,要么高估要么低估。办法是跑够长,看新鲜感过去之后的稳定期,而不是只看开头。
合成:留下的、降格的、死了的。 留下的:随机分流还是唯一干净的可比办法,盐只给它加了边界;样本量的平方律也是结构性的,效应减半、样本乘 4,这条不依赖 5% 还是 1% 的惯例;还有预先定好这条纪律,MDE、地平线、主指标先定好,这是防偷看和多指标膨胀的唯一办法。降格的:p 值和 5%、80% 都从判决降格为参考;样本量公式算出来的 7600 也是量级估计,不是承诺,公式建立在独立同分布、方差已知、流量稳定的理想条件上,真实指标经常偏态,比如收入类指标,少数大额用户主导,方差比公式里的大得多,同时看很多指标、同时跑很多实验时,假阳性还会膨胀。死了的:只看 p 过没过线就做决策,这条死了。落点:框架没塌,但从判决降格为设计纪律加参考尺。随机分,预先定 MDE 和主指标,粗算样本量看可行性,最后按效应大小、置信区间、错判的代价决策,没显著只叫没测出来,永远不叫没效果。