10.md 12.4 KB
Newer Older
W
ch10.  
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
# 十、假设检验

数据科学家们经常面对世界的是或不是的问题。你在这个课程中看到了一些这样的问题的例子:

+   巧克力对你有好处吗?
+   Broad Street 水泵的水是否会导致霍乱?
+   加州的人口统计在过去的十年中有所改变吗?

我们是否回答这些问题取决于我们的数据。加州的人口普查数据可以解决人口统计的问题,而答案几乎没有任何不确定性。我们知道 Broad Street 水泵的水源受到霍乱病人的污染,所以我们可以很好地猜测它是否会引起霍乱。

巧克力还是其他任何实验对您有好处,几乎肯定要由医学专家来决定,但是第一步是使用数据科学分析来自研究和随机实验的数据。

在本章中,我们将试图回答这样的问题,根据样本和经验分布的结论。我们将以北加利福尼亚州公民自由联盟(ACLU)2010 年进行的一项研究为例。

## 陪审团选拔

2010 年,ACLU 在加利福尼亚州阿拉米达县提交了一份陪审团选择的报告。报告得出的结论是,在阿拉米达县的陪审团小组成员中,某些族裔人数不足,并建议对专家组进行一些改革,来合理分配陪审员。在本节中,我们将自己分析数据,并检查出现的一些问题。

### 陪审团

