Пакет 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.

Другие вопросы по тегам