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.
challenger <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/challenger.txt", header=TRUE)
table(challenger$defecto)##
## 0 1
## 16 7
Una representacion grafica 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"))##
## 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
\[D_i = \mp \sqrt{-2 [Y_i\log \hat p_i + (1-Y_i)\log(1-\hat p_i)]}, \]
Donde el signo coincide con el signo de \(Y_i - \hat p_i\) en la salida anterior estas cantidades se denominan “deviance residuals”
para calcular estos pseudo-residuos, podemos ejecutar res = resid(reg).
Para representar gráficamente la función logística estimada, calculamos las probabilidades de fallo estimadas (usando el comando predict) para un vector adecuado de nuevas temperaturas (entre 50 y 85 grados):
datos <- data.frame(temp=seq(50,85, 0.1))
probabilidades <- predict(reg, datos, type="response")
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") )
lines(datos$temp, probabilidades, col="blue", lwd=2)Cuestiones
## [1] -2.608133
## [1] -2.238447
Significa que el valor del coeficiente es bajo, pero aun asi no es suseptible a fallos.
Entre los valores de 65 a 80.
Entre los valores de 50 a 75.