对总体
X
X
X的一次具体抽样,得到一个容量为
n
n
n的样本观测值
(
x
1
,
x
2
,
⋯
,
x
n
)
(x_1,x_2,\cdots,x_n)
(x1,x2,⋯,xn)。记
a
=
m
i
n
{
x
1
,
x
2
,
⋯
,
x
n
}
a=min\{x_1,x_2,\cdots,x_n\}
a=min{x1,x2,⋯,xn},
b
=
m
a
x
{
x
1
,
x
2
,
⋯
,
x
n
}
b=max\{x_1,x_2,\cdots,x_n\}
b=max{x1,x2,⋯,xn}。将
[
a
,
b
]
[a, b]
[a,b]等分成
m
m
m个小区间
Δ
k
\Delta_k
Δk(为方便计,其长度亦记为
Δ
k
\Delta_k
Δk),
k
=
1
,
2
,
⋯
,
m
k=1,2,\cdots,m
k=1,2,⋯,m。记录下落入每个小区间
Δ
k
\Delta_k
Δk内的样本观测值个数
f
k
f_k
fk,在该区间的上方绘制高为
f
k
n
Δ
k
\frac{f_k}{n\Delta_k}
nΔkfk,宽为
Δ
k
\Delta_k
Δk的矩形,
k
=
1
,
2
,
⋯
,
m
k=1,2,\cdots,m
k=1,2,⋯,m。得到的图形称为样本观测值
(
x
1
,
x
2
,
⋯
,
x
n
)
(x_1,x_2,\cdots,x_n)
(x1,x2,⋯,xn)的直方图。显然,这样绘制的直方图,其总面积为1,称为密度化的直方图。
设样本观测数据存储在数组中。Python的matplotlib包中的pyplot对象有一个专门绘制数据数组的直方图的函数hist。该函数的调用接口为
hist(x, bins, density)
\text{hist(x, bins, density)}
hist(x, bins, density)
参数x传递数据数组。bins传递分组个数,即小区间个数。参数density传递布尔值True或False,缺省值为False。若为True,意味着密度化直方图。
例1 下面列出84个伊特拉斯坎(Etruscan)人男子的头颅的最大宽度(mm)。
141 | 148 | 132 | 138 | 154 | 142 | 150 | 146 | 155 | 158 | 150 | 140 | 147 | 148 |
144 | 150 | 149 | 145 | 149 | 158 | 143 | 141 | 144 | 144 | 126 | 140 | 144 | 142 |
141 | 140 | 145 | 135 | 147 | 146 | 141 | 136 | 140 | 146 | 142 | 137 | 148 | 154 |
137 | 139 | 143 | 140 | 131 | 143 | 141 | 149 | 148 | 135 | 148 | 152 | 143 | 144 |
141 | 143 | 147 | 146 | 150 | 132 | 142 | 142 | 143 | 153 | 149 | 146 | 149 | 138 |
142 | 149 | 142 | 137 | 134 | 144 | 146 | 147 | 140 | 142 | 140 | 137 | 152 | 145 |
绘制这些数据的直方图。
解: 下列代码绘制本例中伊特拉斯坎人男子的头颅的最大宽度数据的直方图。
import numpy as np #导入numpy
from matplotlib import pyplot as plt #导入绘图对象pyplot
sample=np.array([141,148,132,138,154,142,150,146,155,158, #设置样本数据数组
150,140,147,148,144,150,149,145,149,158,
143,141,144,144,126,140,144,142,141,140,
145,135,147,146,141,136,140,146,142,137,
148,154,137,139,143,140,131,143,141,149,
148,135,148,152,143,144,141,143,147,146,
150,132,142,142,143,153,149,146,149,138,
142,149,142,137,134,144,146,147,140,142,
140,137,152,145])
plt.hist(sample, bins=8, density=True) #分成8组绘制直方图
plt.show()
注意第12行调用pyplot对象的hist函数时所传递的各个参数:传递给接收数据数组参数x的是样本观测值数组sample(在第3~11行设置),传递给确定涵盖所有样本数据的区间分组数的bins为8,传递给决定小矩形高度的参数density为True。运行程序,展示的直方图如下图所示。
由上图可见,沿密度化直方图的外轮廓描绘曲线,可以得到总体
X
X
X的密度函数的近似曲线。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》