【问题标题】:Bootstrapping confidence intervals and mean values for Log Response Ratio自举置信区间和对数响应比的平均值
【发布时间】:2012-10-14 17:40:21
【问题描述】:

我正在尝试引导 95% 的 CI 和测量平均值,以检查治疗的效果大小。我想使用的方法称为 LnRR 或对数响应比(123)。它由Log(Response to treatment / Response to control) 简单计算。如果 95% 的 CI 不与 0 重叠,则有超过 95% 的概率自然产生效果。负 LnRR 意味着治疗有负面影响。

引导包中的引导功能有点令人困惑,我正在努力计算 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])

我显然做错了什么。如何为此类函数引导置信区间 (boot.ci)?我确定答案是here,但由于某种原因,我就是不明白该怎么做。

【问题讨论】:

    标签: r statistics-bootstrap


    【解决方案1】:

    我同意boot 语法起初有点令人困惑。问题是您需要编写一个函数来获取您的数据和一个包含子样本索引的向量 i。让我们明确地重写您的函数以使其更清晰:

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

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

    b <- boot(dat, yourFun, R=999)
    plot(b) #always worth looking at
    
    #Calculate ci's
    boot.ci(b)
    

    【讨论】:

    • 感谢您的出色回答。我看到我在函数中犯了一个错误。它应该是log(xSub[, 1]/xSub[ ,2]),而不是log(xSub[, 1])/log(xSub[ ,2])。我无法在您的帖子中解决此问题,因为它只有几个字符。请修复它,以免人们感到困惑。
    猜你喜欢
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多