如何在 python 中执行引导(带有示例)
Bootstrapping是一种当样本量较小且基本分布未知时可用于构建统计数据置信区间的方法。
bootstrapping的基本流程如下:
- 从给定的数据集中取出k 个具有替换的重复样本。
- 对于每个样本,计算感兴趣的统计量。
- 这给出了给定统计量的k 个不同估计值,然后您可以使用它来计算统计量的置信区间。
在 Python 中进行引导的最简单方法是使用SciPy库中的引导函数。
下面的例子展示了如何在实际中使用这个功能。
示例:在 Python 中执行引导
假设我们用 Python 创建一个包含 15 个值的数据集:
#define array of data values
data = [7, 9, 10, 10, 12, 14, 15, 16, 16, 17, 19, 20, 21, 21, 23]
我们可以使用以下代码来计算中值的 95% bootstrap 置信区间:
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. median , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=10.0, high=20.0)
中位数的 95% 自举置信区间为[10.0, 20.0] 。
以下是boostrap()函数在幕后实际执行的操作:
- bootstrap()函数生成了 9,999 个替换样本。 (默认值为 9999,但您可以使用n_resamples参数更改此数字)
- 对于每个引导样本,计算中位数。
- 每个样本的中值从小到大排序,并使用 2.5% 百分位数和 97.5% 百分位数的中值构建 95% 置信区间的下限和上限。 %。
请注意,您几乎可以计算任何统计数据的引导置信区间。
例如,我们可以在bootstrap()函数中将np.median替换为np.std来计算标准差的 95% 置信区间:
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. std , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=3.3199732261303283, high=5.66478399066117)
标准差的 95% bootstrap 置信区间为[3.32, 5.67] 。
注意:对于这些示例,我们选择创建 95% 置信区间,但您可以更改trust_level参数的值以构造不同大小的置信区间。
其他资源
以下教程解释了如何在其他统计软件中引导: