Capitolo 11 Richiami di Regressione Logistica

La regressione logistica è parte dei modelli GLM. L’obiettivo della regressione logistica è trovare una relazione causale tra i predittori (le colonne della matrice \(X\)) e la variabile di risposta \(Y\), dove \(Y\) può assumente solo valori \(0/1\) (dove \(0\) = “assenza”; \(1\) = “presenza”).

Il modello usato per trovare questa relazione, se esiste, stabilisce che la variabile di risposta è distribuia come una Binomiale con parametri \(n\) e \(p\),

\[Y_i \sim Bi(n_i, p_i)\]

e che \(p\) è “legato” ai predittori attraverso una trasformazione di una funzione lineare:

\[p_i = \frac{exp\left(a + b x_{i1} + c x_{i2} + \dots \right)}{1 + exp\left(a + b x_{i1} + c x_{i1} + \dots \right)}\]

dove i valori \(x_{ij}\) rappresentano l’\(i\)-mo valore (riga) della \(j\)-ma colonna della matrice \(X\) (cioè, i \(k\) predittori per l’\(i\)-ma osservazione).

La regressione logistica cerca i valori dei parametri \(a, b, c, \dots\) che massimizzano la (densità di) probabilità di avere i dati che sono stati osservati. Questi valori dei parametri (genericamente indicati con \(\hat{a}, \hat{b}, \hat{c}, \dots\)) saranno le stime dei parametri stessi.

11.1 Esempio: Default carte di credito

Come primo esempio presentiamo il dataset Default, contenente dati relativi a 10000 giovani utilizzatori di carta di credito, con l’obiettivo di prevedere quali clienti non pagheranno il loro debito sulla carta di credito:

##  default    student       balance           income     
##  No :9667   No :7056   Min.   :   0.0   Min.   :  772  
##  Yes: 333   Yes:2944   1st Qu.: 481.7   1st Qu.:21340  
##                        Median : 823.6   Median :34553  
##                        Mean   : 835.4   Mean   :33517  
##                        3rd Qu.:1166.3   3rd Qu.:43808  
##                        Max.   :2654.3   Max.   :73554

Per eseguire la regressione logistica sui dati delle carte di credito, useremo la funzione glm(). Questa funzione richiede che sia impostata una formula che specifica la variabile di risposta categoriale e i predittori da usare, il data frame contenente i dati, la famiglia distributiva, ed una serie di altri argomenti opzionali:

## 
## Call:
## glm(formula = default ~ student + balance, family = binomial(link = logit), 
##     data = Default)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.4578  -0.1422  -0.0559  -0.0203   3.7435  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -1.075e+01  3.692e-01 -29.116  < 2e-16 ***
## studentYes  -7.149e-01  1.475e-01  -4.846 1.26e-06 ***
## balance      5.738e-03  2.318e-04  24.750  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 2920.6  on 9999  degrees of freedom
## Residual deviance: 1571.7  on 9997  degrees of freedom
## AIC: 1577.7
## 
## Number of Fisher Scoring iterations: 8

Per ottenere la probabiità di essere un defaulter (un non pagatore) per un singolo cliente, si può usare la funzione predict():

##            1            2            3            4            5            6 
## 0.0014090960 0.0011403179 0.0100571943 0.0004469571 0.0019434977 0.0020503778

A partire dalla probabilità di default, dobbiamo scegliere una soglia di probabilità per cui definire probabile non pagatore un cliente.
Per esempio, e si sceglie come soglia \(0.5\), allora il singolo cliente verrà classificato come non pagatore se la sua ptobabilità stimata di defalut è maggiore di \(0.5\):

Per stabilire la bontà della classificazione, uno strumento spesso usato è la cosiddetta “matrice di confusione”, che incrocia le frequenze delle classi effettivamente osservate e quelle previste per tutte le osservazioni (clienti):

##              
## default_logit   No  Yes
##      Prev: No 9628  228
##      PreV: Sì   39  105