Ggplot2 kullanarak roc eğrisi nasıl çizilir (örneklerle)


Lojistik regresyon, yanıt değişkeni ikili olduğunda bir regresyon modeline uymak için kullandığımız istatistiksel bir yöntemdir. Lojistik regresyon modelinin bir veri kümesine ne kadar iyi uyduğunu değerlendirmek için aşağıdaki iki ölçüme bakabiliriz:

  • Duyarlılık: Sonuç gerçekten olumluyken modelin bir gözlem için olumlu bir sonuç tahmin etme olasılığı.
  • Özgüllük: Sonuç gerçekten negatif olduğunda modelin bir gözlem için negatif bir sonuç öngörme olasılığı.

Bu iki ölçümü görselleştirmenin basit bir yolu, lojistik regresyon modelinin duyarlılığını ve özgüllüğünü gösteren bir grafik olan ROC eğrisi oluşturmaktır.

Bu eğitimde, ggplot2 görselleştirme paketini kullanarak R’de bir ROC eğrisinin nasıl oluşturulacağı ve yorumlanacağı açıklanmaktadır.

Örnek: ggplot2 kullanan ROC eğrisi

R’de aşağıdaki lojistik regresyon modeline uyduğumuzu varsayalım:

 #load Default dataset from ISLR book
data <- ISLR::Default

#divide dataset into training and test set
set.seed(1)
sample <- sample(c( TRUE , FALSE ), nrow (data), replace = TRUE , prob =c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ]

#fit logistic regression model to training set
model <- glm(default~student+balance+income, family=" binomial ", data=train)

#use model to make predictions on test set
predicted <- predict(model, test, type=" response ")

Lojistik regresyon modelinin test kümesindeki performansını görselleştirmek için pROC paketindeki ggroc() işlevini kullanarak bir ROC grafiği oluşturabiliriz:

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot
rocobj <- roc(test$default, predicted)

#create ROC plot
ggroc(rocobj) 

ggplot2'deki ROC eğrisi

Y ekseni modelin duyarlılığını (gerçek pozitif oranı), x ekseni ise modelin özgüllüğünü (gerçek negatif oranı) gösterir.

Grafiğe stil ekleyebileceğimizi ve ayrıca grafiğin AUC’sini (eğri altındaki alan) içeren bir başlık sağlayabileceğimizi unutmayın:

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot and calculate AUC
rocobj <- roc(test$default, predicted)
auc <- round (auc(test$default, predicted), 4 )

#create ROC plot
ggroc(rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) 

ggplot2'de AUC ile ROC eğrisi

Ayrıca olay örgüsünün temasını da değiştirebileceğinizi unutmayın:

 #create ROC plot with minimal theme
ggroc(rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) +
  theme_minimal() 

Ggplot2 kullanarak R'deki ROC eğrisi

En iyi ggplot2 temalarına ilişkin bir kılavuz için bu makaleye bakın.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir