R - Regressione logistica

La regressione logistica è un modello di regressione in cui la variabile di risposta (variabile dipendente) ha valori categoriali come Vero / Falso o 0/1. In realtà misura la probabilità di una risposta binaria come il valore della variabile di risposta in base all'equazione matematica che la mette in relazione con le variabili predittive.

L'equazione matematica generale per la regressione logistica è:

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

Di seguito la descrizione dei parametri utilizzati:

  • y è la variabile di risposta.

  • x è la variabile predittore.

  • a e b sono i coefficienti che sono costanti numeriche.

La funzione utilizzata per creare il modello di regressione è glm() funzione.

Sintassi

La sintassi di base per glm() la funzione nella regressione logistica è:

glm(formula,data,family)

Di seguito la descrizione dei parametri utilizzati:

  • formula è il simbolo che presenta la relazione tra le variabili.

  • data è il set di dati che fornisce i valori di queste variabili.

  • familyè un oggetto R per specificare i dettagli del modello. Il suo valore è binomiale per la regressione logistica.

Esempio

Il set di dati integrato "mtcars" descrive diversi modelli di un'auto con le loro varie specifiche del motore. Nel dataset "mtcars" la modalità di trasmissione (automatica o manuale) è descritta dalla colonna am che è un valore binario (0 o 1). Possiamo creare un modello di regressione logistica tra le colonne "am" e altre 3 colonne: hp, wt e cil.

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

Quando eseguiamo il codice sopra, produce il seguente risultato:

am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

Crea modello di regressione

Noi usiamo il glm() funzione per creare il modello di regressione e ottenere il suo riepilogo per l'analisi.

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

Quando eseguiamo il codice sopra, produce il seguente risultato:

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

Conclusione

Nel riepilogo, poiché il valore p nell'ultima colonna è maggiore di 0,05 per le variabili "cil" e "hp", le consideriamo non significative nel contribuire al valore della variabile "am". Solo il peso (wt) influisce sul valore "am" in questo modello di regressione.