如何使用预先引导的数据来获得BCa置信区间?

时间:2017-01-22 02:23:43

标签: r confidence-interval

我使用一个函数来引导两个变量(一个已经在" Impala.csv"文件中),该函数重新采样并报告大小为nrow(data)的样本的平均值,重复5000次。代码如下:

data<-read.csv("Impala.csv")
allo<-data$distance

data2<-read.csv("2010 - IM.csv")
pro<-data2$pro
n1<-nrow(data2)
boot4000 <- c()
for(i in 1:5000){
s <- sample(data2$xs,n1,replace=T,prob = data2$pro)
boot4000[i] <- mean(s)
}`

然后在公式中合并两个输出,给我5000个新变量。

d<-(pi/2)*(boot4000*(1/allo))

现在我想为此找到BCa置信区间,但据我所知,启动函数将要求我制作一组新的重采样,但我不希望这一点因为自举完成。我现在想要的只是一个函数,它将按原样引导我的自举数据并确定BCa置信区间。

编辑:http://www.filedropper.com/impala

http://www.filedropper.com/2010-im

以下是我使用的数据文件

另外,我试图创建一个模仿&#39; boot&#39;对象使用以下

den<-as.matrix(d, ncol=1)
outs<-list(t0=mean(d), t=den, R=5000, L=3)
boot.ci(outs, type="bca")

这会吐出错误:

if(as.character(boot.out $ call [1L])==&#34; tsboot&#34;)警告错误(&#34; BCa时间间隔未定义为时间序列引导&#34;)否则输出&lt; - c(输出,:   参数长度为零

由于

更新: 我已经解决了这个问题。

outs<-list(t0=mean(d), t=den, R=5000, sim="ordinary", stype="i", weights=rep(0.0002,5000), statistic=meanfun, data=d, call=boot(data=d, statistic = meanfun,R=5000), strata = rep(1,5000),attr="boot", seed=.Random.seed)

^这就是我创建类boot.out ^

的对象的方法

1 个答案:

答案 0 :(得分:0)

outs <- list(t0=mean(d), t=den, R=5000, sim="ordinary", 
             stype="i", weights=rep(0.0002,5000), statistic=meanfun, 
             data=d, call=boot(data=d, statistic = meanfun,R=5000), 
             strata = rep(1,5000), attr="boot", seed=.Random.seed)

这是使类boot.out的对象的方式。