引导置信区间和对数响应比的平均值

Mik*_*kko 4 bootstrapping r

我试图引导95%CI和测量值的平均值,以检查治疗的效果大小.我想使用的方法被称为LnRR或对数响应比(1,2,3).它的计算方法很简单Log(Response to treatment / Response to control).如果95%CI与0不重叠,则效果自然超过95%.负LnRR意味着治疗具有负面影响.

启动包中的bootstrapping功能有点令人困惑,我正在努力计算95%的CI和平均值.我试过以下:

library(boot)
set.seed(2)
dat <- data.frame(treatment = rnorm(10, 1.2, 0.4), control = rnorm(10, 1.5, 0.3))

boot(dat, function(x) log(x[,1]/x[,2]), R = 999) # Because LnRR = log(dat[,1]/dat[,2])
Run Code Online (Sandbox Code Playgroud)

我显然做错了什么.如何为这种类型的函数引导置信区间(boot.ci)?我确信答案就在这里,但出于某种原因,我无法理解如何做到这一点.

Dre*_*een 7

我一致认为bootsynatax有点令人困惑.问题是你需要编写一个既包含数据的函数,又包含一个包含子样本索引的向量i.让我们明确地重写你的函数,使它更清晰:

yourFun <- function(x, i) {
  xSub <- x[i, ] #resample x
  LnRR <- log(xSub[, 1])/xSub[ ,2]
  return(mean(LnRR))
}
Run Code Online (Sandbox Code Playgroud)

然后以与您相同的方式或多或少地调用boot:

b <- boot(dat, yourFun, R=999)
plot(b) #always worth looking at

#Calculate ci's
boot.ci(b)
Run Code Online (Sandbox Code Playgroud)