library(boot)
set.seed(1)
x=sample(0:1000,1000)
y=function(u,i) sum(x[i])
o=boot(x,y,1000)
theta1=NULL
theta1=cbind(theta1,o$t)
b=theta1[order(theta1)]
bp1=c(b[25], b[975])
ci=boot.ci(o,type="perc")
我使用两种方法来构建bootstrap百分位置信区间,但我得到了两个不同的答案。
bp1=c(b[25], b[975]) get (480474,517834)
而ci=boot.ci(o,type="perc")
得到(480476,517837)
boot.ci如何构建百分位数间隔?
答案 0 :(得分:0)
通过单独调用函数boot.ci
,脚本出现。然后,您可以看到使用函数perc.ci
(第70行)计算百分位数CI。在Github上,您可以获取包脚本。正在寻找perc.ci
函数,您可以找到:
perc.ci <- function(t, conf = 0.95, hinv = function(t) t)
#
# Bootstrap Percentile Confidence Interval Method
#
{
alpha <- (1+c(-conf,conf))/2
qq <- norm.inter(t,alpha)
cbind(conf,matrix(qq[,1L],ncol=2L),matrix(hinv(qq[,2]),ncol=2L))
}
然后导致norm.inter
函数,它似乎是创建用于提取百分位数的向量的函数。在同一个Github脚本中查找此函数,请发送电子邮件至:
正常分位数刻度上的插值。对于非整数 订单统计此函数在周围进行插值 使用正常分位数标度来排序统计数据。见等式 Davison和Hinkley的5.8(1997)
所以它似乎是使用正态分布的插值来解释为什么它与你的完全经验解决方案不同。
答案 1 :(得分:0)
我经常使用的基本Boostrap的标准间隔是:
<LinearLayout>
<RadioGroup/>
<EditText/>
</LinearLayout>
您也可以使用以下给出的常规引导时间间隔:
est <- est.from.bootstrap
basic.bs <- c(2*est-quantile(bootstrap.vector, prob=0.975), 2*est -
quantile(bootstrap.vector, prob=0.025)
但是,您也可以只使用普通的百分位数方法:
est <- est.from.bootstrap
bs.interval <-c(est + sd(bootstrap.vector)*qnorm(0.025), est +
sd(bootstrap.vector)*qnorm(0.975)