Как я могу получить оптимальную точку отсечки ROC в логистической регрессии в виде числа

Я хотел бы получить оптимальную точку отсечки ROC в логистической регрессии в виде числа, а не в виде двух пересекающихся кривых. Используя приведенный ниже код, я могу получить график, показывающий оптимальную точку, но в некоторых случаях мне просто нужна точка как число, которое я могу использовать для других расчетов. Вот строки кода:

library(Epi)
ROC( form = IsVIP ~ var1+var2+var3+var4+var5, plot="sp", data=vip_data ) 

Спасибо


r roc
person mql4beginner    schedule 17.04.2014    source источник
comment
Я думаю, вам придется поиграть с возвращаемыми значениями из ROC, чтобы создать уравнение/формулу, представляющую curve1 - curve2 . Затем используйте uniroot, чтобы найти нулевую точку. Я не знаком с этим пакетом, поэтому в пакете Epi могут быть более простые способы.   -  person Carl Witthoft    schedule 17.04.2014


Ответы (1)


Согласно документации оптимальная точка отсечки определяется как точка, в которой чувствительность + специфичность максимальна (см. аргумент MX в ?ROC). Вы можете получить соответствующие значения следующим образом (см. пример в ?ROC):

x <- rnorm(100)
z <- rnorm(100)
w <- rnorm(100)
tigol <- function(x) 1 - (1 + exp(x))^(-1)
y <- rbinom(100, 1, tigol(0.3 + 3*x + 5*z + 7*w))
rc <- ROC(form = y ~ x + z, plot="sp") 
## optimal combination
opt <- which.max(rowSums(rc$res[, c("sens", "spec")]))
## optimal cut-off point 
rc$res$lr.eta[opt]

Это точка, которая будет отображаться при запуске

ROC(form = y ~ x + z, plot = "ROC", MX = TRUE)
person adibender    schedule 17.04.2014