我有一个数据框,并希望使用启动功能在每列中应用一个函数。我还想使用boot.ci获得应用函数的置信区间。我已经能够执行以下简单示例中所示的启动带,但不明白为什么它可以工作:
library(boot)
resample.number<-1000
df <- data.frame(A = 0:10,B = 10:20,C = 20:30)
sample.mean<-function(data,x){
apply(data[x,],2,mean)
}
b<-boot(df,sample.mean,resample.number)
首先,为什么我需要x和[x,]伴随数据输入到我的函数? (我认为通过将我的函数定义为:
可以正常工作sample.mean<-function(data){
apply(data,2,mean)
}
,但这会抛出错误:统计信息出错(数据,原始,...):未使用的参数(原始)。因为我不明白为什么需要x。我在定义我的函数时遇到一些麻烦,以便还返回与每个启动带统计相关的置信区间(即,与每个列平均值相关的置信区间)。也许我对置信区间的麻烦源于我对x的目的的误解?例如,
boot.ci(b)
仅返回一组置信区间。
对于需要x参考的其他问题或评论的任何指示将不胜感激;关于如何回报置信区间的任何指导也将受到赞赏。
答案 0 :(得分:4)
也许更像这样的事情:
sample.mean<-function(data,x){
mean(data[x])
}
boot_obj <- lapply(df,boot,statistic = sample.mean,R = 200)
lapply(boot_obj,boot.ci)