2014-04-17 10 views
6

Vorrei ottenere il punto di interruzione ottimale del ROC nella regressione logistica come un numero e non come due curve di attraversamento. Usando il codice qui sotto posso ottenere il grafico che mostrerà il punto ottimale ma in alcuni casi ho solo bisogno del punto come numero che posso usare per altri calcoli. Qui sono le linee di codice:Come posso ottenere Il punto di taglio ottimale del ROC nella regressione logistica come un numero

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

Grazie

+0

penso che dovrete giocare con il ritornato valori da 'ROC' per creare un'equazione/formula che rappresenta' curve1 - curve2'. Quindi usa 'uniroot' per trovare il punto zero. Non ho familiarità con questo pacchetto, quindi potrebbero esserci modi più semplici all'interno del pacchetto 'Epi'. –

risposta

10

Secondo documentazione del punto di taglio ottimale è definito come il punto in cui Sensibilità Specificità + è massima (vedi MX argomento ?ROC). È possibile ottenere i valori di base come segue (vedi esempio 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] 

Questo è il punto che verrà mostrato quando si esegue

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

Grazie adibender .. – mql4beginner

+0

prego! – adibender

Problemi correlati