Cara merencanakan kurva roc menggunakan ggplot2 (dengan contoh)


Regresi logistik adalah metode statistik yang kami gunakan untuk menyesuaikan model regresi jika variabel responsnya biner. Untuk mengevaluasi seberapa cocok model regresi logistik dengan kumpulan data, kita dapat melihat dua metrik berikut:

  • Sensitivitas: probabilitas model memprediksi hasil positif untuk suatu observasi padahal hasilnya benar-benar positif.
  • Kekhususan: probabilitas model memprediksi hasil negatif untuk suatu observasi padahal hasilnya sebenarnya negatif.

Cara sederhana untuk memvisualisasikan kedua metrik ini adalah dengan membuat kurva ROC , yaitu grafik yang menampilkan sensitivitas dan spesifisitas model regresi logistik.

Tutorial ini menjelaskan cara membuat dan menafsirkan kurva ROC di R menggunakan paket visualisasi ggplot2.

Contoh: Kurva ROC menggunakan ggplot2

Misalkan kita memasukkan model regresi logistik berikut ke R:

 #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 ")

Untuk memvisualisasikan performa model regresi logistik pada set pengujian, kita dapat membuat plot ROC menggunakan fungsi ggroc() dari paket pROC :

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

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

#create ROC plot
ggroc(rocobj) 

Kurva ROC di ggplot2

Sumbu y menampilkan sensitivitas (tingkat positif sebenarnya) model dan sumbu x menampilkan spesifisitas (tingkat negatif sebenarnya) model.

Perhatikan bahwa kita dapat menambahkan gaya pada plot dan juga memberikan judul yang berisi AUC (area di bawah kurva) plot:

 #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, ' ) ')) 

Kurva ROC dengan AUC di ggplot2

Perhatikan bahwa Anda juga dapat mengubah tema plot:

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

Kurva ROC di R menggunakan ggplot2

Lihatartikel ini untuk panduan tema ggplot2 terbaik.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *