有多种计算引导 CI 和 p 值的方法。主要问题是引导程序不可能在零假设下生成数据。置换测试是一种可行的基于重采样的替代方法。要使用适当的引导程序,您必须对检验统计量的抽样分布做出一些假设。
关于缺乏测试不变性的评论:完全有可能找到 95% 的 CI,不包括 null 但 ap > 0.05,反之亦然。为了获得更好的一致性,null 下 bootstrap 样本的计算必须为β∗0=β^−β^∗而不是β∗0=β^∗−β^. 也就是说,如果密度在 bootstrap 样本中向右倾斜,则密度必须在空值中向左倾斜。使用诸如此类的非分析(例如重采样)解决方案来反转 CI 的测试是不可能的。
正常引导
一种方法是正态自举,您获取自举分布的均值和标准差,通过移动分布并使用原始自举样本中估计点处的零分布的正态百分位数来计算零下的采样分布. 当 bootstrap 分布正常时,这是一种合理的方法,目视检查通常就足够了。使用这种方法的结果通常非常接近稳健的或基于三明治的误差估计,这种估计对异方差和/或有限样本方差假设具有稳健性。正态检验统计量的假设是我将讨论的下一个自举检验中假设的更强条件。
百分位引导
另一种方法是百分位自举法,我认为我们大多数人在谈到自举法时都会考虑这一点。在这里,参数的自举分布估计了备择假设下样本的经验分布。这种分布可能是非正态的。采用经验分位数很容易计算出 95% CI。但是一个重要的假设是这样的分布是关键的。这意味着如果基础参数发生变化,分布的形状只会移动一个常数,而尺度不一定会改变。这是一个强有力的假设!如果这成立,您可以生成“在零假设下的统计分布”(DSNH 或F∗0) 通过从估计值中减去自举分布,然后计算 DSNH 的百分比比您的估计值“更极端”2×min(F∗0(β^),1−F∗0(β^))
学生化引导
计算值的最简单的引导解决方案是使用学生化引导。在每次 bootstrap 迭代中,计算统计量及其标准误差并返回学生统计量。这给出了假设的自举学生分布,可以很容易地用于计算 cis 和 p 值。这也是偏置校正加速引导背后的直觉的基础。t 分布在零值下更容易移动,因为异常结果被其相应的高方差降低了权重。p
编程示例
例如,我将使用city
bootstrap 包中的数据。使用以下代码计算引导置信区间:
ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
city.boot <- boot(city, ratio, R = 999, stype = "w", sim = "ordinary")
boot.ci(city.boot, conf = c(0.90, 0.95),
type = c("norm", "basic", "perc", "bca"))
并产生这个输出:
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 999 bootstrap replicates
CALL :
boot.ci(boot.out = city.boot, conf = c(0.9, 0.95), type = c("norm",
"basic", "perc", "bca"))
Intervals :
Level Normal Basic
90% ( 1.111, 1.837 ) ( 1.030, 1.750 )
95% ( 1.042, 1.906 ) ( 0.895, 1.790 )
Level Percentile BCa
90% ( 1.291, 2.011 ) ( 1.292, 2.023 )
95% ( 1.251, 2.146 ) ( 1.255, 2.155 )
Calculations and Intervals on Original Scale
正常 bootstrap 的 95% CI 是通过计算获得的:
with(city.boot, 2*t0 - mean(t) + qnorm(c(0.025, 0.975)) %o% sqrt(var(t)[1,1]))
因此得到 p 值:
> with(city.boot, pnorm(abs((2*t0 - mean(t) - 1) / sqrt(var(t)[1,1])), lower.tail=F)*2)
[1] 0.0315
这同意 95% 的正常 CI 不包括 1 的空值比值。
获得百分位数 CI(由于关系的方法而存在一些差异):
quantile(city.boot$t, c(0.025, 0.975))
百分位引导的 p 值为:
cvs <- quantile(city.boot$t0 - city.boot$t + 1, c(0.025, 0.975))
mean(city.boot$t > cvs[1] & city.boot$t < cvs[2])
给出 0.035 的 ap,这也与从值中排除 1 的置信区间一致。我们一般不能观察到,虽然百分位数 CI 的宽度几乎与正常 CI 一样宽,并且百分位数 CI 离零值更远,百分位数 CI 应该提供较低的 p 值。这是因为百分位数方法的 CI 下的抽样分布形状是非正态的。