Curve ROC per confrontare modelli di regressione logistica
Le curve ROC possono essere create facilmente con il pacchetto pROC in R. Vediamo se c’è una grande differenza tra le curve ROC dei quattro modelli di regressione logistica usati in questo corso. Una breve anteprima:
predictions_logitcontiene previsioni di probability of default (PD) usando il link logit predefinito e le variabiliage,emp_cat,ir_cateloan_amnt.predictions_probitcontiene previsioni di PD usando il probit e le variabiliage,emp_cat,ir_cateloan_amnt.predictions_cloglogcontiene previsioni di PD usando il link cloglog e le variabiliage,emp_cat,ir_cateloan_amnt.predictions_all_fullcontiene previsioni di PD usando il link logit predefinito e tutte e sette le variabili dell’insieme di dati.
Per prima cosa disegnerai le curve ROC di questi quattro modelli in un unico grafico. Poi analizzerai l’area sotto la curva.
Questo esercizio fa parte del corso
Credit Risk Modeling in R
Istruzioni dell'esercizio
- Carica il pacchetto pROC nella tua console R.
- Costruisci gli oggetti ROC per i quattro modelli di regressione logistica usando la funzione
roc(response, predictor). Ricorda che la response è l’indicatore dello stato del prestito intest_set, ottenibile contest_set$loan_status. - Usa gli oggetti creati per costruire le curve ROC. Per disegnarle tutte in un unico grafico, usa
plot()per la prima curva ROC (perROC_logit) e [lines()](https://www.rdocumentation.org/packages/graphics/functions/lines per aggiungere le curve ROC) degli altri tre modelli allo stesso grafico. - Usa l’argomento
colper cambiare il colore della curva diROC_probitin"blue", diROC_cloglogin"red"e diROC_all_fullin"green". Nota che, a differenza di quanto mostrato nel video, l’etichetta dell’asse x è Specificity e non "1-Specificity", quindi l’asse va da 1 sul lato sinistro a 0 sul lato destro. - Sembra che la funzione di link non abbia un grande impatto sulla ROC in questo caso; l’elemento che migliora maggiormente la ROC è l’inclusione di più variabili nel modello. Per quantificare con precisione le prestazioni delle curve ROC, dai un’occhiata alle AUC usando la funzione auc().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Load the pROC-package
# Construct the objects containing ROC-information
ROC_logit <- roc(test_set$loan_status, predictions_logit)
ROC_probit <-
ROC_cloglog <-
ROC_all_full <-
# Draw all ROCs on one plot
plot(___)
lines(___, col=___)
lines(___, col=___)
lines(___, col=___)
# Compute the AUCs