R'de auc (eğrinin altındaki alan) nasıl hesaplanır


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ığı. Buna aynı zamanda “gerçek pozitif oran” da denir.
  • Özgüllük: Sonuç gerçekten negatif olduğunda modelin bir gözlem için negatif bir sonuç öngörme olasılığı. Buna aynı zamanda “gerçek negatif oran” da denir.

Bu iki ölçümü görselleştirmenin bir yolu, “alıcı çalışma karakteristiği” eğrisi anlamına gelen bir ROC eğrisi oluşturmaktır.

Bu, y ekseni boyunca duyarlılığı ve x ekseni boyunca (1 – özgüllüğü) görüntüleyen bir grafiktir. Lojistik regresyon modelinin verileri sınıflandırmadaki etkinliğini ölçmenin bir yolu, “eğrinin altındaki alan” anlamına gelen AUC’yi hesaplamaktır.

AUC 1’e ne kadar yakınsa model o kadar iyidir.

Aşağıdaki adım adım örnek, R’deki bir lojistik regresyon modeli için AUC’nin nasıl hesaplanacağını gösterir.

1. Adım: Verileri yükleyin

İlk olarak, çeşitli kişilerin bir kredide temerrüde düşüp düşmediğine ilişkin bilgileri içeren ISLR paketinden varsayılan veri kümesini yükleyeceğiz.

 #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

Adım 2: Lojistik regresyon modelini yerleştirin

Daha sonra, bir bireyin temerrüde düşme olasılığını tahmin etmek için bir lojistik regresyon modeli uygulayacağız:

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

Adım 3: Model AUC’sini Hesaplayın

Daha sonra, modelin AUC’sini hesaplamak için pROC paketindeki auc() fonksiyonunu kullanacağız. Bu işlev aşağıdaki sözdizimini kullanır:

hiçbiri(yanıt, tahmin edilen)

Örneğimizde bu fonksiyonun nasıl kullanılacağı aşağıda açıklanmıştır:

 #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

Modelin AUC’si 0,9437 olarak çıkıyor.

Bu değerin 1’e yakın olması, modelin, bir bireyin kredisini ödeyememe durumunu tahmin etme konusunda çok iyi bir iş çıkardığını gösterir.

Yorum ekle

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