R Language
Modelos lineales generalizados.
Buscar..
Regresión logística en el conjunto de datos Titanic
La regresión logística es un caso particular del modelo lineal generalizado , utilizado para modelar resultados dicotómicos (los modelos probit y log-log complementarios están estrechamente relacionados).
El nombre proviene de la función de enlace utilizada, la función logit o log-odds . La función inversa del logit se denomina función logística y viene dada por:
Esta función toma un valor entre ] -Inf; + Inf [ y devuelve un valor entre 0 y 1 ; es decir, la función logística toma un predictor lineal y devuelve una probabilidad.
La regresión logística se puede realizar utilizando la función glm
con la opción family = binomial
(atajo para family = binomial(link="logit")
; logit es la función de enlace predeterminada para la familia binomial).
En este ejemplo, intentamos predecir el destino de los pasajeros a bordo del RMS Titanic.
Lea los datos:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
Limpie los valores faltantes:
En ese caso, reemplazamos los valores faltantes por una aproximación, el promedio.
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
Entrena al modelo:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
Resumen del modelo:
summary(titanic.train)
La salida:
Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6452 -0.6641 -0.3679 0.6123 2.5615
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.552261 0.342188 10.381 < 2e-16 ***
pclass2nd -1.170777 0.211559 -5.534 3.13e-08 ***
pclass3rd -2.430672 0.195157 -12.455 < 2e-16 ***
sexmale -2.463377 0.154587 -15.935 < 2e-16 ***
age -0.042235 0.007415 -5.696 1.23e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1686.8 on 1312 degrees of freedom
Residual deviance: 1165.7 on 1308 degrees of freedom
AIC: 1175.7
Number of Fisher Scoring iterations: 5
Lo primero que se muestra es la llamada. Es un recordatorio del modelo y las opciones especificadas.
A continuación vemos los residuos de desviación, que son una medida del ajuste del modelo. Esta parte de la salida muestra la distribución de los residuos de desviación para los casos individuales utilizados en el modelo.
La siguiente parte de la salida muestra los coeficientes, sus errores estándar, la estadística z (a veces llamada estadística z de Wald) y los valores p asociados.
- Las variables cualitativas son "dummified". Una modalidad es considerada como la referencia. La modalidad de referencia se puede cambiar con
I
en la fórmula. - Los cuatro predictores son estadísticamente significativos a un nivel de 0.1%.
- Los coeficientes de regresión logística proporcionan el cambio en las probabilidades de registro del resultado para un aumento de una unidad en la variable predictiva.
- Para ver la razón de probabilidades (cambio multiplicativo en las probabilidades de supervivencia por unidad de aumento en una variable predictiva), exponente el parámetro.
- Para ver el intervalo de confianza (CI) del parámetro, use
confint
.
- Las variables cualitativas son "dummified". Una modalidad es considerada como la referencia. La modalidad de referencia se puede cambiar con
Debajo de la tabla de coeficientes se encuentran los índices de ajuste, que incluyen los residuos nulos y de desviación y el Criterio de Información de Akaike (AIC), que se pueden usar para comparar el rendimiento del modelo.
- Al comparar modelos ajustados por máxima verosimilitud con los mismos datos, cuanto más pequeño sea el AIC, mejor será el ajuste.
- Una medida del ajuste del modelo es la importancia del modelo general. Esta prueba pregunta si el modelo con predictores se ajusta significativamente mejor que un modelo con solo una intersección (es decir, un modelo nulo).
Ejemplo de odds ratios:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
Con este modelo, en comparación con la primera clase, los pasajeros de tercera clase tienen aproximadamente una décima parte de las probabilidades de supervivencia.
Ejemplo de intervalo de confianza para los parámetros:
confint(titanic.train)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 2.89486872 4.23734280
pclass2nd -1.58986065 -0.75987230
pclass3rd -2.81987935 -2.05419500
sexmale -2.77180962 -2.16528316
age -0.05695894 -0.02786211
Ejemplo de cálculo de la importancia del modelo global:
El estadístico de prueba se distribuye chi-cuadrado con grados de libertad iguales a las diferencias en los grados de libertad entre el modelo actual y el nulo (es decir, el número de variables predictoras en el modelo).
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
El valor p está cerca de 0, lo que muestra un modelo altamente significativo.