Bootstrap抽样简介
Bootstrap抽样是由Bradley Efron于1979年提出的一种非参数统计方法。它的主要思想是通过从原始样本中有放回地抽取大量的自助样本,来模拟总体分布,从而进行统计推断。
步骤
-
收集样本数据:首先,您需要收集到一个样本数据集,这将是您进行Bootstrap抽样的基础。
-
自助抽样:使用有放回抽样的方法,从原始样本中抽取与原始样本相同大小的样本,组成一个自助样本。
-
重复抽样:重复第2步的操作,通常重复抽样1000次或更多次,以产生足够多的自助样本。
-
统计量计算:对于每个自助样本,计算感兴趣的统计量,比如平均值、中位数等。
-
得到Bootstrap抽样分布:将所有统计量的结果组成一个分布,即为Bootstrap抽样分布。
-
估计置信区间:通过Bootstrap抽样分布,计算您所感兴趣的统计量的置信区间,用于估计抽样误差和确定估计的精度。
优点
-
鲁棒性:Bootstrap抽样不需要对总体分布做出任何假设,适用于各种类型的数据。
-
效率:相对于传统的统计方法,Bootstrap抽样通常可以更快速地获得统计量的估计和置信区间。
缺点
- 计算量较大:由于需要重复抽样和统计量计算,Bootstrap抽样在样本较大时,可能需要较长的计算时间。
示例代码
import numpy as np
def bootstrap_mean(data, num_samples=1000):
sample_means = []
n = len(data)
for _ in range(num_samples):
bootstrap_sample = np.random.choice(data, size=n, replace=True)
sample_mean = np.mean(bootstrap_sample)
sample_means.append(sample_mean)
return sample_means
# 示例数据集
data = [4, 6, 8, 10, 12, 14, 16, 18, 20]
# 计算Bootstrap抽样均值
bootstrap_means = bootstrap_mean(data)
# 计算均值的置信区间
confidence_interval = np.percentile(bootstrap_means, [2.5, 97.5])
print("Bootstrap抽样均值的置信区间:", confidence_interval)