Специфичность / чувствительность по сравнению с точками среза с использованием пакета pROC - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно построить следующий график, чтобы я мог выбрать оптимальный порог для модели логистической регрессии.

Plot of Sensitivity and Specificity as a function of the Cutoff

Однако я не могу использоватьпакеты (epi и roc), которые используются во многих исследованиях, которые я провел.У меня есть пакет PROC.Есть ли в любом случае для построения графика с помощью этого пакета.Также, как еще я могу выбрать оптимальный порог?Как это работает, используя только кривую ROC?

1 Ответ

0 голосов
/ 20 декабря 2018

Если вы используете пакет pROC, первым шагом является извлечение координат кривой.Например:

library(pROC)
data(aSAH)
myroc <- roc(aSAH$outcome, aSAH$ndka)
mycoords <- coords(myroc, "all")

Когда у вас есть это, вы можете построить что угодно.Это должно быть несколько похоже на ваш пример.

plot(mycoords["threshold",], mycoords["specificity",], type="l", 
     col="red", xlab="Cutoff", ylab="Performance")
lines(mycoords["threshold",], mycoords["sensitivity",], type="l", 
      col="blue")
legend(100, 0.4, c("Specificity", "Sensitivity"), 
       col=c("red", "blue"), lty=1)

Выбор «оптимальной» точки резки так же сложен, как и определение оптимального в первую очередь.Это сильно зависит от контекста и вашего приложения.Распространенным способом является использование индекса Юдена, который является просто точкой с отсечкой с максимумом (специфичность + чувствительность).Снова с помощью pROC:

best.coords <- coords(myroc, "best", best.method="youden")
abline(v=best.coords["threshold"], lty=2, col="grey")
abline(h=best.coords["specificity"], lty=2, col="red")
abline(h=best.coords["sensitivity"], lty=2, col="blue")

С помощью pROC вы можете изменить критерии для «наилучшего» порога.См. Справочную страницу ?ordins и аргументы best.method и best.weights для быстрых способов ее настройки.Возможно, вы захотите взглянуть на пакет OptimalCutpoints , чтобы найти более продвинутые способы выбора собственного оптимума.

Выходной график должен выглядеть примерно так:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...