21

このページを使用してロジスティック回帰を実行しています。私のコードは以下の通りです。

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

このコードを実行すると、mydata データフレームには「admit」と「prob」の 2 つの列があります。ROC 曲線を取得するには、これら 2 つの列で十分ではないでしょうか?

ROC 曲線を取得する方法を教えてください。

次に、mydata を見ると、モデルは の確率を予測しているようですadmit=1

あれは正しいですか?

モデルが予測している特定のイベントを見つける方法は?

ありがとう

更新: 以下の 3 つのコマンドは非常に便利なようです。それらは、最大の精度を持つカットオフを提供し、ROC 曲線を取得するのに役立ちます。

coords(g, "best")

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

confusionMatrix(mydata$prediction,mydata$admit
4

3 に答える 3

11

ROC曲線をプロットする別の方法...

library(Deducer)
modelfit <- glm(formula=admit ~ gre + gpa, family=binomial(), data=mydata, na.action=na.omit)
rocplot(modelfit)
于 2014-09-10T13:07:53.293 に答える
3
#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
于 2015-11-24T17:25:09.843 に答える