Regresión Logística
Sirve para determinar cuando un ejemplo no se ajusta a una linea
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 predictoras. 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 Challenger en 1986
Tripulación 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.
Accidente del challenger
Primero leemos los datos y contamos las frecuencias de 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
De 23 casos evaluados podemos observar que en 16 hay defectos, esto es una alta gama de posibilidades para que falle (y fallo), lo que nos deja pensando en ¿porque la NASA no previo esto?.
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(F)", ylab = "Probabilidad de defectos")
#Una temperatura de 80 grados para arriba hubiera sido seguro realizar el lanzamiento
legend("bottomleft", c("No defecto", "Si defecto"), pch = 21, col = c("green", "red")) #legend sirve para poner leyendas en la graficaPor la tabla parece ser que las temperaturas que pueden provocar defectos o fallos en los propulsores es de menos de 65 grados Fahrenheit, lo ideal hubiera sido esperar y realizar el lanzamiento a partir de los 80 grados Fahrenheit. ¿porque 80 y no de 66 si ya dijimos que la falla segura es de 65?, esto porque no puedes arriesgarte al estar al borde del peligro, siempre es mejor tomar todas las medidas posibles para alejarte de ese borde.
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:
##
## 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
- 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)]}, \] En este caso se calcularia como: \[ \]
El accidente sucedio por que aquella mañana, la temperatura estaba a solo 2,2 °C; 8,33 °C más baja de la considerada normal.
El frío hizo que las juntas tóricas (empaques en forma de anillo que evitan las fugas de combustible) perdieran rigidez y permitieran el escape de gases.
Una fuga de hidrógeno se combinó con el oxígeno de la atmósfera y causó una explosión y llamas que, sumadas al combustible del tanque, causaron una tragedia mayor.
Secuencia del accidente Challenger