library(boot)Boot我们可以使用 boot 包中的 boot 函数来进行自助法估计. 下面我们仍然以给熊猫丫丫称重为例, 了解如何使用 boot 函数来计算 bootstrap 标准误.
先加载 boot 包:
library(boot)boot 函数的基本语法为: boot(data, statistic, R), 其中
data 为原始样本, 它一般是一个 向量或者数据框statistic 是要计算标准误的估计量, 它是一个函数R 表示再抽样的次数, 它是一个整数在计算 bootstrap 标准误时, 只需要指定这三个参数即可. 你可以运行 ?boot::boot 命令, 查看关于 boot 函数的更多说明.
boot 计算标准误这里的原始样本为熊猫丫丫的十次称重:
k_weights <- c(93, 77, 62, 78, 75, 85, 66, 83, 91, 72)设定随机数种子:
set.seed(2023)这里的统计量为丫丫体重的均值:
boot.fn = function(data, index) {
mean(data[index])
} 函数 boot.fn 会返回参数 data 的均值, conditional on 对应的指标 index.
如果我们直接使用所有样本数据: boot.fn(k_weights, 1:10)
如果我们要进行再抽样: boot.fn(k_weights, sample(1:10, size = 10, replace = TRUE)). 我们可以通过反复再抽样来完成 bootstrap 估计.
boot 函数帮助我们自动完成了反复再抽样这个过程. 下面我们使用 boot 函数进行 1000 次再抽样, 并计算标准误:
bstrap = boot(k_weights, boot.fn, 1000)和 lm 类似, 我们使用自助法估计得到的所有信息, 都储存在了 bstrap 这个对象中.
bstrap
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = k_weights, statistic = boot.fn, R = 1000)
Bootstrap Statistics :
original bias std. error
t1* 78.2 -0.0433 3.058956
我们计算得到的标准误 (std. error) 约为 3.06. 作为对比, 我们之前使用 sample 函数进行再抽样计算得到的标准误约为 3.27.