Cara menghitung auc (area di bawah kurva) di r
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. Ini juga disebut “tingkat positif sebenarnya”.
- Kekhususan: probabilitas model memprediksi hasil negatif untuk suatu observasi padahal hasilnya sebenarnya negatif. Ini juga disebut “tingkat negatif sebenarnya”.
Salah satu cara untuk memvisualisasikan kedua pengukuran ini adalah dengan membuat kurva ROC , yang merupakan singkatan dari kurva “karakteristik pengoperasian penerima”.
Ini adalah grafik yang menampilkan sensitivitas sepanjang sumbu y dan (1 – spesifisitas) sepanjang sumbu x. Salah satu cara untuk mengukur efektivitas model regresi logistik dalam mengklasifikasikan data adalah dengan menghitung AUC , yang merupakan singkatan dari “area di bawah kurva”.
Semakin dekat AUC ke 1, maka semakin baik model tersebut.
Contoh langkah demi langkah berikut menunjukkan cara menghitung AUC untuk model regresi logistik di R.
Langkah 1: Muat data
Pertama, kita akan memuat dataset default dari paket ISLR , yang berisi informasi tentang apakah beberapa orang telah gagal membayar pinjamannya atau tidak.
#load dataset data <- ISLR::Default #view first six rows of dataset head(data) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
Langkah 2: Sesuaikan model regresi logistik
Selanjutnya, kami akan menyesuaikan model regresi logistik untuk memprediksi kemungkinan seseorang akan gagal bayar:
#make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set 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 model <- glm(default~student+balance+income, family=" binomial ", data=train)
Langkah 3: Hitung Model AUC
Selanjutnya, kita akan menggunakan fungsi auc() dari paket pROC untuk menghitung AUC model. Fungsi ini menggunakan sintaks berikut:
tidak ada (respon, prediksi)
Berikut cara menggunakan fungsi ini dalam contoh kita:
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type=" response ") #calculate AUC library (pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < boxes Area under the curve: 0.9437
AUC model tersebut ternyata 0,9437 .
Karena nilai ini mendekati 1, hal ini menunjukkan bahwa model tersebut mampu memprediksi dengan baik apakah seseorang akan gagal membayar pinjamannya atau tidak.