在我的统计课程中,我们使用Stata,因为我是R用户,我想在R中做同样的事情。我得到了正确的结果,但似乎有点尴尬的方式来获得像信心一样简单的东西间隔。
这是我的原始解决方案:
library(quantreg)
na = round(runif(100, min=127, max=144))
f <- rq(na~1, tau=.5, data=ds)
s <- summary.rq(f, se="boot", R=1000)
coef(s)[1]
coef(s)[1]+ c(-1,1)*1.96*coef(s)[2]
我还在启动程序包中进行了一些实验,但我还没有让它工作:
library(boot)
b <- boot(na, function(w, i){
rand_bootstrap_sample = w[i]
f <- rq(rand_bootstrap_sample~1, tau=.5)
return(coef(f))
}, R=100)
boot.ci(b)
给出错误:
bca.ci中的错误(boot.out,conf,index [1L],L = L,t = t.o,t0 = t0.o ,: 估计调整'a'是NA
我的问题:
答案 0 :(得分:4)
您的示例没有为我提供错误消息(Windows 7/64,R 2.14.2),因此可能是随机种子的问题。因此,如果您使用一些随机方法发布示例,最好添加一行set.seed;见例子。
请注意,错误消息是指boot.ci的bca类型;因为这个经常抱怨,通过明确地给出类型来取消选择它。
我不知道为什么你在bootstrap中使用相当复杂的rq。如果您真的想要描述rq,请忘记下面的简单示例,但请提供更多详细信息。
library(boot)
set.seed(4711)
na = round(runif(100, min=127, max=144))
b <- boot(na, function(w, i) median(w[i]), R=1000)
boot.ci(b,type=c("norm","basic","perc"))