自举重采样中的观察是否独立?

机器算法验证 聚类 t检验 引导程序 独立
2022-04-10 01:42:20

bootstrap 通常用于非参数推理。但是,在某些情况下,引导然后在每个重新采样中进行参数测试很有用(可选地,请参阅参考资料,但这不是该问题的任何要求阅读)。

例如,您有一个连续变量。您使用经典引导程序重新采样,即带替换采样。然后,在每个重新采样的数据集中,您执行假设独立观察的假设检验,例如标准检验。因为数据集中有重复的观察,我认为我们有非独立的观察:观察是“聚集的”,因为所有重新采样的观察映射到原始数据集中的同一观察是 100% 相关的。t

更正式地说,说是标准正态。是一个随机变量,表示重采样数据集中观测值让我们检查独立性是否成立。随着重采样的数量变大,我们有(有一些符号滥用):YYiYith

fYi(y)=N(0,1)

但是,对于映射到我们重新采样的原始数据集中相同观察值的所有,由于重复观察和的连续性,条件分布是退化的:i,jY

fYi|Yj(yi|yj)=1{yi=yj}fYi(yi)

所以独立性似乎不成立,我希望假设独立性无效的推论(可能是反保守的)。

然而,模拟(下面的代码)表明,事实上,在上面描述的确切情况下,实际上我们确实有名义上的 I 类错误。

那么独立性在自举样本中是否成立?如果不是,为什么非独立性不会像通常那样妥协推理?难道我连“独立观察”的定义都不懂吗?

编辑

我发现这个关于独立观察定义的精彩讨论支持了我直观地提出的观点。因此,我的问题仍然存在。

模拟

library(doParallel)
# set the number of cores
registerDoParallel(cores=8)

sim.reps = 250
n=50
boot.reps = 500

res = as.data.frame( foreach( i = 1:sim.reps, .combine=rbind ) %dopar% {

# generate original data under H0 for a 1-sample t-test
y = rnorm(n)

pvals = c()
for (i in 1:boot.reps) {

  # classical bootstrap
  ids = sample(1:n, replace=TRUE)
  y.star = y[ids]

  # t-test
  pvals[i] = t.test(y.star)$p.value
}

# should be 0.05
sum(pvals < 0.05) / length(pvals)
} )

names(res) = "rej"
res$rej = as.numeric(res$rej)

# equals 0.05
mean(res$rej)

参考

Romano, JP 和 Wolf, M. (2007)。控制多重测试中的广义错误率。统计年鉴,1378-1408。

3个回答

这样想:

你有一群人。你从人群中随机选择一个人,测量他的体重并将他送回人群中。然后,您从人群中随机选择第二个人,测量他的体重并将他送回人群。你继续这个过程,直到你最终得到一组 10 个测量的重量。

10 个抽样个体中的两个给您相同的体重 70 公斤。你会得出结论,这两个 70 公斤的观测值是相互依赖的,因为它们是相同的吗?完全不是——从人群中进行的每一次选择/抽签都是独立于其他人的(即,您在第一次选择/抽签中获得了 70 公斤的体重这一事实,不会以任何方式影响您在其他抽签中可能获得的结果)。

不要将抽奖的价值与用于保证抽奖相互独立的随机机制混淆。两个独立的平局可以产生相同的值——这不会改变它们是独立的事实。

编辑:

在重复测量研究中,您可以随机选择受试者样本,然后根据某些结果变量(例如,血压)对每个受试者进行多次测量。不同科目对应的结果值将相互独立。然而,在每个受试者中,结果变量的值可能不会相互独立。这是因为所有这些值都会受到与该主题(例如年龄、性别)相对应的一组共享因素的影响——一些已观察到,一些未观察到。

独立性是定义在同一概率空间上的一组随机变量的属性。您的 bootstrap 样本是否独立取决于您考虑作为样本基础的随机变量

考虑随机实验:

掷硬币两次,写下结果,并从结果中替换两次抽样。

使用您可以使用空间上的随机变量对这个随机实验进行建模 使用随机变量 这里不是独立的。Ω1:={0,1}Ω2:={1,2}

Ω3=Ω1×Ω1×Ω2×Ω2.
X1:Ω3R, (a,b,c,d)a,
X2:Ω3R, (a,b,c,d)b,
X1:Ω3R, (a,b,c,d)Xc(a,b,c,d),
X2:Ω3R, (a,b,c,d)Xd(a,b,c,d).
X1X2

但是,如果您考虑随机实验:

给定你抛硬币的结果,用放回抽样两次

并且您将建模为第一个和第二个样本,那么它们是独立的。X1X2

我是OP。别人的回答都很好,我接受了其中一个。我也在这里回答以统一我所学到的知识。

是的。在这种情况下,观察是独立的。我认为关键问题是我们是否以集群成员身份为条件。

正式的回答

上面,我试图检查定义是否独立。但是下面的说法是错误的:

fYi|Yj(yi|yj)=1{yi=yj}fYi(yi)

因为它只适用于那些我们知道它们来自原始数据集中的相同观察的因此,我忽略了以关键信息为条件。是我们从中提取的原始数据集中行的索引。那么正确的表述方式是:i,jRiYi

fYi|Yj,Ri,Rj(yi|yj,ri=rj)=1{yi=yj}fYi(yi)

但是,如果不以的观察结果不包含有关的信息,因为我们不知道它们来自原始数据中的同一行。因此:Ri,RjYj=yjYj

fYi|Yj(yi|yj)=fYi(yi)

所以独立性成立。

启发式模拟

这是对采样机制产生的更熟悉的非独立概念的模拟。产生非独立性的经典方式是通过整群抽样,例如对学校进行抽样,然后对学校内的学生进行抽样。这种抽样方案有效地“固定”了集群成员资格或条件,因为我们选择学校,然后选择学校内的学生。

自举独立性的关键类比是,如果我们直接从所有学生的人口中抽样(而不是抽样学校),那么无论我们是否从同一所学校抽取学生,观察结果都是独立的。那是因为我们不再“适应”集群。类似地,在boostrapping 世界中,替换抽样机制意味着我们以集群为条件;每个观测值都有相同的抽样机会。

(我认为与第一个关于集群采样的示例类似,如果我们首先在原始数据集中选择一个观察样本,然后重复每个选择的行多次以创建重新采样。我相信,这会导致到非独立观察。)