均值与 SEM 的自助法重复样本
在本练习中,您将计算谢菲尔德气象站年均降雨量的自助法估计概率密度函数。请记住,我们要估计的是:如果谢菲尔德气象站能把 1883 年到 2015 年的观测无限次重复,所得年均降雨量会怎样分布。这是对"均值"的一种"概率性"估计。您将把该 PDF 以直方图形式绘制出来,并会看到它近似正态。
事实上,可以从理论上证明,在相当宽松的条件下,样本均值总是服从正态分布。(这并非对所有统计量都成立,只对均值和少数统计量成立。)该分布的标准差称为"均值的标准误差"(standard error of the mean,SEM),其计算方式为:数据的标准差除以数据点数量的平方根。也就是说,对数据集有 sem = np.std(data) / np.sqrt(len(data))。使用黑客统计方法,您无需推导也能得到相同结果,而您将通过自助法重复样本来验证这一点。
数据集已预先加载为名为 rainfall 的数组。
本练习是课程的一部分
Python 统计思维(第 2 部分)
练习说明
- 使用您的
draw_bs_reps()函数和rainfall数组,抽取10000个年降雨量"均值"的自助法重复样本。提示:将func传入np.mean来计算均值。- 提醒:
draw_bs_reps()接受 3 个参数:data、func和size。
- 提醒:
- 计算并打印
rainfall的均值标准误差(SEM)。- 计算公式为
np.std(data) / np.sqrt(len(data))。
- 计算公式为
- 计算并打印您的自助法重复样本
bs_replicates的标准差。 - 使用
density=True关键字参数和50个箱绘制这些重复样本的直方图。 - 点击 "Submit Answer" 查看图形!
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Take 10,000 bootstrap replicates of the mean: bs_replicates
bs_replicates = ____
# Compute and print SEM
sem = ____ / np.sqrt(____)
print(sem)
# Compute and print standard deviation of bootstrap replicates
bs_std = ____
print(bs_std)
# Make a histogram of the results
_ = plt.hist(____, ____=50, ____=True)
_ = plt.xlabel('mean annual rainfall (mm)')
_ = plt.ylabel('PDF')
# Show the plot
plt.show()