Answers:
这是经典R数据集的说明:
> x = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5%
73.5 77
得出中位数的(73.5,77)置信区间。
(注:修改后的版本,感谢约翰,我用在nrow
前面,而导致的混乱!)
另一种方法是基于二项式分布的分位数。
例如:
> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77
检查引导程序重采样。在R帮助中搜索引导功能。根据重新采样的数据,您可以估计几乎所有内容的置信区间。
wilcox.test(..., conf.int=TRUE)
函数提供的。
基于qbinom方法的结果不适用于小样本。假设x有10个分量。然后qbinom(c(.025,.975),10,.5)给出2和8。结果间隔不将下尾的统计与上尾的统计对称;您应该得到2和9,或者3和8。正确的答案是2和9。您可以在SAS中检查proc单变量。抓住这里是您需要的上下概率不超过.025;较低的分位数不执行此操作,因为它等于或小于0.025。您之所以会保存在底部,是因为应该将应为1的计数映射到二阶统计量(计数为0),因此取消了“ off by by”(加一)。这种偶然的取消不会发生在最前面,因此您在这里得到了错误的答案。代码sort(x)[qbinom(c(.025,.975),length(x),. 5)+ c(0,1)]几乎可以工作,.5可以用其他分位数替换以获取其他分位数的置信区间,但是当存在P [X <= a ] =。025。例如,参见希金斯,非参数统计。
library(boot)
出现的功能来确认这一点:> boot.ci(boot(x,function(x,i)mid(x [i]),R = 1000))时间间隔:等级普通基础95%(74.42,78.22)(75.00 ,78.49)百分位数BCa 95%(73.51,77.00)(73.00,77.00)