Estoy realizando la regresión logística utilizando este página. Mi código es el siguiente.

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mylogit <- glm(admit ~ gre, data = mydata, family = "binomial")
summary(mylogit)
prob=predict(mylogit,type=c("response"))
mydata$prob=prob

Después de ejecutar este código mydata dataframe tiene dos columnas – ‘admitir’ y ‘problemas’.
No debería esas dos columnas suficiente para obtener la curva ROC?

¿Cómo puedo obtener la curva ROC.

En segundo lugar, por loooking en mydata, parece que el modelo es predecir la probabilidad de admit=1.

¿Es correcto?

Cómo averiguar qué evento en particular, el modelo predice?

Gracias

ACTUALIZACIÓN:
Parece que por debajo de los tres comandos son muy útiles. Ellos proporcionan la corte que tendrá la máxima precisión y, a continuación, ayuda para obtener la curva ROC.

coords(g, "best")

mydata$prediction=ifelse(prob>=0.3126844,1,0)

confusionMatrix(mydata$prediction,mydata$admit
¿No sería muy simple para probar su incertidumbre acerca de lo que se predice con un pequeño conjunto de datos? O mira los resultados de with(mydata, table(admit,gre))? La regresión logística es sólo la estimación de más de un montón de tablas.)
sí…podemos hacer de esa manera..y he seguido el mismo método para llegar a la conclusión de que el caso actual es la predicción de admitir=1..pero pensaba que R va a tener algún atajo que confirmar mi pensamiento. Cualquier comentario en encontrar el umbral que le dará la máxima precisión de la roc objeto?
con respecto a «Cualquier comentario en encontrar el umbral que le dará la máxima precisión de la roc objeto? «: creo que la respuesta es coords(g, «la mejor»)…

OriginalEl autor user2543622 | 2013-08-26

3 Comentarios

  1. 27

    La curva ROC se compara el rango de predicción y respuesta. Por lo tanto, usted puede evaluar la curva ROC con el paquete pROC como sigue:

    mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
    mylogit <- glm(admit ~ gre, data = mydata, family = "binomial")
    summary(mylogit)
    prob=predict(mylogit,type=c("response"))
    mydata$prob=prob
    library(pROC)
    g <- roc(admit ~ prob, data = mydata)
    plot(g)    
    que tiene sentido. Si es posible por favor responda «en Segundo lugar, por loooking en mydata, parece que el modelo es predecir la probabilidad de admitir=1. es eso correcto? cómo averiguar qué evento en particular, el modelo predice?». Me miré en el roc objeto y entender que g$sensibilidades y g$especificidades que me va a dar valores específicos, pero si quiero averiguar el umbral que le dará la máxima precisión, a continuación, puedo conseguir que el número de roc objeto?
    el «admitir» la variable es la predicción de la clase o de una clase en particular?
    La URL para obtener los datos que ahora parece estar fuera de fecha. Para cualquier persona interesada en la reproducción de este ejemplo, lo que parece funcionar ahora es mydata <- leer.csv(«stats.idre.ucla.edu/stat/data/binary.csv») (usando https:// antepone tho’ que no quiere aparecer en el comentario)

    OriginalEl autor wush978

  2. 8

    otra forma de graficar la Curva ROC…

    library(Deducer)
    modelfit <- glm(formula=admit ~ gre + gpa, family=binomial(), data=mydata, na.action=na.omit)
    rocplot(modelfit)
    Necesitarás Java instalado para que esto o usted conseguirá un error, sólo para tu INFORMACIÓN. Error: .onLoad failed in loadNamespace() for 'rJava', details: call: fun(libname, pkgname) error: JAVA_HOME cannot be determined from the Registry

    OriginalEl autor Manoj Kumar

  3. 2
    #Another way to plot ROC
    
    mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")   
    mylogit <- glm(admit ~ gre, data = mydata, family = "binomial")    
    summary(mylogit)     
    prob=predict(mylogit,type=c("response"))    
    library("ROCR")    
    pred <- prediction(prob, mydata$admit)    
    perf <- performance(pred, measure = "tpr", x.measure = "fpr")     
    plot(perf, col=rainbow(7), main="ROC curve Admissions", xlab="Specificity", 
         ylab="Sensitivity")    
    abline(0, 1) #add a 45 degree line
    Se puede añadir alguna explicación a su respuesta?
    Las AUC se puede calcular como auc = performance(pred, "auc")
    Gracias por tu comentario! la pregunta del título es de las AUC y en su lugar todo el mundo está hablando acerca de ROC. Son conceptos relacionados, pero no el mismo.

    OriginalEl autor Conny

Dejar respuesta

Please enter your comment!
Please enter your name here