MrJun's Blog

Bootstrap Resampling Method

1中心极限定理

从均值$\mu$、方差为$\sigma^2$ 的任意一个总体中抽取样本容量为n的样本,当n充分大时,样本均值$\bar{x}$的抽样分布渐进服从均值为$\mu$,方差为$\frac{\sigma^2}{n}$的正态分布。

2 Bootstraps抽样方法基本思想

在只有一份样本容量为$m$数据的情况下,利用一个容量为$m$的样本数据有放回的随机抽取$k$个样本容量为$n$的样本。得到每个样本计算得出样本统计量的值的分布,然后对总体参数(如总体均值、中位数、方差、分位数等)的估计,是一种不需要公式的统计推断。广泛应用于如置信区间、回归模型,甚至机器学习等领域。

3中心极限定理与Bootstraps

在Bootstraps采样方法中样本容量$m=1$的情况下,中心极限定理的抽样分布即为Bootstraps采样方法的样本统计值分布。

在Bootstraps采样方法中样本容量$m\neq1$的情况下,

样本统计量为均值时,Bootstraps采样和中心极限定理的均值相同。

样本统计量为方差时,由于Bootstraps采样对于样本容量为$n$求均值后得到$k$个样本均值来计算方差$\sigma^2$ ,因此不需要处以$n$,所得方差$\sigma^2$ 即为原样本方差。

4 代码实现

import numpy as np
import matplotlib.pyplot as plt

# 设置随机种子
np.random.seed(42)
# 一份样本容量为100的数据data
data = np.random.randint(0, 500, size=100)

# 生成k个 Bootstrap样本的统计量
boot_means = []
for k in range(10000):
    # 从data中随机选择30个数据作为一个样本容量为30的样本
    bootsample = np.random.choice(data, size=30, replace=True)
    # 得到样本的均值的集合
    boot_means.append(bootsample.mean())

# 样本的均值的集合的分布即为原数据的分布
boot_means.mean(), boot_means.var()