许多团队在跑A/B测试时都有一个习惯:每天早上打开数据看板,盯着p值有没有低于0.05。一旦看到这个数字,就认为结果“显著”了,可以放心上线。但很少有人意识到,这种“每天看一眼”的做法,已经把统计学的基本前提悄悄破坏了。 标准的假设检验假设你只在一个固定时间点、用固定样本量看一次数据。5%的假阳性率只适用于“单次观察”。如果同一个实验,你在30天里每天看一遍,甚至早中晚各看一遍,那么“什么都没发生”时,最终至少看到一个假显著的几率会远远高于5%。 为了直观地展示这个问题的严重性,我用一个极普通的场景做了模拟:A、B两个版本的真实转化率都是10%,每组每天1000个访客,实验计划跑30天,使用5%显著水平的双侧检验。也就是说,A和B之间根本没有任何真实差异,唯一的波动是随机噪音。 模拟运行了6万次,每次模拟都模拟出一个30天的A/B测试,并且按“每天检查p值,一旦低于0.05就停止实验”的规则来操作。结果是什么?在总共6万次模拟里,有大约28%的实验会在30天内的某一天观察到p<0.05,然后提前宣告“有显著差异”。也就是说,名义上的5%假阳性率,经过“反复查看”这个操作之后,被放大到了接近28%——是原来的五倍还多。 这几乎是数据驱动决策里的一个盲区:团队以为自己在遵循标准流程,甚至提前计算了样本量,但“持续监控”这个动作本身就引入了多重比较的问题。每次查看都是一次统计检验,检验次数多了,假阳性概率自然累积。更糟的是,一旦看到p值显著,人们通常就会停止实验,而不是继续观察,这又进一步偏向了“早期出结果”的假线索。 那么,有什么办法能避免这种“偷看”带来的虚高收益?模拟中也对比了常见的几种修正方案。 第一种是固定样本量,实验开始前算好需要多少访客,然后中途完全不去看结果,等到样本量达到再分析。这种方法能严格保证5%的错误率,但实际操作中往往很难,因为没有人能忍住不看。 第二种是使用“序贯检验”或“提前停止”的统计框架,例如Pocock边界或O‘Brien-Fleming边界。这类方法允许你在实验中多次查看,同时调整显著性阈值,使得整体错误率保持在预设水平。比如,如果计划看10次,每次的p值阈值就不再是0.05,而是更严格的0.01或更小,具体取决于边界设计。 第三种是更简单的实用方法:在实验开始前,就写下一个“决策时间”和一个“决策阈值”,例如“30天后看,p<0.05才上线”。然后无论中间看到什么,都坚持到那个时间点再判断。这相当于人为锁死了每次观察的次数,从源头上避免了反复检验的膨胀。 模拟还显示,如果把每天查看改成每7天看一次,假阳性率会有所下降,但仍然高于5%。只有彻底改变“看数据”的方式,才能真正守住错误的底线。 回到文章标题的那句话:“别再提前庆祝”。当你看到p值第一次低于0.05时,先想想这个数字是从多少次观察里挑出来的。一个靠“反复偷看”得到的显著结果,很可能只是噪音的玩笑。停止把第一个显著的“日子”当作胜利,学会用统计上的正确姿势来看待实验,才能避免被随机性牵着走。

打开网易新闻 查看精彩图片