如果我想使用R的启动包中的boot()函数来计算两个向量之间的Pearson相关系数的重要性,我应该这样做: boot(re1, cor, R = 1000) 其中re1是这两个观测向量的两列矩阵?我似乎无法做到这一点,因
boot(re1, cor, R = 1000)
其中re1是这两个观测向量的两列矩阵?我似乎无法做到这一点,因为这些向量的cor是0.8,但上面的函数将-0.2作为t0返回.
只是为了强调R中引导的一般想法,尽管@caracal已经通过他的评论回答了你的问题.使用引导时,您需要具有可以按行采样的数据结构(通常是矩阵).统计数据的计算通常在接收此数据矩阵的函数中完成,并返回重新采样后计算的感兴趣统计量.然后,调用boot()来处理将此函数应用于R复制并以结构化格式收集结果.可以依次使用boot.ci()评估这些结果.以下是MASS包中低生育婴儿学习的两个实例.
require(MASS) data(birthwt) # compute CIs for correlation between mother's weight and birth weight cor.boot <- function(data, k) cor(data[k,])[1,2] cor.res <- boot(data=with(birthwt, cbind(lwt, bwt)), statistic=cor.boot, R=500) cor.res boot.ci(cor.res, type="bca") # compute CI for a particular regression coefficient, e.g. bwt ~ smoke + ht fm <- bwt ~ smoke + ht reg.boot <- function(formula, data, k) coef(lm(formula, data[k,])) reg.res <- boot(data=birthwt, statistic=reg.boot, R=500, formula=fm) boot.ci(reg.res, type="bca", index=2) # smoke