开始使用免费开始使用

均值与 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 个参数:datafuncsize
  • 计算并打印 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()
编辑并运行代码