2014-04-17 11 views
6

Ich möchte den optimalen Abschneidepunkt der ROC in der logistischen Regression als eine Zahl und nicht als zwei Kreuzung Kurven erhalten. Mit dem unten stehenden Code kann ich das Diagramm erhalten, das den optimalen Punkt zeigt, aber in einigen Fällen brauche ich nur den Punkt als eine Zahl, die ich für andere Berechnungen verwenden kann. Hier sind die Codezeilen:Wie kann ich den optimalen Cut-off-Punkt der ROC in der logistischen Regression als eine Zahl

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

Dank

+0

betreibe ich denke, Sie werden mit dem zurück spielen Werte von 'ROC', um eine Gleichung/Formel zu erzeugen, die' curve1 - curve2' darstellt. Dann benutze 'uniroot', um den Nullpunkt zu finden. Ich kenne dieses Paket nicht, daher gibt es vielleicht einfachere Wege innerhalb des 'Epi'-Pakets. –

Antwort

10

Gemäß Dokumentation der optimale Cut-off-Punkt als der Punkt definiert, wo Empfindlichkeit + Spezifität maximal ist (MX Argument in ?ROC sehen). Sie können die entsprechenden Werte erhalten wie folgt (siehe Beispiel in ?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] 

Dies ist der Punkt, der angezeigt wird, wenn Sie

ROC(form = y ~ x + z, plot = "ROC", MX = TRUE) 
+0

Danke adibender .. – mql4beginner

+0

Gern geschehen! – adibender

Verwandte Themen