#Regresion Logistica 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. La existencia de una relación significativa entre una variable cualitativa con dos niveles y una variable continua se puede estudiar mediante otros test estadísticos tales como t-test o ANOVA (un ANOVA de dos grupos es equivalente al t-test). Sin embargo, la regresión logística permite además calcular la probabilidad de que la variable dependiente pertenezca a cada una de las dos categorías en función del valor que adquiera la variable independiente. Supóngase que se quiere estudiar la relación entre los niveles de colesterol y los ataques de corazón. Para ello, se mide el colesterol de un grupo de personas y durante los siguientes 20 años se monitoriza que individuos han sufrido un ataque. Un t-test entre los niveles de colesterol de las personas que han sufrido ataque vs las que no lo han sufrido permitiría contrastar la hipótesis de que el colesterol y los ataques al corazón están asociados. Si además se desea conocer la probabilidad de que una persona con un determinado nivel de colesterol sufra un infarto en los próximos 20 años, o poder conocer cuánto tiene que reducir el colesterol un paciente para no superar un 50% de probabilidad de padecer un infarto en los próximos 20 años, se tiene que recurrir a la regresión logística.
¿Porque regresion logistica y no lineal
*Si una variable cualitativa con dos nieveles se codifican como 1 y 0 matematicamente es posible ajustar un modelo de regresion lineal por minimos cuadrados:
\[ y = \beta_0 + \beta_1 x\]
Ejemplo representacion grafica
##Caso de estudio: Fallo del transbordador challanger en 1986
El accidente del transbordador espacial Challenger se produjo el martes 28 de enero de 1986 a las 16:39:13 UTC,. cuando el transbordador espacial Challenger (misión STS-51-L) se desintegró 73 segundos tras el lanzamiento.
provocando la muerte de los siete miembros de la tripulación —Francis “Dick” Scobee, Michael J. Smith, Ronald McNair, Ellison Onizuka, Gregory Jarvis, Judith Resnik y Christa McAuliffe. La nave se desintegró sobre el océano Atlántico, frente a la costa del centro de Florida (Estados Unidos) a las 11:38 EST (16:38 UTC). Ha sido calificado como el accidente más grave en la conquista del espacio. La desintegración del vehículo entero comenzó después de que una junta tórica de su cohete acelerador sólido (SRB) derecho fallara durante el despegue. El fallo de la junta tórica causó la apertura de una brecha, permitiendo que el gas caliente presurizado del interior del motor del cohete sólido saliera al exterior y contactara con la estructura adyacente de conexión con el SRB y el tanque externo de combustible. Esto provocó la separación de la conexión posterior del SRB derecho y el fallo estructural del depósito externo. Las fuerzas aerodinámicas destruyeron rápidamente el orbitador.
##Primero leemos los datos 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
##Una depresentacion graficas de los datos, puede obtenerse mediante:
#ESTO ES PARA QUE LOS COLORES SEAN NULOS
colores <- NULL
#se puede hacer el lanzamiento o en pocas palabras no ay riesgos
colores[challenger$defecto==0] <- "green"
#Rojos depresenta que son riegos que ay al lancamiento
colores[challenger$defecto==1] <- "red"
plot(challenger$temp, challenger$defecto, pch=21, bg=colores, xlab = "Temperatura", ylab = "Probabilidad de defectos")
#Para poner anotacion en la graficas un cuadrito con datos se muestran abajo a la izquierda
legend("bottomleft", c("No defecto", "Si defecto"),pch =21, col=c("green","red") )
GLM se utiliza para ajustar modelos lineales generalizados, especificados dando una descripción simbólica del predictor lineal y una descripción de la distribución de errores.
Parece razonable, a la vista de los dsots
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
el modelo de regsion logistica, la raiz de la desviaciones representa el papel de los residuos
##Raiz de las desviaciones
\[ 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))
#Es una variable que hace una prediccion en funcion del modelo regresion en el modelo de
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") )
#lwd dimensiones que tiene o el ancho
#lines Una función genérica que toma coordenadas dadas de varias formas y une los puntos correspondientes con segmentos de línea.
lines(datos$temp, probabilidades, col="blue", lwd=2)
<< TAREA >>
*Responder estas preguntas buscar en internet
challenger$temp <- as.factor(challenger$temp)
challenger$defecto <- as.factor(challenger$defecto)
# este codigo era como similar al que encontre pero al momento de ejecutarlo me pide valores true o false los cuales no se donde colocarlos por lo tnanto utilice el gml que usted ya nos habia dado fit <- glm(defecto ~ temp, data = challenger, family = poisson(link = log))
re <- glm(defecto ~ temp, data = challenger, family=binomial)
summary(re)
##
## Call:
## glm(formula = defecto ~ temp, family = binomial, data = challenger)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.17741 -0.00005 -0.00005 0.00005 1.17741
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.057e+01 1.773e+04 0.001 0.999
## temp57 -7.927e-08 2.507e+04 0.000 1.000
## temp58 -9.761e-08 2.507e+04 0.000 1.000
## temp63 -9.774e-08 2.507e+04 0.000 1.000
## temp66 -4.113e+01 2.507e+04 -0.002 0.999
## temp67 -4.113e+01 2.047e+04 -0.002 0.998
## temp68 -4.113e+01 2.507e+04 -0.002 0.999
## temp69 -4.113e+01 2.507e+04 -0.002 0.999
## temp70 -2.057e+01 1.773e+04 -0.001 0.999
## temp72 -4.113e+01 2.507e+04 -0.002 0.999
## temp73 -4.113e+01 2.507e+04 -0.002 0.999
## temp75 -2.057e+01 1.773e+04 -0.001 0.999
## temp76 -4.113e+01 2.172e+04 -0.002 0.998
## temp78 -4.113e+01 2.507e+04 -0.002 0.999
## temp79 -4.113e+01 2.507e+04 -0.002 0.999
## temp81 -4.113e+01 2.507e+04 -0.002 0.999
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 28.2672 on 22 degrees of freedom
## Residual deviance: 8.3178 on 7 degrees of freedom
## AIC: 40.318
##
## Number of Fisher Scoring iterations: 19
#Para realizar la prueba Wald se puede usar el siguiente código. los cuales son los valores estimados de temp57 y el eror de temp57 igualemnte
z <- (-7.927 - 0.05 / 2.507 + 0.01)
z
## [1] -7.936944
# Intervalos estimados
a <- set.seed(0.2322)
a
## NULL
Demasiadas ya que menos que 0.1 la temperatura sera mas helada por lo tanto pasaria lo mismo o mas rapido
Para que no explote el challenger ya que si fueran previsto lo de las temperaturas se hubiesen salvado quiza en otra ocasion se piense mas en las probabilidades junto a eso tambien en la temperatura