【发布时间】:2017-02-22 19:45:24
【问题描述】:
我有一个包含 15 个密度计算的数据集,每个都来自不同的样带。我想用替换对这些进行重新采样,从 15 个样带中随机选择 15 个样本,然后获得这些重新采样的平均值。在此过程中,每个样带都应该有自己的被采样概率。这应该做 5000 次。我有一个代码可以在不使用引导功能的情况下执行此操作,但如果我想使用引导包计算 BCa 95% CI,则需要先通过引导功能完成引导。 我一直在尝试创建一个功能,但我无法获得任何似乎有效的功能。我希望引导程序从某个列 (data$xs) 中进行选择,并且要使用的概率在 data$prob 列中。
我认为可能起作用的功能是;
library(boot)
meanfun <- function (data, i){
d<-data [i,]
return (mean (d)) }
bo<-boot (data$xs, statistic=meanfun, R=5000)
#boot.ci (bo, conf=0.95, type="bca") #obviously `bo` was not made
但这告诉我“维数不正确”
我了解如何在正常意义上创建一个函数,但该函数在启动时的工作方式似乎很奇怪。由于该函数仅按名称引导,并且没有指定要传递给函数的参数,因此我似乎仅限于引导本身将作为参数传递的内容(例如,我无法将 data$xs 作为参数传递给数据,并且我无法将 data$prob 作为概率参数传递,依此类推)。它似乎真的限制了可以做的事情。也许我错过了什么?
感谢大家的帮助
【问题讨论】:
-
您应该提供带有示例输入的reproducible example,以便我们也可以运行和测试该功能。使示例尽可能少。这样我们也可以运行代码来看看出了什么问题。