рассчитать пороговое значение максимальной чувствительности по сравнению со специфичностью с использованием ROCR

Я пытаюсь рассчитать предельную точку максимальной чувствительности и специфичности. Я использую пакет ROCR, и мне удалось построить график зависимости чувствительности от специфичности. Однако я не знаю, как рассчитать предельную точку максимальной чувствительности по сравнению со специфичностью. В идеале я хотел бы иметь метку на графике, показывающую отсечение и координаты в точке. Но любое предложение по решению этого вопроса будет высоко оценено.

pred <- prediction( ROCR.simple$hello, ROCR.simple$labels)
ss <- performance(pred, "sens", "spec")
plot(ss)

person Rita A. Singer    schedule 23.08.2015    source источник
comment
не могли бы вы уточнить, что вы подразумеваете под точкой отсечения, когда максимальная чувствительность и специфичность... на кривой ROC максимальная чувствительность = максимальная специфичность = 1,0   -  person JHowIX    schedule 24.08.2015
comment
Вы запускали код в своем примере? AFAICT, в ROCR.simple нет элемента hello.   -  person jlhoward    schedule 24.08.2015
comment
@JHowIX Я думаю, вы говорите о чувствительности и 1-специфичности (также известном как истинно положительный показатель по сравнению с ложноположительным показателем). Если вы достигнете чувствительности и специфичности 1, у вас будет идеальная модель прогнозирования.   -  person josliber♦    schedule 24.08.2015


Ответы (1)


«Максимальная чувствительность против специфичности» не очень точна, потому что вы торгуете этими величинами в каждой точке кривой 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
comment
Многие благодарят Джозильбера. Я думаю, что лучшим способом визуализировать это будет график зависимости чувствительности от специфичности в различных точках отсечки (ось x), где пересечение чувствительности и специфичности находится в оптимальной точке отсечки. Любое предложение о том, как построить это. Но я не уверен, как это построить. Другой вариант может состоять в том, чтобы выделить на графике координату, которая максимизирует чувствительность + специфичность. - person Rita A. Singer; 29.08.2015
comment
@RitaA.Singer, вы можете получить доступ к специфичности с помощью [email protected][[1]], к чувствительности с помощью [email protected][[1]] и к отсечению с помощью [email protected][[1]], поэтому создание такого графика (или любого другого варианта) будет простым. - person josliber♦; 30.08.2015
comment
Спасибо, Джозильбер. Раньше я был немного сбит с толку. Сейчас я сделал работу. - person Rita A. Singer; 30.08.2015