好的,我参加这个聚会有点晚了,但是虽然我同意 dsaxton 在第一段中所说的话,但我认为第二段迷路了。
重新随机化可以很好地为大量统计数据指定零分布。但是,您已经设法通过将两个病态分布(分别以 9 和 10 为中心的点分布)与中位数相结合来引发问题——在只有两个可能值的情况下,这个统计数据可能最不有用,因为它可以变成很不稳定。
我将尝试对几个样本大小进行比较,以显示这里发生的情况。它应该有助于解释 dsaxton 的见解,即一致性是真正的统计能力所在。
想象一下,我们在每辆公共汽车上乘坐一次。我们得到一个 9 和一个 10。我们随机化 10,000 次进行推理。有一半的人换了位置,有一半的人没有。因此,如果我们测量中位数,中位数差异的一半时间为 -1,一半时间为 1。同样对于均值,均值差异的一半时间为 -1,一半时间为 1 .
现在想象一下,我们在每辆公共汽车上乘坐了 10 次,产生了 10 次 10 和 10 次 9。我们重新随机化。这一次,大多数随机化导致每个样本中每 10 和 9 中大约有 5 个。对于每个样本,均值将形成大约 9.5 的正态分布(实际上是一个移位的二项式),给出以 0 为中心的差异。中位数的差异有时可能为 0——如果我们实际上在每个样本中每次都得到 5 个——给出中位数在每个 9.5 的样本中,但它更可能有轻微的不平衡。这种轻微的不平衡使中位数为 9 和 10 或 10 和 9。因此,大多数情况下,中位数的差异将是 -1 或 1,这与我们的实际结果相似,从而给出了额外的高 p 值。
似乎继续增加乘坐公共汽车的次数应该可以解决这个问题,但是虽然这会使平均值更加稳定——并将零值固定在 0 附近,但它实际上会破坏中位数。获得精确匹配的可能性越来越小,因此中间立场消失了。
好的。也许这是有道理的。我将包含一些 R 代码以使其具体化。
n = 10
a = rep(10,n) #initial samples
b = rep(9,n)
joint.sample = c(a,b) #Combining samples for ease
bootstraps = 10000 #Number of replications
est.mean = mean(a) - mean(b) #Estimate of treatment
boot.mean = replicate(bootstraps, {
new.sample = sample(joint.sample)
mean(new.sample[1:n]) - mean(new.sample[1:n+n])
}) #Simply resamples and takes means of the two groups
CI.mean = quantile(boot.mean,prob=c(0.025,0.975) #Calculates a CI
pval.mean = mean(boot.mean >= est.mean)*2 #Two-sided p-value
#Same things but with median
est.median = median(a)-median(b)
boot.median = replicate(bootstraps, {
new.sample = sample(joint.sample)
median(new.sample[1:n]) - median(new.sample[1:n+n])
})
CI.median = quantile(boot.median,prob=c(0.025,0.975)
pval.median = mean(boot.median >= est.median)*2
这应该会为您提供结果,表明具有平均值的随机化会强烈拒绝这些相同。随意摆弄样本大小 n 以查看它如何影响事物,但大多数情况下,对于这样一个明确的案例,不需要大样本即可发现差异。您还应该能够拒绝使用中位数 - 但您需要一对不同的分布,以便中位数移动得更多。我认为应该做任何连续的事情,然后是样本量的问题。
一个注意事项。我在这里使用示例函数的默认值来指示我是否要替换。一般来说,您需要认真考虑使用哪种采样类型,因为这会影响结果。