如何在r中为加权ROC曲线下面积创建置信区间?

5
我手头有一个向量,其中包含不同研究的ROC曲线下面积,例如:
a <- c(.91, .85, .76, .89)
我还有每个研究参与者的绝对数量,例如:
n <- c(50, 34, 26, 47)
我使用weighted.mean函数计算了这些面积的加权平均值:
weighted.mean(a, n)
但是,基于我手头的信息,有没有一种方法在R中计算加权平均数的95%置信区间?我查看了pROC,但据我所知,那里需要每个ROC曲线的原始数据(我没有)。非常感谢您的任何建议!
1个回答

8
weighted.ttest.ci <- function(x, weights, conf.level = 0.95) {
    require(Hmisc)
    nx <- length(x)
    df <- nx - 1
    vx <- wtd.var(x, weights, normwt = TRUE) ## From Hmisc
    mx <- weighted.mean(x, weights)
    stderr <- sqrt(vx/nx)
    tstat <- mx/stderr ## not mx - mu
    alpha <- 1 - conf.level
    cint <- qt(1 - alpha/2, df)
    cint <- tstat + c(-cint, cint)
    cint * stderr
}

> weighted.ttest.ci(a,n)
[1] 0.7696 0.9627

1
这确实提供了加权t检验,但并未解决对加权AUC的请求。这并不意味着加权AUC听起来真的是个好主意……对我来说,它实际上听起来像是个可怕的主意。 - IRTFM
@42 是计算不同ROC曲线下面积加权平均值的CI(使用一个最初为t.test编写但与我使用的weights包加权平均值相同的函数),按照OP指定的方式进行加权。 - Hack-R
我不知道ROC曲线,但是我使用了函数从加权数据中获取样本均值的置信区间,在weighted.mean命令中添加了na.rm=T后它非常有效。 - fmerhout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接