了解如何在R中使用“apply”和“boot”和“boot.ci”

时间:2013-04-29 16:09:08

标签: r boot apply

我有一个数据框,并希望使用启动功能在每列中应用一个函数。我还想使用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参考的其他问题或评论的任何指示将不胜感激;关于如何回报置信区间的任何指导也将受到赞赏。

1 个答案:

答案 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)