提交 64d396ef 编写于 作者: W wizardforcel

ch10.

上级 74b6a0d0
......@@ -336,3 +336,111 @@ results.hist(bins = np.arange(0, 0.2, 0.01))
但如果两者不一致,就像我们阿拉米达县陪审团的例子那样,那么数据就不支持原假设。 这就是为什么我们得出结论,陪审团不是随机挑选的。 几率之外的东西影响了他们的构成。
如果数据不支持原假设,我们说检验拒绝了原假设。
## 孟德尔的豌豆花
格雷戈·孟德尔(1822-1884)是一位奥地利僧侣,被公认为现代遗传学领域的奠基人。 孟德尔对植物进行了仔细而大规模的实验,提出遗传学的基本规律。
他的许多实验都在各种豌豆上进行。 他提出了一系列每个品种的假设。 这些被称为模型。 然后他通过种植植物和收集数据来测试他的模型的有效性。
让我们分析这样的实验的数据,看看孟德尔的模型是否好。
在一个特定的品种中,每个植物具有紫色或白色的花。 每个植物的颜色不受其他植物颜色的影响。 孟德尔推测,植物应随机具有紫色或白色的花,比例为 3:1。
原假设。 对于每种植物,75% 的几率是紫色的花,25% 的几率是白色的花,无论其他植物的颜色如何。
也就是说,原假设是孟德尔的模型是好的。 任何观察到的模型偏差都是几率变化的结果。
当然,有一个相反的观点。
备选假设。 孟德尔的模型是无效的。
让我们看看孟德尔收集的数据更加支持这些假设中的哪一个。
`flowers`表包含了由模型预测的比例,以及孟德尔种植的植物数据。
```py
flowers = Table().with_columns(
'Color', make_array('Purple', 'White'),
'Model Proportion', make_array(0.75, 0.25),
'Plants', make_array(705, 224)
)
flowers
```
| Color | Model Proportion | Plants |
| --- | --- |
| Purple | 0.75 | 705 |
| White | 0.25 | 224 |
共有 929 株植物。 为了观察颜色的分布是否接近模型预测的结果,我们可以找到观察到的比例和模型比例之间的总变异距离,就像我们之前那样。 但是只有两个类别(紫色和白色),我们有一个更简单的选择:我们可以查看紫色的花的比例。 白色的比例没有新的信息,因为它只是 1 减去紫色的比例。
```py
total_plants = flowers.column('Plants').sum()
total_plants
929
observed_proportion = flowers.column('Plants').item(0)/total_plants
observed_proportion
0.7588805166846071
```
检验统计量。 由于该模型预测 75% 的植物花为紫色,相关的统计量是 0.75 与观察到的花为紫色的植物的比例之间的差异。
```py
observed_statistic = abs(observed_proportion - 0.75)
observed_statistic
0.0088805166846070982
```
这个值与原假设所说的应该的情况相比如何? 为了回答这个问题,我们需要使用模型来模拟植物的新样本并计算每个样本的统计量。
我们将首先创建数组`model_colors`,包含颜色,比例由模型给定。 然后我们可以使用`np.random.choice`从这个数组中,带放回地随机抽样 929 次。 根据孟德尔的模型,这就是植物的生成过程。
```py
model_colors = make_array('Purple', 'Purple', 'Purple', 'White')
new_sample = np.random.choice(model_colors, total_plants)
```
> 译者注:这里可以使用`np.random.choice`的`p`参数来简化编程。
> ```py
> new_sample = np.random.choice(['Purple', 'White'], total_plants, p=[0.75, 0.25])
> ```
为了与我们观察到的统计量进行比较,我们需要知道这个新样本中,花为紫色的植物的比例与 0.75 的差。
```py
proportion_purple = np.count_nonzero(new_sample == 'Purple')/total_plants
abs(proportion_purple - 0.75)
0.016953713670613602
```
检验统计量的经验分布,在原假设为真的情况下。 毫不奇怪,我们得到的值与我们观察到的统计量之间的差约为 0.00888。 但是如果我们又取了一个样本,会有多大的不同呢? 您可以通过重新运行上面的两个单元格来回答这个问题,或者使用`for`循环来模拟统计量。
```py
repetitions = 5000
sampled_stats = make_array()
for i in np.arange(repetitions):
new_sample = np.random.choice(model_colors, total_plants)
proportion_purple = np.count_nonzero(new_sample == 'Purple')/total_plants
sampled_stats = np.append(sampled_stats, abs(proportion_purple - 0.75))
results = Table().with_column('Distance from 0.75', sampled_stats)
results.hist()
```
检验的结论。 根据孟德尔的数据,统计量的观测值是 0.00888,刚好 0.01 以下。 这正好在这个分布的中心。
```py
results.hist()
#Plot the observed statistic as a large red point on the horizontal axis
plots.scatter(observed_statistic, 0, color='red', s=30);
```
基于孟德尔数据的统计量,与我们基于孟德尔模型的模拟的分布是一致的。 因此,与备选假设相比,数据更加支持原假设 - 孟德尔的模型是好的。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册