Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
data8-textbook-zh
提交
77d3b63b
D
data8-textbook-zh
项目概览
OpenDocCN
/
data8-textbook-zh
8 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
data8-textbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
77d3b63b
编写于
1月 07, 2018
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ch12.
上级
c21f1042
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
249 addition
and
1 deletion
+249
-1
12.md
12.md
+249
-1
未找到文件。
12.md
浏览文件 @
77d3b63b
...
...
@@ -558,9 +558,257 @@ within_3_sd.num_rows/united.num_rows
0.9790235081374322
```
延误时间的直方图如下所示,横轴以标准单位表示。 从上表中可以看出,右边的尾巴一直延伸到
`z = 14.27 `
个标准单位(580 分钟)。 在
`z = -3`
到
`z = 3`
范围外的直方图
区域
大约是 2%,加起来非常小,在直方图中几乎不可见。
延误时间的直方图如下所示,横轴以标准单位表示。 从上表中可以看出,右边的尾巴一直延伸到
`z = 14.27 `
个标准单位(580 分钟)。 在
`z = -3`
到
`z = 3`
范围外的直方图
面积
大约是 2%,加起来非常小,在直方图中几乎不可见。
```
py
united
.
hist
(
'Delay (Standard Units)'
,
bins
=
np
.
arange
(
-
5
,
15.5
,
0.5
))
plots
.
xticks
(
np
.
arange
(
-
6
,
17
,
3
));
```
## 标准差和正态曲线
我们知道均值是直方图的平衡点。 标准差与平均值不同,通常不容易通过查看直方图来识别。
然而,有一种分布形状,它的标准差与平均值几乎一样清晰可辨。 这是钟形分布。 本节将查看该形状,因为它经常出现在概率直方图中,也出现在一些数据的直方图中。
### 数据的大致钟形的直方图
让我们看看母亲的身高分布,它们在我们熟悉的 1174 对母亲和新生儿的样本中。母亲的平均身高为 64 英寸,SD 为 2.5 英寸。 与篮球运动员的身高不同,母亲身高关于钟形曲线中的平均值对称分布。
```
py
baby
=
Table
.
read_table
(
'baby.csv'
)
heights
=
baby
.
column
(
'Maternal Height'
)
mean_height
=
np
.
round
(
np
.
mean
(
heights
),
1
)
mean_height
64.0
sd_height
=
np
.
round
(
np
.
std
(
heights
),
1
)
sd_height
2.5
baby
.
hist
(
'Maternal Height'
,
bins
=
np
.
arange
(
55.5
,
72.5
,
1
),
unit
=
'inch'
)
positions
=
np
.
arange
(
-
3
,
3.1
,
1
)
*
sd_height
+
mean_height
plots
.
xticks
(
positions
);
```
上面单元格中的最后两行代码更改了横轴的标签。 现在,对于
`z=0, ±1, ±2, ±3`
,标签对应于“标签上下
`z`
个标准差”。 由于分布的形状,“中心”具有明确的含义,在 64 处清晰可见。
### 如何定位钟形曲线上的 SD
要看 SD 如何与曲线相关,请从曲线顶部开始,向右看。 请注意,曲线有一个地方,从看起来像“倒扣的杯子”,变为“朝右的杯子”。 在形式上,曲线有一个拐点。 这个点高于均值一个 SD。 这是
`z = 1`
的点,即“均值加一个标准差”,为 66.5 英寸。
在均值的左边也对称,拐点在
`z = -1`
处,也就是“均值减一个标准差”,为 61.5 英寸。
一般来说,对于钟形分布,SD 是均值和任一侧的拐点之间的距离。
### 标准正态曲线
除了轴上的标签,我们所看到的所有钟形直方图,看起来基本相同。 的确,通过适当地重新标记坐标轴,从所有这些曲线中,实际上只能绘制一条曲线。
为了绘制这条基本曲线,我们将使用标准单位,我们可以将每个列表转换成它。所得到的曲线因此被称为标准正态曲线。
标准正态曲线的方程令人印象深刻。 但是现在,最好把它看作是变量直方图的平滑轮廓,变量以标准单位测量并具有钟形分布。
![](
http://latex.codecogs.com/gif.latex?%5Cphi%28z%29%20%3D%20%7B%5Cfrac%7B1%7D%7B%5Csqrt%7B2%20%5Cpi%7D%7D%7D%20e%5E%7B-%5Cfrac%7B1%7D%7B2%7Dz%5E2%7D%2C%20%7E%7E%20-%5Cinfty%20%3C%20z%20%3C%20%5Cinfty
)
与往常一样,当您检查新的直方图时,首先查看横轴。在标准正态曲线的横轴上,这些值是标准单位。
这里是曲线的一些属性。有些是通过观察显而易见的,有些则需要大量的数学才能建立起来。
曲线下面的总面积是1.所以你可以把它看作是绘制为密度标度的直方图。
曲线是对称的。所以如果一个变量具有这个分布,它的平均值和中位数都是 0。
曲线的拐点在 -1 和 +1 处。
如果一个变量具有这种分布,那么它的 SD 是 1。正态曲线是 SD 清晰可辨的极少数分布之一。
由于我们将曲线视为平滑的直方图,因此我们希望用曲线下方的面积来表示数据总量的比例。
平滑曲线下的面积通常是通过微积分来计算的,使用一种称为积分的方法。然而,一个数学的事实是,标准的正态曲线不能通过任何微积分方式来积分。
因此,曲线下方的面积必须近似。这就是几乎所有的统计教科书,都带有曲线下方的面积的原因。这也是所有统计系统,包括 Python 模块在内,都包含提供这些面积的优秀近似的方法的原因。
```
py
from
scipy
import
stats
```
### 标准正态的累积分布函数(CDF)
用于求出正态曲线下的面积的基本函数是
`stats.norm.cdf`
。 它接受一个数值参数,并返回曲线下,该数值的左侧的所有面积。 它在形式上被称为标准正态曲线的“累积分布函数”。 在口语里缩写为 CDF。
让我们使用这个函数来求出标准正态曲线下,
`z=1`
左侧的面积。
阴影区域的数值可以通过调用
`stats.norm.cdf`
来求出。
```
py
stats
.
norm
.
cdf
(
1
)
0.84134474606854293
```
这大概是 84%。 现在我们可以使用曲线的对称性,以及曲线下面的总面积为 1 事实,来求出其他面积。
`z = 1`
右侧的面积大概是
`100% - 84% = 16%`
。
```
py
1
-
stats
.
norm
.
cdf
(
1
)
0.15865525393145707
```
`z = -1`
和
`z = 1`
之间的面积可以用几种不同的方式来计算。 它是下面的曲线下方的金色区域。
例如,我们可以将面积计算为“
`100% -`
两个相等的尾巴”,结果大致是
`100% - 2X16% = 68%`
。
或者我们可以注意到,
`z = 1`
和
`z = -1`
之间的区域等于
`z = 1`
左边的所有区域,减去
`z = -1`
左边的所有区域。
```
py
stats
.
norm
.
cdf
(
1
)
-
stats
.
norm
.
cdf
(
-
1
)
0.68268949213708585
```
通过类似的计算,我们看到
`-2`
和
`2`
之间的区域大约是 95%。
```
py
stats
.
norm
.
cdf
(
2
)
-
stats
.
norm
.
cdf
(
-
2
)
0.95449973610364158
```
换句话说,如果一个直方图大致是钟形,那么在“均值上下两个标准差”范围内的数据比例大约是 95%。
这比切比雪夫的下界 75% 还要多。 切比雪夫边界较弱,因为它必须适用于所有的分布。 如果我们知道一个分布是正态的,那么我们就有很好的比例近似,而不仅仅是边界。
下表比较了我们对所有分布和正态分布的了解。 请注意,当
`z = 1`
时,切比雪夫的边界是正确的,但没有启发性。
| Percent in Range | All Distributions: Bound | Normal Distribution: Approximation |
| --- | --- | --- |
| 均值上下一个标准差 | 至少 0% | 约 68% |
| 均值上下两个标准差 | 至少 75% | 约 95% |
| 均值上下三个标准差 | 至少 88.888...% | 约 99.73% |
## 中心极限定律
我们在本课程中看到的很少数据直方图是钟形的。 当我们遇到一个钟形的分布时,它几乎总是一个基于随机样本的统计量的经验直方图。
下面的例子显示了两个非常不同的情况,其中在这样的直方图中出现了近似的钟形。
### 轮盘赌的净收益
在前面的章节中,如果我们在轮盘的不同轮次上重复下相同的赌注,那么我们所花费的总金额的粗略形状就会成为钟形。
```
py
wheel
```
| Pocket | Color |
| --- | --- |
| 0 | green |
| 00 | green |
| 1 | red |
| 2 | black |
| 3 | red |
| 4 | black |
| 5 | red |
| 6 | black |
| 7 | red |
| 8 | black |
(省略了 28 行)
回想一下,红色的下注返回相等的钱,1 比 1。我们定义的函数
`red_winnings`
返回对红色下注一美元的净收益。具体来说,该函数将颜色作为参数,如果颜色为红色,则返回 1。 对于所有其他颜色,它返回 -1。
```
py
def
red_winnings
(
color
):
if
color
==
'red'
:
return
1
else
:
return
-
1
```
`red`
表展示了红色情况下,每个口袋的奖金。
```
py
red
=
wheel
.
with_column
(
'Winnings: Red'
,
wheel
.
apply
(
red_winnings
,
'Color'
)
)
red
```
| Pocket | Color | Winnings: Red |
| --- | --- | --- |
| 0 | green | -1 |
| 00 | green | -1 |
| 1 | red | 1 |
| 2 | black | -1 |
| 3 | red | 1 |
| 4 | black | -1 |
| 5 | red | 1 |
| 6 | black | -1 |
| 7 | red | 1 |
| 8 | black | -1 |
(省略了 28 行)
您在赌注上的净收益
`Winnings: Red`
的随机抽样。 有 1/18 的几率赚一美元,20/38 的几率损失一美元。 这个概率分布显示在下面的直方图中。
```
py
red
.
select
(
'Winnings: Red'
).
hist
(
bins
=
np
.
arange
(
-
1.5
,
1.6
,
1
))
```
现在假设你多次对红色下注。 您的净收益将是来自上述分布的,多个带放回随机抽样的总和。
这将需要一些数学,来列出净收益的所有可能值,以及所有的记录。 我们不会那样做;相反,我们将通过模拟来逼近概率分布,就像我们在这个过程中一直做的那样。
下面的代码模拟你的净收益,如果你在轮盘赌的 400 个不同的轮次中,对红色下注一美元。
```
py
num_bets
=
400
repetitions
=
10000
net_gain_red
=
make_array
()
for
i
in
np
.
arange
(
repetitions
):
spins
=
red
.
sample
(
num_bets
)
new_net_gain_red
=
spins
.
column
(
'Winnings: Red'
).
sum
()
net_gain_red
=
np
.
append
(
net_gain_red
,
new_net_gain_red
)
results
=
Table
().
with_column
(
'Net Gain on Red'
,
net_gain_red
)
results
.
hist
(
bins
=
np
.
arange
(
-
80
,
50
,
6
))
```
这是一个大致钟形的直方图,即使我们正在绘制的分布并不是钟形。
中心。分布集中在
`-$20`
附近。 要知道为什么,请注意,您的奖金在 18/38 左右的下注中为 1 美元,剩下的 20/38 则为负一美元。 所以每个一美元赌注的平均奖金大概是 -5.26 美分:
```
py
average_per_bet
=
1
*
(
18
/
38
)
+
(
-
1
)
*
(
20
/
38
)
average_per_bet
-
0.05263157894736842
```
因此,在 400 次下注中,你预计净收益大约是 21 美元。
```
py
400
*
average_per_bet
-
21.052631578947366
```
为了确认,我们可以计算 10,000 次模拟净收益的平均值:
```
py
np
.
mean
(
results
.
column
(
0
))
-
20.8992
```
延展。让你的眼睛沿着曲线从中心开始,注意到拐点在 0 附近。在钟形曲线上,SD 是中心到拐点的距离。 中心大概是 -20 美元,这意味着分布的标准差大约是 20 美元。
在下一节中,我们将看到 20 美元是怎么来的。 现在,让我们通过简单计算 10,000 个模拟净收益的 SD 来证实我们的观察:
```
py
np
.
std
(
results
.
column
(
0
))
20.043159415621083
```
总结。 400 次下注的净收益是每个单独赌注的 400 个奖金的总和。 这个总和的概率分布近似正态,我们可以近似它的均值和标准差。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录