【发布时间】:2014-08-31 18:45:12
【问题描述】:
我有两组正实数。
> dput(group1)
c(2.10753, 2.57251, 2.61687, 4.62551, 7.13166, 6347.63, 4.22139,
10.7373, 2.11568, 2.71866, 4.09376, 10.9046, 109807, 5.87156,
3.17082, 3.4703, 2.47262, 9.24319, 34.6945, 5.72567, 12.0134,
108.33, 6.60707, 6.24304, 3.59048, 10.3174, 48.0265, 5.32097,
3.77157, 6.67401, 22.633, 34.8186, 21.5315, 9.42882, 7.10627, ...)
> dput(group2)
c(4.88474, 65.4318, 128.101, 24.1271, 5.44262, 54.8987, 2.85175,
14.1089, 172.23, 66.8563, 6.74067, 2.19603, 2.12985, 4.12735,
16.401, 3.22688, 15.6943, 4.32861, 36.4752, 7.33769, 75.855,
62.7653, 35.1786, 3.71099, 29.0186, 34.4472, 19.1061, 2.75174, ...)
第 1 组包含约 1000 个值,第 2 组约 30,000 个。我对两组之间的中位数比率感兴趣,并使用以下 R 函数为 2000 个引导样本中的每一个计算该比率(对于 boot() 命令,请参见下面的函数输出):
medianRatio <- function(x, i, noGroup1, noGroup2) {
all <- x[i]
currGroup1 <- all[1:noGroup1]
currGroup2 <- all[c(noGroup1 + 1):length(all)]
ratio <- median(currGroup1) / median(currGroup2)
return(ratio)
}
boot() 函数的调用如下所示
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = c(group1, group2), statistic = medianRatio, R = noBs,
noGroup1 = length(group1), noGroup2 = length(group2))
Bootstrap Statistics :
original bias std. error
t1* 1.08847 -0.08597889 0.05451763`
得到的 bootstrap 样本分布的平均值为 1.002,sd 为 0.054(直方图的目测证实了 1 附近的正态分布)。另外:
范围(Group1_Group2.BS$t) [1] 0.823311 1.198469
然而,当我在引导对象上运行 boot.ci() 时,报告的置信区间为
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 2000 bootstrap replicates
CALL :
boot.ci(boot.out = Group1_Group2.BS, type = "norm")
Intervals :
Level Normal
95% ( 1.068, 1.281 )
Calculations and Intervals on Original Scale
我不明白这里发生了什么,因为报告的置信区间甚至没有涵盖引导样本的(对称)分布的平均值。我错过了什么?
【问题讨论】:
-
如果我们可以通过发布
dput(YOURDATA)的输出来查看您的数据是什么样子,就更容易猜测发生了什么。 -
我已经添加了要求的信息。
标签: r confidence-interval statistics-bootstrap