Jak obliczyć auc (pole pod krzywą) w r


Regresja logistyczna to metoda statystyczna, której używamy do dopasowania modelu regresji, gdy zmienna odpowiedzi jest binarna. Aby ocenić, jak dobrze model regresji logistycznej pasuje do zbioru danych, możemy przyjrzeć się następującym dwóm metrykom:

  • Czułość: prawdopodobieństwo, że model przewiduje pozytywny wynik obserwacji, gdy wynik jest rzeczywiście pozytywny. Nazywa się to również „prawdziwie dodatnią stopą procentową”.
  • Specyficzność: prawdopodobieństwo, że model przewiduje negatywny wynik obserwacji, gdy wynik jest faktycznie negatywny. Nazywa się to również „prawdziwie ujemną stopą”.

Jednym ze sposobów wizualizacji tych dwóch pomiarów jest utworzenie krzywej ROC , która oznacza krzywą „charakterystyki działania odbiornika”.

Jest to wykres przedstawiający czułość wzdłuż osi y i (1 – swoistość) wzdłuż osi x. Jednym ze sposobów ilościowego określenia skuteczności modelu regresji logistycznej w klasyfikacji danych jest obliczenie AUC , co oznacza „obszar pod krzywą”.

Im AUC jest bliższe 1, tym lepszy model.

Poniższy przykład pokazuje krok po kroku, jak obliczyć AUC dla modelu regresji logistycznej w R.

Krok 1: Załaduj dane

Najpierw załadujemy domyślny zestaw danych z pakietu ISLR , który zawiera informacje o tym, czy różne osoby nie spłaciły pożyczki.

 #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

Krok 2: Dopasuj model regresji logistycznej

Następnie dopasujemy model regresji logistycznej, aby przewidzieć prawdopodobieństwo niewypłacalności danej osoby:

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

Krok 3: Oblicz model AUC

Następnie użyjemy funkcji auc() z pakietu pROC do obliczenia AUC modelu. Ta funkcja używa następującej składni:

brak(odpowiedź, przewidywana)

Oto jak użyć tej funkcji w naszym przykładzie:

 #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

Okazuje się, że AUC modelu wynosi 0,9437 .

Ponieważ wartość ta jest bliska 1, oznacza to, że model bardzo dobrze radzi sobie z przewidywaniem, czy dana osoba nie spłaci pożyczki.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *