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.

Tambahkan komentar

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