0

我有一个数据框,想使用引导函数在每一列中应用一个函数。我还想使用 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 参考的其他问题或评论的指导将不胜感激;任何关于如何返回置信区间的指导也将不胜感激。

4

1 回答 1

4

也许更像这样:

sample.mean<-function(data,x){
    mean(data[x])
}

boot_obj <- lapply(df,boot,statistic = sample.mean,R = 200)
lapply(boot_obj,boot.ci)
于 2013-04-29T16:39:06.963 回答