Cara membuat matriks kebingungan di r (langkah demi langkah)


Regresi logistik adalah jenis regresi yang dapat kita gunakan jika variabel responnya adalah biner.

Cara umum untuk menilai kualitas model regresi logistik adalah dengan membuat matriks konfusi , yaitu tabel berukuran 2 × 2 yang menunjukkan nilai prediksi model versus nilai sebenarnya dari kumpulan data pengujian.

Contoh langkah demi langkah berikut menunjukkan cara membuat matriks konfusi di R.

Langkah 1: Sesuaikan model regresi logistik

Untuk contoh ini, kita akan menggunakan dataset default dari paket ISLR . Kami akan menggunakan status pelajar, saldo bank, dan pendapatan tahunan untuk memprediksi kemungkinan seseorang akan gagal membayar pinjamannya.

Kode berikut menunjukkan cara menyesuaikan model regresi logistik dengan kumpulan data ini:

 #load necessary packages
library (caret)
library (InformationValue)
library (ISLR)

#load dataset
data <-Default

#split dataset into training and testing set
set. seeds (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
model <- glm(default~student+balance+income, family=" binomial ", data=train)

Langkah 2: Buat Matriks Kebingungan

Selanjutnya, kita akan menggunakan fungsi ConfusionMatrix() dari paket caret untuk membuat matriks Confusion:

 #use model to predict probability of default
predicted <- predict(model, test, type="response")

#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default==" Yes ", 1, 0)

#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]

#create confusion matrix
confusionMatrix(test$default, predicted)

     0 1
0 2912 64
1 21 39

Langkah 3: Evaluasi matriks kebingungan

Kami juga dapat menghitung metrik berikut menggunakan matriks konfusi:

  • Sensitivitas: “Tingkat kepositifan sebenarnya” – persentase individu yang diprediksi dengan tepat oleh model akan mengalami gagal bayar.
  • Kekhususan: “tingkat negatif sebenarnya” – persentase individu yang diprediksi dengan tepat oleh model tidak akan gagal bayar.
  • Tingkat kesalahan klasifikasi total: Persentase total kesalahan klasifikasi yang dilakukan oleh model.

Kode berikut menunjukkan cara menghitung metrik ini:

 #calculate sensitivity
sensitivity(test$default, predicted)

[1] 0.3786408

#calculate specificity
specificity(test$default, predicted)

[1] 0.9928401

#calculate total misclassification error rate
misClassError(test$default, predicted, threshold =optimal)

[1] 0.027

Tingkat kesalahan klasifikasi total adalah 2,7% untuk model ini.

Secara umum, semakin rendah angka ini, semakin baik model tersebut dalam memprediksi hasil. Oleh karena itu, model khusus ini terbukti sangat efektif dalam memprediksi apakah seseorang akan gagal bayar atau tidak.

Tambahkan komentar

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