Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
data8-textbook-zh
提交
b4fc3734
D
data8-textbook-zh
项目概览
OpenDocCN
/
data8-textbook-zh
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
b4fc3734
编写于
12月 29, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ch9.
上级
f5a07f68
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
194 addition
and
0 deletion
+194
-0
9.md
9.md
+194
-0
未找到文件。
9.md
0 → 100644
浏览文件 @
b4fc3734
# 九、经验分布
大部分数据科学都涉及来自大量随机样本的数据。 在本节中,我们将研究这些样本的一些属性。
我们将从一个简单的实验开始:多次掷骰子并跟踪出现的点数。
`die `
表包含骰子面上的点数。 所有的数字只出现一次,因为我们假设骰子是平等的。
```
py
die
=
Table
().
with_column
(
'Face'
,
np
.
arange
(
1
,
7
,
1
))
die
```
| Face |
| --- |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
### 概率分布
下面的直方图帮助我们可视化,每个面出现概率为 1/6 事实。 我们说直方图显示了所有可能的面的概率分布。 由于所有的条形表示相同的百分比几率,所以这个分布成为整数 1 到 6 上的均匀分布。
```
py
die_bins
=
np
.
arange
(
0.5
,
6.6
,
1
)
die
.
hist
(
bins
=
die_bins
)
```
递增值由相同的固定量分隔,例如骰子面上的值(递增值由 1 分隔),这样的变量被称为离散值。上面的直方图被称为离散直方图。它的桶由数组
`die_bins`
指定,并确保每个条形的中心是对应的整数值。
重要的是要记住,骰子不能显示 1.3 个点或 5.2 个点 - 总是显示整数个点。但是我们的可视化将每个值的概率扩展到条形区域。虽然在本课程的这个阶段这看起来有些随意,但是稍后当我们在离散直方图上叠加平滑曲线时,这将变得很重要。
在继续之前,让我们确保轴域上的数字是有意义的。每个面的概率是 1/6,四舍五入到小数点后两位的概率是 16.67%。每个桶的宽度是 1 个单位。所以每个条形的高度是每单位 16.67%。这与图形的水平和垂直比例一致。
### 经验分布
上面的分布由每个面的理论概率组成。 这不基于数据。 不投掷任何骰子,它就可以被研究和理解。
另一方面,经验分布是观测数据的分布。 他们可以通过经验直方图可视化。
让我们通过模拟一个骰子的投掷来获得一些数据。 这可以通过 1 到 6 的整数的带放回随机抽样来完成。为了使用 Python 来实现,我们将使用
`Table`
的
`sample`
方法,它带放回地随机抽取表中的行。它的参数是样本大小,它返回一个由选定的行组成的表。
`with_replacement=False`
的可选参数指定了应该抽取样本而不放回,但不适用于投掷骰子。
这是一个十次骰子投掷的结果。
```
py
die
.
sample
(
10
)
```
| Face |
| --- |
| 5 |
| 3 |
| 3 |
| 4 |
| 2 |
| 2 |
| 4 |
| 1 |
| 6 |
| 6 |
我们可以使用相同的方法来模拟尽可能多的投掷,然后绘制结果的经验直方图。 因为我们要反复这样做,所以我们定义了一个函数
`empirical_hist_die`
,它以样本大小为参数;该函数根据其参数多次投掷骰子,然后绘制直方图。
```
py
def
empirical_hist_die
(
n
):
die
.
sample
(
n
).
hist
(
bins
=
die_bins
)
```
### 经验直方图
这是十次投掷的经验直方图。 它看起来不像上面的概率直方图。 运行该单元格几次,看看它如何变化。
```
py
empirical_hist_die
(
10
)
```
当样本量增加时,经验直方图开始看起来更像是理论概率的直方图。
```
py
empirical_hist_die
(
100
)
```
```
py
empirical_hist_die
(
1000
)
```
当我们增加模拟中的投掷次数时,每个条形的面积接近 16.67%,这是概率直方图中每个条形的面积。
我们在实例中观察到了一般规则:
### 平均定律
如果偶然的实验在相同的条件下独立重复,那么从长远来看,事件发生的频率越来越接近事件的理论概率。
例如,从长远来看,四点的比例越来越接近 1/6。
这里“独立地且在相同的条件下”意味着,无论所有其他重复的结果如何,每个重复都以相同的方式执行。
## 从总体中取样
当随机样本来自较大总体时,平均定律也成立。
作为一个例子,我们将研究航班延误时间的总体。
`united `
表包含 2015 年夏天从旧金山出发的美联航国内航班的数据。数据由
[
美国运输部运输统计局
](
http://www.transtats.bts.gov/Fields.asp?Table_ID=293
)
公布。
这里有 13,825 行,每行对应一个航班。 列是航班日期,航班号,目的地机场代码和以分钟为单位的出发延误时间。有些延误时间是负的;那些航班提前离开。
```
py
united
=
Table
.
read_table
(
'united_summer2015.csv'
)
united
```
| Date | Flight Number | Destination | Delay |
| --- | --- |
| 6/1/15 | 73 | HNL | 257 |
| 6/1/15 | 217 | EWR | 28 |
| 6/1/15 | 237 | STL | -3 |
| 6/1/15 | 250 | SAN | 0 |
| 6/1/15 | 267 | PHL | 64 |
| 6/1/15 | 273 | SEA | -6 |
| 6/1/15 | 278 | SEA | -8 |
| 6/1/15 | 292 | EWR | 12 |
| 6/1/15 | 300 | HNL | 20 |
| 6/1/15 | 317 | IND | -10 |
(省略了 13815 行)
一个航班提前 16 分钟起飞,另一个航班延误 580 分钟。 其他延迟时间几乎都在 -10 分钟到 200 分钟之间,如下面的直方图所示。
```
py
united
.
column
(
'Delay'
).
min
()
-
16
united
.
column
(
'Delay'
).
max
()
580
delay_bins
=
np
.
append
(
np
.
arange
(
-
20
,
301
,
10
),
600
)
united
.
select
(
'Delay'
).
hist
(
bins
=
delay_bins
,
unit
=
'minute'
)
```
就本节而言,仅仅关注部分数据就足够了,我们忽略延迟超过 200 分钟的 0.8% 的航班。 这个限制只是为了视觉便利。 该表仍然保留所有的数据。
```
py
united
.
where
(
'Delay'
,
are
.
above
(
200
)).
num_rows
/
united
.
num_rows
0.008390596745027125
delay_bins
=
np
.
arange
(
-
20
,
201
,
10
)
united
.
select
(
'Delay'
).
hist
(
bins
=
delay_bins
,
unit
=
'minute'
)
```
`[0,10)`
的条形高度不到每分钟 3%,这意味着只有不到 30% 的航班延误了 0 到 10 分钟。 这是通过行的计数来确认的:
```
py
united
.
where
(
'Delay'
,
are
.
between
(
0
,
10
)).
num_rows
/
united
.
num_rows
0.2935985533453888
```
### 样本的经验分布
现在让我们将这 13,825 个航班看做一个总体,并从中带放回地抽取随机样本。 将我们的分析代码打包成一个函数是有帮助的。 函数
`empirical_hist_delay`
以样本大小为参数,绘制结果的经验直方图。
```
py
def
empirical_hist_delay
(
n
):
united
.
sample
(
n
).
select
(
'Delay'
).
hist
(
bins
=
delay_bins
,
unit
=
'minute'
)
```
正如我们用骰子所看到的,随着样本量的增加,样本的经验直方图更接近于总体的直方图。 将这些直方图与上面的总体直方图进行比较。
```
py
empirical_hist_delay
(
10
)
```
```
py
empirical_hist_delay
(
100
)
```
最一致的可见差异在总体中罕见的值之中。 在我们的示例中,这些值位于分布的最右边。 但随着样本量的增加,这些值以大致正确的比例,开始出现在样本中。
```
py
empirical_hist_delay
(
1000
)
```
### 样本的经验直方图的总结
我们在本节中观察到的东西,可以总结如下:
对于较大的随机样本,样本的经验直方图类似于总体的直方图,概率很高。
这证明了,在统计推断中使用大量随机样本是合理的。 这个想法是,由于较大的随机样本可能类似于从中抽取的总体,从样本中计算出的数量可能接近于总体中相应的数量。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录