«Максимальная чувствительность против специфичности» не очень точна, потому что вы торгуете этими величинами в каждой точке кривой ROC. Чтобы быть более точным, я предполагаю, что вы пытаетесь максимизировать сумму этих двух значений. Давайте посмотрим на ваш пример, в котором используется ROCR.simple
:
library(ROCR)
data(ROCR.simple)
pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
ss <- performance(pred, "sens", "spec")
plot(ss)
Вы можете определить отсечку, которая обеспечивает наивысшую чувствительность плюс специфичность, с помощью:
[email protected][[1]][which.max([email protected][[1]][email protected][[1]])]
# [1] 0.5014893
max([email protected][[1]][email protected][[1]])
# [1] 1.69993
Наивысшая чувствительность плюс специфичность достигается в этом случае, когда вы предсказываете положительный исход, когда прогнозируемая вероятность превышает 0,501, и прогнозируете отрицательный исход, когда прогнозируемая вероятность не превышает 0,501. Это дает значение чувствительности плюс специфичность 1,7.
Естественно, это можно распространить и на другие функции чувствительности и специфичности, изменив выражение внутри вызова which.max
.
person
josliber♦
schedule
23.08.2015
ROCR.simple
нет элементаhello
. - person jlhoward   schedule 24.08.2015