我使用一个函数来引导两个变量(一个已经在" 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 ^
的对象的方法答案 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的对象的方式。