Come calcolare l'auc (area sotto la curva) in r


La regressione logistica è un metodo statistico che utilizziamo per adattare un modello di regressione quando la variabile di risposta è binaria. Per valutare quanto bene un modello di regressione logistica si adatta a un set di dati, possiamo esaminare i due parametri seguenti:

  • Sensibilità: probabilità che il modello preveda un risultato positivo per un’osservazione quando il risultato è effettivamente positivo. Questo è anche chiamato il “vero tasso positivo”.
  • Specificità: la probabilità che il modello preveda un risultato negativo per un’osservazione quando il risultato è effettivamente negativo. Questo è anche chiamato “vero tasso negativo”.

Un modo per visualizzare queste due misurazioni è creare una curva ROC , che sta per curva “caratteristica operativa del ricevitore”.

Questo è un grafico che mostra la sensibilità lungo l’asse y e (1 – specificità) lungo l’asse x. Un modo per quantificare l’efficacia del modello di regressione logistica nella classificazione dei dati è calcolare l’AUC , che sta per “area sotto la curva”.

Più l’AUC è vicino a 1, migliore è il modello.

Il seguente esempio passo passo mostra come calcolare l’AUC per un modello di regressione logistica in R.

Passaggio 1: caricare i dati

Innanzitutto, caricheremo il set di dati predefinito dal pacchetto ISLR , che contiene informazioni sull’eventuale inadempienza di varie persone su un prestito.

 #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

Passaggio 2: adattare il modello di regressione logistica

Successivamente, adatteremo un modello di regressione logistica per prevedere la probabilità che un individuo vada in default:

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

Passaggio 3: calcolare l’AUC del modello

Successivamente utilizzeremo la funzione auc() del pacchetto pROC per calcolare l’AUC del modello. Questa funzione utilizza la seguente sintassi:

nessuno(risposta, prevista)

Ecco come utilizzare questa funzione nel nostro esempio:

 #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

L’AUC del modello risulta essere 0,9437 .

Poiché questo valore è vicino a 1, ciò indica che il modello sta facendo un ottimo lavoro nel prevedere se un individuo andrà in default o meno sul proprio prestito.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *