Regressione logistica in R: derivazione di equazioni [con esempio]
Pubblicato: 2020-07-28In questo articolo, discuteremo uno dei concetti più comuni ma impegnativi nell'apprendimento automatico, la regressione logistica. Troverai cos'è la regressione logistica e la derivazione dell'equazione di regressione logistica in questo articolo dettagliato.
Abbiamo anche condiviso un esempio di regressione logistica in R per comprendere il concetto con molta facilità. Tuttavia, assicurati di conoscere tutte le idee ragionevolmente bene prima di lavorare sull'esempio. Sarebbe utile se hai familiarità con la regressione lineare perché entrambi questi concetti sono interconnessi.
Sommario
Che cos'è la regressione logistica?
La regressione logistica prevede un risultato binario in base a un insieme di variabili indipendenti. È un algoritmo di classificazione che prevede la probabilità del verificarsi di un evento utilizzando una funzione logit e adattando i dati ad essa. La regressione logistica è diversa dalla regressione lineare in quanto può prevedere la probabilità di un risultato che può avere solo due valori. L'uso della regressione lineare non è adatto quando si dispone di una variabile binaria perché:
- La regressione lineare prevede valori al di fuori dell'intervallo richiesto
- La regressione potrebbe non distribuire i due vantaggi su una linea prevista
La regressione logistica non produce una linea come fa una regressione lineare. Fornisce una curva logistica compresa tra 0 e un valore maggiore di 1.
Impara i corsi online di data science dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Dai un'occhiata a: R Idee di progetto
Derivazione dell'equazione di regressione logistica
Possiamo derivare l'equazione di regressione logistica dall'equazione di regressione lineare. La regressione logistica rientra nella classe degli algoritmi glm (Generalized Linear Model). Nelder e Wedderburn hanno introdotto questo modello nel 1972 come metodo per utilizzare la regressione lineare per risolvere problemi che prima non potevano risolvere. Avevano proposto una classe di modelli separati e avevano aggiunto la regressione logistica come speciale.
Sappiamo che l'equazione di un modello lineare generalizzato è la seguente:
g(e<y) = a + bx1
g() sta per la funzione di collegamento, E(y) sta per l'aspettativa della variabile target e RHS (lato destro) è il predittore lineare. La funzione di collegamento 'collega' l'aspettativa di y con il predittore lineare.
Supponiamo di avere dati di 100 clienti e di dover prevedere se un cliente acquisterà o meno un prodotto specifico. Poiché abbiamo una variabile di risultato categoriale, dobbiamo utilizzare la regressione logistica.
Inizieremo con un'equazione di regressione lineare:
g(y) = o+(reddito) — (1)
Qui, abbiamo mantenuto la variabile indipendente come "reddito" per facilità di comprensione.
Il nostro focus è sulla probabilità della variabile dipendente risultante (il cliente acquisterà o no?). Come abbiamo già discusso, g() è la nostra funzione di collegamento e si basa sulla probabilità di successo (p) e sulla probabilità di fallimento (1-p). p dovrebbe avere le seguenti qualità:
- p dovrebbe essere sempre positivo
- p dovrebbe essere sempre minore o uguale a 1
Ora indicheremo g() con 'p' e deriveremo la nostra equazione di regressione logistica.
Poiché la probabilità è sempre positiva, tratteremo l'equazione lineare nella sua forma esponenziale e otterremo il seguente risultato:
p = exp(0+(reddito)) = e((0+(reddito)) — (2)
Dovremo dividere p per un numero maggiore di p per rendere la probabilità minore di 1:
p = exp(0+(reddito)) / (0+(reddito)) + 1 = e(0+(reddito)) / (0+(reddito)) + 1 — (3)
Utilizzando l'eq. (1), (2) e (3), possiamo definire p come:
p = ey /1 + ey — (4)
Qui p è la probabilità di successo, quindi 1-p deve essere la probabilità di fallimento:
q = 1 – p = 1 -(ey /1 + ey) — (5)
Dividiamo ora (4) per (5):
p / 1 – p = ey
Se prendiamo il registro su entrambi i lati, otteniamo quanto segue:
log (p / 1 – p) = y
Questa è la funzione di collegamento. Sostituendo il valore di y che avevamo stabilito in precedenza, otteniamo:
log(p / 1 – p) = o + (reddito)
E il gioco è fatto, l'equazione di regressione logistica. Poiché fornisce la probabilità di un risultato, il suo valore rimane sempre compreso tra 0 e superiore a 1.
Leggi di: 9 interessanti idee e argomenti per progetti di regressione lineare per principianti
Esempio di regressione logistica in R
Nel nostro caso di regressione logistica in R, utilizziamo i dati dell'UCLA (University of California, Los Angeles). Qui, dobbiamo creare un modello che preveda le possibilità di essere ammessi in base ai dati che abbiamo. Abbiamo quattro variabili, tra cui GPA, punteggio GRE, il grado del college universitario dello studente e confessare.
df <- read.csv(“https://stats.idre.ucla.edu/stat/data/binary.csv”)
str(df)
## 'data.frame': 400 os. di 4 variabili:
## $ ammetti: int 0 1 1 1 0 1 1 0 1 0 …
## $ gre : int 380 660 800 640 520 760 560 400 540 700 …
## $ gpa : num 3.61 3.67 4 3.19 2.93 3 2.98 3.08 3.39 3.92 …
## $ rango : int 3 3 1 4 4 2 1 2 3 2 …
Le variabili sono numeriche o intere:
sum(is.na(df))
## [1] 0
Troviamo anche che non ci sono valori nulli e ci sono più eventi di scarto che di accettazione perché la media del limite della variabile è inferiore a 0,5.

Dovresti assicurarti che il sistema distribuisca gli ammissioni in modo appropriato in ogni categoria di rango. Supponiamo che un rango abbia solo 5 rifiuti (o ammetta informazioni), quindi non devi necessariamente usare quel rango nella tua analisi.
xtabs(~ ammette +rank ,data=df)
## classifica
## ammetti 1 2 3 4
## 0 28 97 93 55
## 1 33 54 28 12
Eseguiamo ora la nostra funzione:
df$rank <- come.fattore(df$rank)
logit <- glm(admit ~ gre+gpa+rank,data=df,family=”binomial”)
sommario (logit)
##
## Chiamata:
## glm(formula = ammetti ~ gre + gpa + rango, famiglia = “binomio”,
## dati = df)
##
## Residui di devianza:
## Min 1Q Mediana 3Q Max
## -1.6268 -0.8662 -0.6388 1.1490 2.0790
##
## Coefficienti:
## Stima Std. Errore valore z Pr(>|z|)
## (Intercetta) -3.989979 1.139951 -3.500 0.000465 ***
## gre 0.002264 0.001094 2.070 0.038465 *
## gpa 0,804038 0,331819 2,423 0,015388 *
## rango2 -0,675443 0,316490 -2,134 0,032829 *
## rango3 -1,340204 0,345306 -3,881 0,000104 ***
## rango4 -1,551464 0,417832 -3,713 0,000205 ***
## —
## Significato. codici: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Parametro di dispersione per famiglia binomiale considerato 1)
##
## Devianza nulla: 499,98 su 399 gradi di libertà
## Devianza residua: 458,52 su 394 gradi di libertà
## AIC: 470.52
##
## Numero di iterazioni del punteggio Fisher: 4
Devi aver notato che abbiamo convertito la variabile rank in fattore da intero prima di eseguire la funzione. Assicurati di fare lo stesso.
Risultato finale:
Supponiamo che il GPA di uno studente sia 3,8, un punteggio GRE di 790 e che abbia studiato in un college di grado 1. Troviamo le sue possibilità di essere ammesso in futuro usando il nostro modello:
x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))
p<- prevedi(logit,x)
P
## 1
## 0,85426
Il nostro modello prevede che il ragazzo abbia l'85% di possibilità di ottenere l'ammissione in futuro.
Leggi anche: Idee per progetti di apprendimento automatico
Pensieri finali
Questo è tutto per questo articolo. Siamo fiduciosi che lo avresti trovato abbastanza utile. Se hai domande o pensieri sulla regressione logistica e sui relativi argomenti, condividili nella sezione commenti qui sotto.
Se sei curioso di conoscere R, tutto ciò che riguarda la scienza dei dati, dai un'occhiata all'Executive PG Program in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1 a 1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.
In che modo la regressione logistica e la regressione lineare sono diverse l'una dall'altra?
L'obiettivo della regressione lineare è identificare la linea più adatta, ma la regressione logistica fa un passo avanti e adatta i valori della linea alla curva sigmoidea. La principale differenza tra questi due metodi è che la regressione logistica viene applicata quando la variabile dipendente è binaria. Quando la variabile dipendente è continua e la retta di regressione è lineare, viene utilizzata la regressione lineare. Mentre la tecnica dei minimi quadrati ordinari viene utilizzata per stimare la regressione lineare, il metodo di stima della massima verosimiglianza viene utilizzato per stimare la regressione logistica. L'output della regressione lineare è continuo, ma quello della regressione logistica ha solo un numero limitato di valori potenziali discreti.
Quando è utile l'uso della regressione logistica?
La variabile dipendente categoriale viene prevista utilizzando la regressione logistica. Quando i dati che abbiamo possono essere misurati su scala infinita, possiamo applicare la regressione logistica. Per stimare la probabilità di un evento, è utile l'analisi di regressione logistica. Aiuta a determinare la probabilità di due classi qualsiasi. Solo i risultati di classificazione e probabilità possono essere previsti utilizzando la regressione logistica. Può essere utilizzato per risolvere una serie di problemi di classificazione come il rilevamento dello spam, la previsione del diabete, la diagnosi del cancro e così via.
Quali sono i limiti dell'utilizzo della regressione logistica?
1. Poiché la regressione logistica ha una superficie decisionale lineare, non può affrontare questioni non lineari.
2. L'algoritmo di regressione logistica è sensibile ai valori anomali.
3. Poiché sia il ridimensionamento che la normalizzazione sono criteri chiave della regressione logistica, la preparazione dei dati può richiedere molto tempo.
4. Se esiste una funzionalità che separa completamente due classi, il modello non può più essere addestrato. Questo è definito come "separazione completa".
5. Se il numero di osservazioni è inferiore al numero di caratteristiche, la regressione logistica non dovrebbe essere applicata in quanto potrebbe comportare un overfitting.
6. Un altro svantaggio è che ogni punto dati nella regressione logistica deve essere indipendente da tutti gli altri punti dati. Quando le osservazioni sono collegate, il modello tende a sopravvalutare la rilevanza di tali osservazioni.