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.