陪审团是一群被选为准陪审员的人;终审的陪审团是从他们中挑选的。陪审团可以由几十人或几千人组成,具体情况取决于审判情况。根据法律,陪审团应该是审判所在社区的代表。加州“民事诉讼法(California's Code of Civil Procedure)”第 197 条规定:“All persons selected for jury service shall be selected at random, from a source or sources inclusive of a representative cross section of the population of the area served by the court.”

最终的陪审团是通过故意纳入或排除,从陪审团中挑选出来的。法律允许潜在的陪审员出于医疗原因而被免责;双方的律师可以从名单上挑选一些潜在的陪审员进行所谓的“先制性反对(peremptory challenges)”。初审法官可以根据陪审团填写的问卷进行选择;等等。但最初的陪审团似乎是合格陪审员的总体的随机样本。

### 阿拉米达县的陪审团构成

ACLU 的研究重点是阿拉米达县陪审团的种族组成。 ACLU 编辑了 2009 年和 2010 年在阿拉米达县进行的 11 次重罪审判中陪审团的种族组成的数据。在这些陪审团中,报告出庭的陪审员的总人数是 1453 人。ACLU 收集了所有人口的统计数据,并将这些数据与该县所有合格陪审员的组成进行比较。

数据列在下面的表格中,称为`jury`。 对于每个种族来说,第一个值就是该种族所有合格的陪审员候选人的比例。 第二个值是出现在出现在陪审团选拔过程的人中,那个种族的人的比例。

```py
jury = Table().with_columns(
    'Ethnicity', make_array('Asian', 'Black', 'Latino', 'White', 'Other'),
    'Eligible', make_array(0.15, 0.18, 0.12, 0.54, 0.01),
    'Panels', make_array(0.26, 0.08, 0.08, 0.54, 0.04)
)

jury
```


| Ethnicity | Eligible | Panels |
| --- | --- | --- |
| Asian | 0.15 | 0.26 |
| Black | 0.18 | 0.08 |
| Latino | 0.12 | 0.08 |
| White | 0.54 | 0.54 |
| Other | 0.01 | 0.04 |

研究中的一些种族代表性过多,一些代表性不足。 条形图有助于显示差异。

```py
jury.barh('Ethnicity')
```

### 两个分布的距离

可视化使我们能够快速了解,两个分布之间的相似性和差异。 为了更准确地说出这些差异,我们必须首先量化两个分布之间的差异。 这将使我们的分析能够基于更多东西,不仅仅是我们能够通过眼睛做出的评估。

为了测量两个分布之间的差异,我们将计算一个数量,称之为它们之间的总变异距离(total variation distance)。

为了计算总变异距离,我们首先考虑每个类别中两个比例之间的差异。

```py
# Augment the table with a column of differences between proportions

jury_with_diffs = jury.with_column(
    'Difference', jury.column('Panels') - jury.column('Eligible')
)
jury_with_diffs
```


| Ethnicity | Eligible | Panels | Difference |
| --- | --- |
| Asian | 0.15 | 0.26 | 0.11 |
| Black | 0.18 | 0.08 | -0.1 |
| Latino | 0.12 | 0.08 | -0.04 |
| White | 0.54 | 0.54 | 0 |
| Other | 0.01 | 0.04 | 0.03 |

```py
jury_with_diffs.column('Abs. Difference').sum()/2
0.14000000000000001
```

这个数量 0.14 是合格陪审员总体中种族分布与陪审团分布情况之间的总变异距离(TVD)。

只要加上正的差异,我们就可以得到相同的结果。 但是,我们的方法包含所有绝对差异,不需要追踪哪些差异是正的而哪些不是。

### 计算 TVD 的函数

函数`total_variation_distance`返回两个数组中的分布的 TVD。

```py
def total_variation_distance(distribution_1, distribution_2):
    return np.abs(distribution_1 - distribution_2).sum()/2
```

函数`table_tvd `使用函数`total_variation_distance`来返回表的两列中的分布的 TVD。

```py
def table_tvd(table, label, other):
    return total_variation_distance(table.column(label), table.column(other))

table_tvd(jury, 'Eligible', 'Panels')
0.14000000000000001
```

### 陪审团是否是总体的代表?

W
ch10.  
wizardforcel 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
现在我们将转到合格的陪审员和陪审团的 TVD 的值。我们如何解释 0.14 的距离呢?要回答这个问题,请回想一下,陪审团应该是随机选择的。因此,将 0.14 的值与合格的陪审员和随机选择的陪审团的 TVD 进行比较,会有帮助。

为了这样做,我们将在模拟中使用我们的技能。研究共有 1453 名准陪审员。所以让我们从合格的陪审员的总体中随机抽取大小为 1453 的样本。

技术注解。准陪审员的随机样本将会不放回地选中。但是,如果样本的大小相对于总体的大小较小,那么无放回的取样类似于放回的取样;总体中的比例在几次抽取之间变化不大。阿拉米达县的合格陪审员的总体超过一百万,与此相比,约 1500 人的样本量相当小。因此,我们将带放回地抽样。

### 从合格的陪审员中随机抽样

到目前为止,我们已经使用`np.random.choice`从数组元素中随机抽样,并使用`sample `对表的行进行抽样。 但是现在我们必须从一个分布中抽样:一组种族以及它们的比例。

为此,我们使用函数`proportions_from_distribution`。 它有三个参数:

+   表名
+   包含比例的列的标签
+   样本大小

该函数执行带放回地随机抽样,并返回一个新的表,该表多出了一列`Random Sample`,是随机样本中所出现的比例。

所有陪审团的总大小是 1453,所以让我们把这个数字赋给给一个名成,然后调用:

```py
proportions_from_distribution.

panel_size = 1453
panels_and_sample = proportions_from_distribution(jury, 'Eligible', panel_size)
panels_and_sample
```


| Ethnicity | Eligible | Panels | Random Sample |
| --- | --- |
| Asian | 0.15 | 0.26 | 0.14797 |
| Black | 0.18 | 0.08 | 0.193393 |
| Latino | 0.12 | 0.08 | 0.116311 |
| White | 0.54 | 0.54 | 0.532691 |
| Other | 0.01 | 0.04 | 0.00963524 |

从结果中可以清楚地看出,随机样本的分布与合格总体的分布非常接近,与陪审团的分布不同。

和之前一样,可视化会有帮助。

```py
panels_and_sample.barh('Ethnicity')
```

灰色条形与蓝色条形比金色条形更接近。 随机样本类似于合格的总体,而不是陪审团。

我们可以通过计算合格总体的分布与随机样本之间的 TVD,来量化这一观察结果。

```py
table_tvd(panels_and_sample, 'Eligible', 'Random Sample')
0.013392980041293877
```

将其与陪审团的距离 0.14 进行比较,可以看到我们在条形图中看到的数值。 合格总体与陪审团之间的 TVD 为 0.14,但合格总体与随机样本之间的 TVD 小得多。

当然,随机样本和合格陪审员的分布之间的距离取决于样本。 再次抽样可能会给出不同的结果。

### 随机样本和总体之间有多少差异?

随机样本与合格陪审员的分布之间的 TVD,是我们用来衡量两个分布之间距离的统计量。 通过重复抽样过程,我们可以看到不同随机样本的统计量是多少。 下面的代码根据抽样过程的大量重复,来计算统计量的经验分布。

```py
# Compute empirical distribution of TVDs

panel_size = 1453
repetitions = 5000

tvds = make_array()

for i in np.arange(repetitions):

    new_sample = proportions_from_distribution(jury, 'Eligible', panel_size)
    tvds = np.append(tvds, table_tvd(new_sample, 'Eligible', 'Random Sample'))

results = Table().with_column('TVD', tvds)
results
```


| TVD |
| --- |
| 0.0247075 |
| 0.0141569 |
| 0.0138403 |
| 0.0214384 |
| 0.012278 |
| 0.017309 |
| 0.0219752 |
| 0.0192017 |
| 0.02351 |
| 0.00818995 |

(省略了 4990 行)

上面每一行包含大小为 1453 的随机样本与合格的陪审员的 TVD。

这一列的直方图显示,从合格候选人中随机抽取 1453 名陪审员的结果是,偏离合格陪审员的种族分布的分布几乎不超过 0.05。

```py
results.hist(bins=np.arange(0, 0.2, 0.005))
```

### 陪审团和随机样本比如何?

然而,研究中的陪审团与合格总体并不十分相似。陪审团和总体之间的 TVD 是 0.14,这距离上面的直方图的尾部很远。这看起来不像是随机样本和合格总体之间的典型距离。

所以我们的分析支持 ACLU 的计算,即陪审团不是合格陪审员的分布的代表。然而,与大多数这样的分析一样,它并没有说明分布为什么不同,或者差异可能暗示了什么。

ACLU 报告讨论了这些差异的几个可能的原因。例如,一些少数群体在选民登记记录和机动车辆部门(选择陪审员的两个主要来源)的代表性不足。在进行研究时,该县没有一个有效的程序,用于跟踪那些被选中但未出庭的准陪审员。ACLU 列举了其他几个原因。不管出于何种原因,似乎很明显,陪审团的组成与我们对随机样本的预期不同,它来自`Eligible`列的分布。

### 数据上的问题

我们已经开发出一种强大的技术,来帮助决定一个分布是否像另一个分布的随机样本。但是数据科学不仅仅是技术。特别是数据科学总是需要仔细研究如何收集数据。

合格的陪审员。首先,重要的是要记住,不是每个人都有资格担任陪审团的职位。阿拉米达县高级法院在其网站上说:“如果你是18 岁的美国公民,和传召所在的县或区的居民,你可能会被要求担任职位。你必须能够理解英语,身体上和精神上都有能力担任,此外,你在过去 12 个月内不得担任任何类型的陪审员,也没有被判重罪。

人口普查没有保存所有这些类别的人口记录。因此 ACLU 必须以其他方式获得合格陪审员的人口统计资料。以下是他们对自己所遵循的过程的描述,以及它可能包含的一些缺陷。

“为了确定阿拉米达县具有陪审团资格的人口的统计数据,我们使用了一个声明,它为阿拉米达县人民起诉斯图亚特·亚历山大的审判而准备。在声明中,圣地亚哥州立大学的人口统计学家 Weeks 教授,根据 2000 年的人口普查数据估算了阿拉米达县的具有陪审团资格的人口,为了得出这个估计值,Weeks 教授考虑到了不符合陪审团担任条件的人数,因为他们不会说英文,不是公民,因此,他的估计应该是对阿拉米达县实际具有陪审团资格的人口的准确评估,而不仅仅是审查居住在阿拉米达的所有人口的种族和族裔的人口普查报告。应该指出的是,Weeks 教授所依据的人口普查数据现在已经有十年了,县的人口统计数据的某些类别,可能已经改变了两到三个百分点。”

因此,分析中使用的合格陪审员的种族分布本身就是一个估计,可能有点过时。

陪审团。 此外,陪审团并不从整个合格总体中选出。 阿拉米达县高等法院说:“法院的目标是提供县人口的准确的横截面,陪审员的名字是从登记选民和/或车管局发出的驾驶执照中随机抽取的”。

所有这些都产生了复杂问题,就是如何准确估计阿拉米达县合格陪审员的种族构成。