决策与不确定性
我们为评估关于陪审团遴选的模型而开发的统计和计算方法,属于一个被称为“假设检验(statistical tests of hypotheses)”的更广泛的决策框架。使用统计检验作为决策方式在多个领域是标准做法,并有标准的术语。
在本节中,我们将描述统计检验中使用的一般步骤顺序,以及一些术语。
虽然我们的例子来自生物科学,但你会看到过程中的统计和计算步骤与我们分析法律系统数据时对应的步骤是一致的。不过,生物学数据是关于植物的,而非人类和不公正。因此,下面计算的背景和解释要简单得多。
from datascience import *
%matplotlib inline
path_data = '../../../assets/data/'
import matplotlib.pyplot as plots
plots.style.use('fivethirtyeight')
import numpy as np
格雷戈尔·孟德尔(Gregor Mendel,1822-1884)是一位奥地利修士,被公认为现代遗传学领域的奠基人。孟德尔通过仔细且大规模的植物实验,提出了遗传学的基本定律。
他的许多实验都是在豌豆品种上进行的。他对每个品种都提出了一组假设;这些就是他的模型。然后他通过种植植物和收集数据来检验模型的有效性。
对于某个特定品种的豌豆,孟德尔提出了以下模型。
孟德尔的模型
对于每一株植物,有75%的概率开紫花,25%的概率开白花,且与其他所有植物的花色无关。
为了检验他的模型是否有效,孟德尔种植了929株该品种的豌豆。在这929株植物中,705株开紫花。
我们将使用这些数据进行假设检验,看看孟德尔的模型是否合理。
第1步:提出假设
所有统计检验都试图在两种世界观之间进行选择。具体来说,是在关于数据如何生成的两种观点之间进行选择。这两种观点被称为“假设”。
原假设(null hypothesis)。 这是一个明确定义的关于随机性的模型。它认为数据是在明确指定的随机性假设下随机生成的。“原(null)”这个词强化了一个观念:如果数据看起来与原假设预测的不同,这种差异仅归因于随机性,而非其他原因。
从实践角度来看,原假设是一个你可以在此基础上模拟数据的假设。
在关于孟德尔豌豆花色模型的例子中,原假设是他的模型的假设是成立的:每株植物有75%的概率开紫花,且与其他所有植物独立。
在这个假设下,我们可以通过使用 sample_proportions 来模拟随机样本。
备择假设(alternative hypothesis)。 该假设认为,除随机性之外的某些原因导致数据与原假设模型的预测不同。
在孟德尔豌豆的例子中,备择假设简单地说他的模型不成立。
请记住,备择假设并不说明模型为何或如何不成立,它只是表明模型不成立。
第2步:检验统计量
为了在两个假设之间做出决定,我们必须选择一个可以用于决策的统计量。这被称为检验统计量(test statistic)。
我们将比较两个类别分布:一个是孟德尔模型中的分布,另一个是我们在随机样本中得到的分布。我们想看看这两个分布是接近还是远离。因此,一个自然的检验统计量就是上一节中介绍的全变差距离(TVD)。
事实证明,对于只有两个类别的情况,TVD相当简单且易于解释。让我们看一个例子。孟德尔模型认为“紫色、白色”的分布是[0.75, 0.25]。假设我们样本中的分布是[0.7, 0.3]。
因为只有两个类别,计算TVD时会出现一个有趣的现象。首先注意到
$$ \vert 0.7 - 0.75 \vert = 0.05 = \vert 0.3 - 0.25 \vert $$
因此TVD为
$$ \frac{1}{2}\Big( \vert 0.7 - 0.75 \vert + \vert 0.3 - 0.25 \vert \Big) = 0.05 = \vert 0.7 - 0.75 \vert $$
这恰好是开紫花植物两个比例之间的距离,也等于开白花植物两个比例之间的距离。
通过一些我们在此不展开的数学推导可知,只要只有两个类别,这一结论就成立:TVD等于某个类别中两个比例之间的距离。
因此,一个完全合适的检验统计量就是样本中紫色植物的比例与孟德尔模型中对应的比例0.75之间的距离。
由于百分比比比例更容易解释,我们将改用百分比。
我们的检验统计量将是样本中开紫花的百分比与孟德尔模型中对应的75%之间的距离。
$$ \Big\vert \text{样本中开紫花植物的百分比} - 75 \Big\vert $$
这个检验统计量是原假设预测值与...(内容已截断)
observed_statistic = abs ( 100 * (705 / 929) - 75)
observed_statistic
0.8880516684607045第3步:原假设下检验统计量的分布
假设检验的主要计算方面是弄清楚原假设中的模型预测了什么。具体来说,我们必须弄清楚如果原假设成立,检验统计量的值可能是什么。
检验统计量基于原假设模型的假设进行模拟。该模型涉及随机性,因此当你多次模拟时,统计量会得到不同的值。
通过重复模拟统计量,我们能够很好地了解其可能的值以及哪些值更可能出现。换句话说,我们得到了原假设模型所预测的统计量概率分布的良好近似。
与所有分布一样,通过直方图来可视化该分布非常有用,正如我们在之前的示例中所做的那样。让我们在这里完整地走一遍过程。
我们首先将一些已知量赋值给变量名。
mendel_proportions = make_array(0.75, 0.25)
mendel_proportion_purple = mendel_proportions.item(0)
sample_size = 929
接下来,我们将定义一个函数,返回检验统计量的一个模拟值。然后我们将使用 for 循环将10,000个模拟值收集到一个数组中。
def one_simulated_distance():
sample_proportion_purple = sample_proportions(929, mendel_proportions).item(0)
return 100 * abs(sample_proportion_purple - mendel_proportion_purple)
repetitions = 10000
distances = make_array()
for i in np.arange(repetitions):
distances = np.append(distances, one_simulated_distance())
现在我们可以绘制这些值的直方图。这就是“原假设预测的检验统计量分布”的直方图。
Table().with_column(
'Distance between Sample % and 75%', distances
).hist()
plots.title('Prediction Made by the Null Hypothesis');
Histogram titled 'Prediction Made by the Null Hypothesis' with 'Distance between Sample % and 75%' on the x-axis and 'Percent per unit' on the y-axis. The bars are tallest on the left close to 0 and progressively get shorter as you move to the right. Bars are not visible after 4.观察横轴,可以看到模型预测的距离的典型值。它们相当小。例如,很大比例的距离在0到1之间,这意味着对于很大比例的样本,开紫花植物的百分比在75% $\pm$ 1%的范围内。也就是说,样本百分比在74%到76%之间。
另请注意,这一预测仅使用了孟德尔的模型,而非孟德尔在他种植的植物中观察到的比例。现在是时候比较预测值和孟德尔的观察结果了。
第4步:检验的结论
在原假设和备择假设之间的选择,取决于你在第2步和第3步计算的结果之间的比较:检验统计量的观测值及其在原假设下的预测分布。
如果两者不一致,则数据不支持原假设。换句话说,数据更支持备择假设。我们说检验“拒绝”了原假设。
如果两者一致,则观测到的检验统计量与原假设预测相符。换句话说,数据更支持原假设。我们说数据“与原假设一致”。
在我们的例子中,检验统计量的观测值约为0.89,如上面第2步所计算的。通过目测,大致找到0.89在直方图横轴上的位置。你会发现它明显位于孟德尔模型预测分布的中心区域。
下面的单元格重新绘制了直方图,并在横轴上标出了观测值。
Table().with_column(
'Distance between Sample % and 75%', distances
).hist()
plots.ylim(-0.02, 0.5)
plots.title('Prediction Made by the Null Hypothesis')
plots.scatter(observed_statistic, 0, color='red', s=40);
The same histogram as before is shown, this time with a red dot just below x=1. This red dot is well within the data shown by the histogram. Previous description of the histogram: Histogram titled 'Prediction Made by the Null Hypothesis' with 'Distance between Sample % and 75%' on the x-axis and 'Percent per unit' on the y-axis. The bars are tallest on the left close to 0 and progressively get shorter as you move to the right. Bars are not visible after 4.观测统计量类似于原假设预测的典型距离。原假设就是孟德尔的模型。因此,我们的检验得出结论:数据与孟德尔的模型一致。
基于我们的数据,孟德尔的模型看起来是合理的。
“一致”的含义
在我们所有评估模型的示例中,数据是否与模型预测一致都是明确的。它们要么与模型预测相差甚远(如陪审团候选名单的例子),要么与模型预测相似(如孟德尔模型的例子)。
但结果并非总是如此清晰。多远算“远”?“相似”到底意味着什么?虽然这些问题没有通用的答案,但有一些指南和惯例可供参考。
但首先,重要的是要理解:观测到的检验统计量是否与原假设下其预测分布一致,是一个主观意见和判断的问题。我们建议你在提供检验统计量的值及其在原假设下预测分布的图表的同时,也给出你的判断。这样可以让读者自行判断两者是否一致。
在上面的例子中,判断是明确的。但假设有人种植了另外929株某个相关品种的植物,想要看看孟德尔的模型是否也适用于该品种。如果他们的观测距离如下所示为3.2,你会得出什么结论?
different_observed_statistic = 3.2
Table().with_column(
'Distance between Sample % and 75%', distances
).hist()
plots.ylim(-0.02, 0.5)
plots.title('Prediction Made by the Null Hypothesis')
plots.scatter(different_observed_statistic, 0, color='red', s=40);
The same histogram as before is shown, this time with a red dot just above x=3. This red dot does overlap with some of the data shown by the histogram, but is aligned with a short bar (y<10) and there isn't much data to its right. Previous description of the histogram: Histogram titled 'Prediction Made by the Null Hypothesis' with 'Distance between Sample % and 75%' on the x-axis and 'Percent per unit' on the y-axis. The bars are tallest on the left close to 0 and progressively get shorter as you move to the right. Bars are not visible after 4.基于新品种植物的观测结果与直方图中的预测是否一致?
现在答案就不那么明确了。这取决于你是否认为红点距离大部分预测值太远,以至于与基于孟德尔模型的预测不一致。
常规临界值与 p 值
如果你不想使用自己的判断,可以遵循一些惯例。这些惯例告诉我们,尾部多远在常规上被认为是“太远”。
惯例基于尾部的面积,从观测统计量(红点)开始,朝向使我们倾向于备择假设的方向。 在这个例子中,那是右侧,因为大的距离支持备择假设,即模型不成立。
如果尾部的面积很小,则观测统计量远离原假设最常预测的值。
请记住,在直方图中,面积代表百分比。要找到尾部的面积,我们需要找出大于或等于3.2(红点所在处)的距离所占的百分比。数组 distances 包含在孟德尔模型下10,000次随机抽样重复的所有平均值,而 different_observed_statistic 是3.2。
np.count_nonzero(distances >= different_observed_statistic) / repetitions
0.0243在孟德尔模型下模拟的距离中,约有2.4%达到3.2或更大。根据平均律,我们可以得出结论:如果孟德尔模型对这些新品种是正确的,那么检验统计量达到3.2或以上的概率约为2.4%。
这个概率看起来并不大。如果孟德尔模型对这些植物成立,那么发生了一件相当不可能的事情。这一想法催生了相关惯例。
p 值
这个概率有一个令人印象深刻的名字。它被称为检验的“观测显著性水平”(observed significance level)。这有点拗口,因此通常被称为检验的“p值”(p-value)。
定义: 检验的p值是指,基于原假设模型,检验统计量等于或更极端地朝向支持备择假设方向的概率。
如果p值很小,意味着观测统计量之后的尾部很小,因此观测统计量远离原假设的预测。这意味着数据对备择假设的支持程度高于对原假设的支持。
多小算“小”?根据惯例:
-
如果p值小于5%,则被认为是小的,结果称为“统计显著”(statistically significant)。
-
如果p值更小——小于1%——则结果称为“高度统计显著”(highly statistically significant)。
按照这个惯例,我们2.4%的p值被认为是小的。因此,常规的结论将是否定原假设,并认为孟德尔的模型对新品种植物不成立。形式上,检验的结果是统计显著的。
当你以这种方式得出结论时,我们建议你不要仅仅说明结果是否统计显著。在你的结论中,同时提供观测统计量和p值,以便读者自行判断。
关于惯例的历史说明
如上文所定义的,统计显著性的判定已成为所有应用领域中统计分析的标准。当一个惯例被如此普遍地遵循时,考察其起源是很有趣的。
统计检验方法——基于随机样本数据在假设之间进行选择——是由罗纳德·费希尔爵士(Sir Ronald Fisher)在20世纪早期发展起来的。费希尔爵士可能在不经意间确立了统计显著性的惯例,他在1925年出版的著作《研究工作者统计方法》(Statistical Methods for Research Workers)中写道:“将这一点作为判断偏差是否应被视为显著的界限是方便的。”他指的是5%的水平。
对费希尔爵士而言的“方便”逐渐成为一个具有普遍常数地位的临界值。尽管费希尔爵士本人曾指出该数值只是他个人从众多选择中选出的:在1926年的一篇文章中,他写道:“如果二十分之一的比例看起来不够高,我们也可以将界限划在五十分之一(2%点),或百分之一(1%点)。就个人而言,作者倾向于将显著性标准定在5%点……”
费希尔知道“低”是一个判断问题,没有唯一的定义。我们建议你也记住这一点。提供你的数据,做出你的判断,并解释你为什么这样做。
无论你使用常规临界值还是自己的判断,以下几点都很重要:
- 始终提供检验统计量的观测值和p值,以便读者自行判断p值是否较小。
- 不要只在常规结果不合你意时才去违背惯例。
- 即使检验得出结论认为数据不支持原假设中的随机模型,它通常也不解释为什么...(内容已截断)