R - Regresión logística

La regresión logística es un modelo de regresión en el que la variable de respuesta (variable dependiente) tiene valores categóricos como Verdadero / Falso o 0/1. En realidad, mide la probabilidad de una respuesta binaria como el valor de la variable de respuesta según la ecuación matemática que la relaciona con las variables predictoras.

La ecuación matemática general para la regresión logística es:

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

A continuación se muestra la descripción de los parámetros utilizados:

  • y es la variable de respuesta.

  • x es la variable predictora.

  • a y b son los coeficientes que son constantes numéricas.

La función utilizada para crear el modelo de regresión es la glm() función.

Sintaxis

La sintaxis básica para glm() función en la regresión logística es -

glm(formula,data,family)

A continuación se muestra la descripción de los parámetros utilizados:

  • formula es el símbolo que presenta la relación entre las variables.

  • data es el conjunto de datos que da los valores de estas variables.

  • familyes un objeto R para especificar los detalles del modelo. Su valor es binomial para la regresión logística.

Ejemplo

El conjunto de datos incorporado "mtcars" describe diferentes modelos de un automóvil con sus diversas especificaciones de motor. En el conjunto de datos "mtcars", el modo de transmisión (automático o manual) se describe mediante la columna am, que es un valor binario (0 o 1). Podemos crear un modelo de regresión logística entre las columnas "am" y otras 3 columnas: hp, wt y cyl.

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

print(head(input))

Cuando ejecutamos el código anterior, produce el siguiente resultado:

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

Crear modelo de regresión

Usamos el glm() función para crear el modelo de regresión y obtener su resumen para el análisis.

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

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

print(summary(am.data))

Cuando ejecutamos el código anterior, produce el siguiente resultado:

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

Conclusión

En el resumen, dado que el valor p en la última columna es más de 0.05 para las variables "cyl" y "hp", las consideramos insignificantes para contribuir al valor de la variable "am". Solo el peso (wt) afecta el valor "am" en este modelo de regresión.