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.