Pertanyaan Daerah regresi logistik di bawah kurva


Saya melakukan regresi logistik menggunakan ini halaman. Kode saya adalah seperti di bawah ini.

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

Setelah menjalankan kode ini, mydata dataframe memiliki dua kolom - 'akui' dan 'prob'. Bukankah seharusnya dua kolom itu cukup untuk mendapatkan kurva ROC?

Bagaimana saya bisa mendapatkan kurva ROC.

Kedua, dengan melihat-lihat di mydata, tampaknya model memprediksi probabilitas admit=1.

Apakah itu benar?

Bagaimana cara mengetahui peristiwa tertentu yang diprediksi oleh model?

Terima kasih

MEMPERBARUI: Tampaknya di bawah tiga perintah sangat berguna. Mereka menyediakan cut-off yang akan memiliki akurasi maksimum dan kemudian membantu mendapatkan kurva ROC.

coords(g, "best")

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

confusionMatrix(mydata$prediction,mydata$admit

11
2017-08-26 16:49


asal


Jawaban:


Kurva ROC membandingkan pangkat prediksi dan jawaban. Oleh karena itu, Anda dapat mengevaluasi kurva ROC dengan paket pROC sebagai berikut:

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)    

25
2017-08-26 17:00



cara lain untuk memplot ROC Curve ...

library(Deducer)
modelfit <- glm(formula=admit ~ gre + gpa, family=binomial(), data=mydata, na.action=na.omit)
rocplot(modelfit)

7
2017-09-10 13:07



#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

1
2017-11-24 17:25