Regresión logística

En estadística, la regresión logística es un tipo de análisis de regresión utilizado para predecir el resultado de una variable categórica (una variable que puede adoptar un número limitado de categorías) en función de las variables independientes o predictorias. Es útil para modelar la probabilidad de un evento ocurriendo como función de otros factores. El análisis de regresión logística se enmarca en el conjunto de Modelos Lineales Generalizados (GLM por sus siglas en inglés) que usa como función de enlace la función logit. Las probabilidades que describen el posible resultado de un único ensayo se modelan, como una función de variables explicativas, utilizando una función logística.

Caso de estudio: fallo del transbordador challanger en 1986

Despegue del challenger

En 1986, el transbordador espacial Challenger tuvo un accidente catastrófico debido a un incendio en una de las piezas de sus propulsores. Era la vez 25 en que se lanzaba un transbordador espacial. En todas las ocasiones anteriores se habían inspeccionado los propulsores de las naves, y en algunas de ellas se habían encontrando defectos. El fichero challenger contiene 23 observaciones de las siguientes variables: defecto, que toma los valores 1 y 0 en función de si se encontraron defectos o no en los propulsores; y temp, la temperatura (en grados Fahrenheit) en el momento del lanzamiento. Tipulación del challenger Accidente del challegen en 1986

Primero leemos los datos y contamos las frecuencias de casos sin y con defectos:

challenger <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/challenger.txt", header=TRUE)
table(challenger$defecto)
## 
##  0  1 
## 16  7

Se puede apreciar que no hay demasiados defectos, sin embargo, existen casi un 50% de defecto, eso es un numero muy grande, y es muy riesgoso trabajar con ese procentaje, especialmente si se tiene en cuenta que este porcentaje hizo que se perdieran vidas humanas.

Una representación gráfica de los datos, puede obtenerse mediante:

colores <- NULL
colores[challenger$defecto==0] <- "green"
colores[challenger$defecto==1] <- "red"
plot(challenger$temp, challenger$defecto, pch =21, bg= colores, xlab = "Temperatura",ylab = "Probabilidad de defectos")

legend("bottomleft", c("No defecto", "Si defecto"),pch =21, col=c("green","red") )

En esta grafica se puede ver que entre mas alta la temperatura la probabilidad de defecto baja mucho, esto es debido a que en temperaturas bajas los metales se encojen, y ya que se encojen su probabilidad de que haya un defecto es mayor, esta probabilidad hace que sea muy peligroso volar en temperaturas bajas.

Parece razonable, a la vista de los datos, pensar que la temperatura puede influir en la probabilidad de que los propulsores tengan defectos. En esta práctica, vamos a ajustar un modelo de regresión logística para estudiar la posible relación. Para ajustar el modelo se usa el comando glm (para modelos lineales generalizados) indicando que la respuesta es binomial mediante el argumento family:

reg <- glm(defecto ~ temp, data = challenger, family=binomial)
summary(reg)
## 
## Call:
## glm(formula = defecto ~ temp, family = binomial, data = challenger)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.0611  -0.7613  -0.3783   0.4524   2.2175  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept)  15.0429     7.3786   2.039   0.0415 *
## temp         -0.2322     0.1082  -2.145   0.0320 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 28.267  on 22  degrees of freedom
## Residual deviance: 20.315  on 21  degrees of freedom
## AIC: 24.315
## 
## Number of Fisher Scoring iterations: 5

Se puede ver ciertamente la temperatura afecta la probabilidad de fallo, se ignora por que los científicos que hicieron los cálculos olvidaron incluir la temperatura, quizá si no hubieran olvidado incluir este factor no se hubieran perdidos las vidas de los astronautas.

  • El modelo de regresión logística, la raíz de las desviaciones representa el papel de los residuos:

\[D_i = \mp \sqrt{-2 [Y_i\log \hat p_i + (1-Y_i)\log(1-\hat p_i)]}, \]