问题:
我以为 AUC 是针对分类问题的,我错了吗?
你没看错。无法像您的示例中那样为两个数字向量计算接收器操作特征曲线下的面积。它用于确定您的二元分类器与黄金标准二元分类器的对比情况。您需要一个案例与控件的向量,或 a 向量的级别,将每个值归入两个类别之一。
下面是一个使用pROC 包执行此操作的示例:
library(pROC)
# actual value
a <- c(26.77814,29.34224,10.39203,29.66659,20.79306,20.73860,22.71488,29.93678,10.14384,32.63233,24.82544,38.14778,25.12343,23.07767,14.60789)
# predicted value
p <- c(27.238142,27.492240,13.542026,32.266587,20.473063,20.508603,21.414882,28.536775,18.313844,32.082333,24.545438,30.877776,25.703430,22.397666,15.627892)
df <- data.frame(a = a, p = p)
# order the data frame according to the actual values
odf <- df[order(df$a),]
# convert the actual values to an ordered binary classification
odf$a <- odf$a > 12 # arbitrarily decided to use 12 as the threshold
# construct the roc object
roc_obj <- roc(odf$a, odf$p)
auc(roc_obj)
# Area under the curve: 0.9615
在这里,我们任意决定黄金标准 (a) 的阈值是 12。如果是这种情况,那么低于 12 的观察值就是对照。预测 (p) 的分类非常好,AUC 为 0.9615。我们不必决定预测分类器的阈值来确定 AUC,因为它独立于阈值决定。我们可以上下滑动,具体取决于查找案例更重要还是不对控件进行错误分类更重要。
重要提示
我完全弥补了黄金标准分类器的门槛。如果您选择不同的阈值(黄金标准),您将获得不同的 AUC。例如,如果我们选择 28,则 AUC 将为 1。AUC 独立于预测变量的阈值,但绝对取决于黄金标准的阈值。
编辑
为了澄清上述显然被误解的注释,您没有弄错。这种分析是针对分类问题的。如果没有更多信息,您无法在此处使用它。为了做到这一点,你需要一个你没有的a 向量的阈值。您不能编造一个并期望获得 AUC 的非编造结果。因为 AUC 取决于黄金标准分类器的阈值,所以如果你只是弥补阈值,就像我们在上面的练习中所做的那样,你也只是在弥补 AUC。