【问题标题】:Adding arbitrary curve with AUC 0.8 to ROC plot将 AUC 0.8 的任意曲线添加到 ROC 图
【发布时间】:2015-06-23 14:58:40
【问题描述】:

我有一个使用 pROC 包创建的简单 ROC 图:

plot.roc(response, predictor)

正如预期的那样,它工作正常,但我想添加一条“理想”形状的参考曲线,其 AUC 为 0.8 以进行比较(我的 ROC 图的 AUC 为 0.66)。

有什么想法吗?

澄清一下,我并不是要平滑我的 ROC 图,而是尝试添加代表 AUC 0.8 的参考曲线(类似于代表 AUC 0.5 的参考对角线)。

【问题讨论】:

  • 那么一个半径为 1 的(四分之一)圆?

标签: r roc auc


【解决方案1】:

参考对角线具有含义(随机猜测的模型),因此您同样必须定义与 AUC 0.8 参考曲线关联的模型。不同的模型将与不同的参考曲线相关联。

例如,可以定义一个模型,其中预测概率在 0 和 1 之间均匀分布,对于预测概率为 p 的点,对于某个常数 k,真实结果的概率为 p^k。事实证明,对于这个模型,k=2 会产生一个 AUC 为 0.8 的图。

library(pROC)
set.seed(144)
probs <- seq(0, 1, length.out=10000)
truth <- runif(10000)^2 < probs
plot.roc(truth, probs)
# Call:
# plot.roc.default(x = truth, predictor = probs)
# 
# Data: probs in 3326 controls (truth FALSE) < 6674 cases (truth TRUE).
# Area under the curve: 0.7977

一些代数表明,这个特定的模型系列具有 AUC (2+3k)/(2+4k),这意味着它可以根据 k 的值生成 AUC 介于 0.75 和 1 之间的曲线。

您可以使用的另一种方法与逻辑回归相关联。如果你有逻辑回归线性预测函数值 p,也就是你会预测概率 1/(1+exp(-p)),那么如果 p 加上一些正态分布的噪声超过 0,你可以将真实结果标记为真,否则标记真结果为假。如果正态分布噪声的方差为 0,则您的模型的 AUC 为 1,如果正态分布的噪声的方差接近无穷大,则您的模型的 AUC 为 0.5。

如果我假设原始预测是从标准正态分布中得出的,那么看起来标准差为 1.2 的正态分布噪声给出 AUC 0.8(不过我无法为 AUC 找出一个很好的封闭形式):

set.seed(144)
pred.fxn <- rnorm(10000)
truth <- (pred.fxn + rnorm(10000, 0, 1.2)) >= 0
plot.roc(truth, pred.fxn)
# Call:
# plot.roc.default(x = truth, predictor = pred.fxn)
# 
# Data: pred.fxn in 5025 controls (truth FALSE) < 4975 cases (truth TRUE).
# Area under the curve: 0.7987

【讨论】:

  • 它看起来应该是什么样子,除了由于某种原因它不是 100% 平滑的事实。否则这就是我所说的。谢谢。
  • @Oposum 缺乏平滑度可能只是因为它没有使用足够的样本构建。您可能会尝试 100,000 个样本,而不是我在此处发布的 10,000 个。
【解决方案2】:

一种快速/粗略的方法是在您的绘图上添加一个半径为 1 的圆,其 AUC pi/4 = 0.7853982

library(pROC)
library(car)

n <- 100L

x1 <- rnorm(n, 2.0, 0.5)
x2 <- rnorm(n, -1.0, 2)
y <- rbinom(n, 1L, plogis(-0.4 + 0.5 * x1 + 0.1 * x2))

mod <- glm(y ~ x1 + x2, "binomial")
probs <- predict(mod, type = "response")

plot(roc(y, probs))
ellipse(c(0, 0), matrix(c(1,0,0,1), 2, 2), radius = 1, center.pch = FALSE, col = "blue")

【讨论】:

  • Roc 曲线很少(如果有的话)像圆一样圆。我喜欢它的平滑度,但我想象的更像是这个数字gim.unmc.edu/dxtests/roccomp.jpg 介于黄色和粉红色曲线之间的东西。您当然可以看出它们都不是圆圈(尤其是黄色圆圈)。
猜你喜欢
  • 2012-04-15
  • 1970-01-01
  • 2020-05-19
  • 2019-04-11
  • 2018-05-29
  • 2016-08-04
  • 2021-06-04
  • 1970-01-01
  • 2016-05-17
相关资源
最近更新 更多