错误概率

在判断两个假设中哪一个更受数据支持的过程中,最后一步涉及对数据与原假设一致性的判断。虽然这一步在绝大多数情况下能得出正确的决策,但有时也可能使我们误入歧途。原因是随机变异。例如,即使原假设为真,随机变异也可能导致样本看起来与原假设的预测大相径庭。

[In ]:
from datascience import *
%matplotlib inline
import matplotlib.pyplot as plots
plots.style.use('fivethirtyeight')
import numpy as np

错误的结论

如果你正在检验原假设与备择假设(即原假设不成立),那么存在四种对现实与检验结果的分类方式。

检验支持原假设 检验支持备择假设
原假设为真 正确结论 错误
备择假设为真 错误 正确结论

在该表的四个单元格中,有两个单元格的检验结果是错误的。一种错误发生在检验支持备择假设而实际上原假设为真时。另一种错误发生在检验支持原假设而实际上备择假设为真时。

由于原假设是一个完全指定的随机模型,第一种错误的概率是可以估计的。事实证明,这个概率基本上就是我们用于p值的临界值。让我们看看这是如何得出的。

错误的概率

假设你想检验一枚硬币是否公平。那么假设如下:

原假设: 硬币是公平的。也就是说,结果就像从“正面、反面”中有放回随机抽取的结果。

备择假设: 硬币是不公平的。

假设你将基于2000次抛掷来检验这个假设。你期望一枚公平的硬币在2000次中出现1000次正面,因此一个合理的检验统计量是

$$ \text{检验统计量} ~ = ~ \Big\vert ~ \text{正面次数} - 1000 ~ \Big\vert $$

该统计量的小值支持原假设,大值支持备择假设。

我们已经多次在原假设下模拟了这个统计量,并绘制了其经验分布。

[In ]:
fair_coin = [0.5, 0.5]

def one_simulated_statistic():
    number_of_heads = 2000 * sample_proportions(2000, fair_coin).item(0)
    return abs(number_of_heads - 1000)

repetitions = 50000

statistics = make_array()
for i in np.arange(50000):
    statistics = np.append(statistics, one_simulated_statistic())

results = Table().with_column('|Number of Heads - 1000|', statistics)
results.hist(bins = np.arange(0, 101, 5), left_end=45)
plots.title('2000 Tosses');
Histogram titled '2000 Tosses' with the absolute value of 'Number of Heads - 1000' on the x-axis and 'Percent per unit on the y-axis. The bars are tallest on the left and progressively get shorter as the x value increases. Bars below 45 are colored blue and bars above 45 are colored gold. The gold bars are the shortest bars.

45右侧的区域(以金色标示)略低于5%。

[In ]:
np.count_nonzero(statistics >= 45) / repetitions
0.04654

检验统计量的大值支持备择假设。因此,如果你想使用5%作为p值的临界值,你的决策规则将是:如果检验统计量达到45或以上,则判定硬币不公平。

然而,如图所示,公平的硬币也可能产生值为45或以上的检验统计量。事实上,这种情况发生的概率约为5%。

总结:如果硬币是公平的,而我们的检验使用5%的临界值来判断是否公平,那么检验错误地判定硬币不公平的概率约为5%。

p 值的临界值是一种错误概率

上面的例子是一个普遍事实的特例:

如果你使用 $p$% 作为p值的临界值,而原假设恰好为真,那么你的检验得出备择假设为真的概率约为 $p$%。

以下是四种可能现实/检验结果的表格。第一行的概率是在原假设为真的假设下计算的。p值就是红色标示的错误概率。

检验支持原假设 检验支持备择假设
原假设为真 正确结论

错误

备择假设为真 错误 正确结论

控制错误

因此,1%的临界值比5%更保守。使用1%的临界值时,如果原假设恰好为真,得出“备择假设”结论的可能性更小。出于这个原因,医疗治疗的随机对照试验通常使用1%作为在以下两个假设之间做出决策的临界值:

原假设: 治疗无效;治疗组和对照组患者结果之间的观察差异是由于随机化造成的。

备择假设: 治疗有效。

这样做的目的是控制当治疗实际上无效时却得出治疗有效的概率。这降低了给患者提供无效治疗的风险。

尽管如此,即使你将临界值设定为低至1%,并且治疗确实无效,仍有约1%的概率会得出治疗有效的结论。这是由于随机变异造成的。来自随机样本的数据有很小的可能性导致你误入歧途。随机抽样的优势在于你可以计算出这种概率。

数据窥探与 p-hacking

上述讨论意味着,如果100个不同的研究小组各自独立进行一项关于某种实际上无效的治疗效果的随机对照实验,且每个实验使用1%的p值临界值,那么由于随机变异,预计其中有一个实验会错误地得出治疗确实有效的结论。

不幸的是,这恰好可能就是那个被发表的结果。这就是为什么实验必须可重复(replicated)的重要原因。也就是说,其他研究者应该能够进行同样的实验并看看是否能得到相似的结果。

研究人员使用同一数据检验多个假设的情况并不罕见。例如,在一项关于某种药物效果的随机对照试验中,研究人员可能会检验该药物对各种不同疾病的效果。

现在假设该药物对任何疾病都无效。仅仅由于随机变异,就有一小部分检验可能会得出它确实有效的结论。因此,当你读到一项使用假设检验并得出结论认为某种治疗有效的研究时,一定要问:在研究人员找到被报道的那个效果之前,他们检验了多少种不同的效果?

如果研究人员在找到一个“高度统计显著”的结果之前运行了多个不同的检验,请谨慎对待该结果。该研究可能受到“数据窥探”(data snooping)的损害,这本质上意味着逼迫数据做出虚假“招供”。这有时也被称为“p值操纵”(p-hacking)。

在这种情况下,验证报告结果的一种方法是重复实验,并仅针对该特定效果进行检验。如果再次得出显著结果,就将验证最初的结论。

技术说明:另一种错误

当然,还有另一种错误:当治疗实际上有效时却得出治疗无效的结论。关于这种错误的讨论超出了本课程的范围。只需注意一点:世事难两全——如果你将检验设置为减少两种错误中的一种,你几乎总是会增加另一种。