Trustworthy Online Controlled Experiments Part 1 Chap 3
Twyman 定律可能时数据分析最重要的定律了。 “数据越异常越有意思,那么这些数据就更可能来自一次错误的实验或者采集。” − Catherine Marsh and Jane Elliott (2009)
Twyman 定律 "任何看起来有意思,或者与众不同的数据,通常都是错的。"
− A.S.C. Ehrenberg (1975)
Twyman 定律: "任何看起来有趣的统计结果都几乎时错的。"
− Paul Dickson (1999)
威廉·安东尼·特威曼(William Anthony Twyman)是英国广播和电视收视率测量的资深人士(MR Web 2014),尽管提出了特威曼定律,但他显然没有明确地将其写成书面形式,并且存在多种变体。
当我们看到令人惊讶的积极结果,例如对一项关键指标的重大改进时,我们通常第一个反应就是围绕它编一个故事,分享它,并庆祝成功。当结果出乎意料地为负值时,我们则倾向于找出实验中的缺陷。经验告诉我们,许多极端结果更有可能来自于错误(例如,日志记录),数据丢失(或数据重复),或计算错误。
为了增加对实验结果的信任,我们建议使用一组测试和操作来检测结果是否可能有问题。在数据库中,存在完整性约束。在防御性编程中,我们鼓励编写assert()来验证约束是否成立。在实验中,我们可以运行测试来检查潜在问题,类似于编程中的断言。如果每个受试者要么属于“控制”组, 要么属于“治疗”组,那么,当发现有些受试者同时属于2个组则意味这实验出现问题;如果实验设计要求在两个变量数量相当,那么概率上不太可能出现的大偏差, 如果出现一组人数明显多于另外一组也应引起疑问。接下来,我们将分享一些Twyman定律的案例,然后讨论如何提高受控实验的可信度。
对统计结果的错误解读
下面给出了一些错误解读受控实验的统计结果的案例。
缺乏Power (功率)
[关于Power,可以参考 统计中的 Power (功率) 和 PowerAnalysis (功率分析)]
再我们常用的 “零假设显著性检验” [Null Hypothesis Significance Testing (NHST)] 方法中, 我们往往假定 “零假设” 意味者 控制组和实验组之间没有差异, 如果我们在数据中找到比较强的证据, 那么就可以推翻零假设, 证明二者有差异。 一个常见的错误是:发现某一个指标在统计上并不显著, 按照NHST, 常见操作就是声明两个组之间没有差异。然后, 实际情况是很有可能是,实验功率不足以检测到的效果,即测试中的用户不足。例如,对GoodUI.org进行的115次A / B测试的评估表明,大多数实验Power不足(Georgiev 2018)。这就是为什么,我们要定义一个期待看到的有意义的变化的门槛(比如, 当产量增加了10kg, 我们才认为这个差异有实际意义。 如果只增加5kg, 即使有差异,我们也认为没有意义),并确保您有足够的能力来检测该大小或更小的变化。
注释:
这里作者想表达的是, 要保证足够大的Power 检测出问题。有些实验结论是“因为p值比较大, 2个组没有差异”, 但实际情况是有差异, 但是由于实验Power 设计的不够, 没有把差异找出来。
如果实验仅影响一小部分人,那么有很有必要分析结果对这一小部分人的影响;否者,即使是对一小部分用户的巨大影响,也可能被总人数稀释,在整体上无法检测到(参见第20章和Lu andLiu(2014))。
错误的解释 p-value
P值经常被误解。最常见的解释错误是认为 p-value 代表了实验中2组数据的平均值有差异的可能性。 世界上, p-value 意味者, 在零假设正确的情况下, 你看到当前结果或者比更加极端(小概率)结果的可能性。 注意,对结果的解读和 “零假设” 息息相关。
下面是一些对 p-value 错误解读的例子: (来自于 A Dirty Dozen: Twelve P-Value Misconceptions)
- 如果p-value =0.05, 零假设只有 5% 的概率是正确的。
- 如果差异不显著(p-value > 0.05 )那么意味者两者之间没有差异。也有可能是功率不足。
- p-value = 0.05 意味者我们观察到的数据,在零假设正确的情况下, 有5% 的概率出现。
- p-value = 0.05 意味者,如果我们拒绝了零假设(承认存在差异), 那么出错的概率只有5%。 这里用一个例子, 来解释这种说法的错误之处: 假设你正在尝试通过使铅经受热和压力并在其上浇注某种魔法药剂来将铅转化为金。你可以测量所产生的混合物中的“含金量”,这是一种噪声测量(由于自然界的分布,会使得实验的铅中含有痕量的金元素,你检测到的金,其实是一种“噪音”)。由于我们知道化学处理方法无法将铅的原子序数从82更改为79,因此对Null假设的任何否定(不变)都将是错误的。要计算假阳性率,即当p值<0.05且Null假设为真的概率),我们可以使用贝叶斯定理,并且需要一定的先验概率。
上面只说明了零假设, 但是实际中可能还包括其他假设, 比如:数据收集时的假设, 统计方法中的假设。 这些假设都可能被break, 需要留心。
“偷窥” p-value
在实验进行中, 你可能会不断的监控 p-value的变化。 一些早期的优化方法建议大家这样做。 但是, 这种方法会带来偏差,(5-10倍), 并且导致大家错误的宣称自己找到统计”显著“。 为了解决这个办法,有2个替代性办法:
- 使用p-value 始终有效的序列方法(Johari etal. (2017)) 或者 贝叶斯测试框架 (Deng, Lu and Chen, Continuous Monitoring of A/B Tests without Pain: Optimal Stopping in Bayseian Testing 2016)
- 在实验之前, 就定下来实验的时长, 比如1周, 不要去提前结束实验(Early Stopping)
优化的方案基于第一种方法, 但是Google, LinkedIn 和微软内部的测试平台使用第二种方法。
注释 这里的坑说的是, 当你可以随时看到p-value 的时候, 由于p-value 的波动性, 你可能会在p-value 正好比较小的时候, 停止实验,然后宣称获得一个有效的结果。 而实际上, p-value 绝大多数时候, 并不显著。
多假设测试
下面的对话,来自于一本有趣的书 “到底什么时 p-value”
统计学家: 所以,你现在已经计算出p-value 了?
外科医生: 是的,我用了多项逻辑回归
统计学家: 真的么, 你怎么做的?
外科医生: 我用统计软件,把每种分析试了一遍, 然后选了一个p-value 最小的。
多重比较, 时一个比较典型的p-vlaue 偷窥 场景。在这总情况下, p-value 和实验样本数量, 都可能包括偏见。 这种场景包括
- 使用多个测量指标。
- 在多个时间段查看 p-vlaue。
- 看总体的多个分组的情况(选好的分组报道)。
- 选好的轮次报道, 比如第12轮正好p-value 比较小, 那么就报告这一轮的p-value。
False Discovery Rate (Hochberg and Benjamini 1995) 是很好的用来描述虚假发现的指标。
置信区间
总的来说,置信区间量化了Treatment效果不确定性程度。置信水平表示置信区间应包含真正的干预效果的概率。 p值和置信区间之间存在联系。对于对照实验中普遍使用的零差异的零假设,干预效果的95%置信区间未过零表示p值<0.05。
一个常见的错误是分别查看对照组和干预组的置信区间, 如果它们重叠,则认为干预效果在统计学上没有差异。如“最佳经验”(van Belle 2008,第2.6节)所说,这种说法是不对的。置信区间可以重叠多达29%,但差异在统计学上依然是显着的。然而,相反的说法则是正确的:如果95%的置信区间不重叠,则治疗效果具有统计学意义,p值<0.05。
关于置信区间的另一个常见误解是: 95%的置信区间有95%的机会包含真正的干预效果。其实,对于哟个特定的置信区间,真正的干预效果在其范围中概率为100%或0%。 95%的置信度的意思是如果你从总体中抽取100个不同样本,每个样本都用相同的统计量构造的置信区间(注意:由于样本不相同,这些置信区间的范围也不尽相同),那么有95个置信区间包含了总体参数的真值。