Пакет pROC R с настроенными значениями отсечки?
Могу ли я использовать некоторые предварительно заданные значения отсечения (пороги) для построения кривой ROC с pROC
пакет? Например, могу ли я ввести контрольные значения / значения случая и свои собственные пороговые точки, где рассчитать соответствующую чувствительность и специфичность?
2 ответа
Посмотри на ?plot.roc
,
Допустим, у вас есть:
my.cutoff <- 0.6
Тогда вы можете сделать:
library(pROC)
data(aSAH)
plot.roc(aSAH$outcome, aSAH$s100b, print.thres = my.cutoff)
Чтобы обратиться к вашим комментариям в моем другом ответе (но не ответить на ваш вопрос, на который невозможно ответить, как я прокомментировал выше), я могу дать вам способ сделать то, что вы, кажется, хотите. Пожалуйста, ни при каких обстоятельствах не называйте это кривой ROC: это не так! Пожалуйста, придумайте описательное имя самостоятельно, в зависимости от цели этого упражнения (которое вы никогда не объясняли).
Вы можете сделать то, что вы хотите косвенно с pROC
: Вы вычисляете ROC для всех порогов, извлекаете нужные координаты: и используете функцию трапеции для завершения.
library(pROC)
data(aSAH)
my.cutoff <- c(0.6, 1, 1.5, 1.8)
roc.obj <- roc(aSAH$outcome, aSAH$s100b)
like.coordinates <- coords(roc.obj, c(-Inf, sort(my.cutoff), Inf), input="threshold", ret=c("specificity", "sensitivity"))
Теперь вы можете представить результаты в виде:
plot(like.coordinates["specificity",], like.coordinates["sensitivity",], xlim=c(1, 0), type="l")
И вычислить AUC
например, с trapz
функция в пакете caTools
:
library(caTools)
trapz(like.coordinates["specificity",], like.coordinates["sensitivity",])
Еще раз, вы НЕ построили кривую ROC, и рассчитанный вами AUC НЕ является кривой ROC.