Regresión logística

Publicado por

Índice

  1. Introducción
  2. Fórmula matemática
  3. Ejemplo: Prediciendo el comportamiento de un tratamiento médico
  4. R: Construir modelo
  5. Entendiendo el modelo

1. Introducción

La regresión logística es una de las técnicas estadístico‐inferenciales más empleadas en la producción científica contemporánea. Surge en la década de los 60, su generalización dependía de la solución que se diera al problema de la estimación de los coeficientes. El algoritmo de Walker‐Duncan para la obtención de los estimadores de máxima verosimilitud vino a solucionar en parte este problema, pero era de naturaleza tal que el uso de ordenadores era imprescindible.

El modelo de regresión logística se utiliza cuando estamos interesados en pronosticar la probabilidad de que ocurra o no un suceso determinado. Por ejemplo, a la vista de un conjunto de pruebas médicas, que una persona tenga una determinada enfermedad, o bien que un cliente devuelva un crédito bancario.

Se dice que un proceso es binomial cuando sólo tiene dos posibles resultados: “éxito” y “fracaso”, siendo la probabilidad de cada uno de ellos constante en una serie de repeticiones.

Un proceso binomial está caracterizado por la probabilidad de éxito, representada por p, la probabilidad de fracaso se representa por q y,  ambas probabilidades están relacionadas por p+q=1. En ocasiones, se usa el cociente p/q, denominado “odds”, y que indica cuánto más probable es el éxito que el fracaso, como parámetro característico de la distribución binomial.

Puede considerarse un caso especial del análisis de regresión en
donde la variable dependiente es dicotómica (Si [1] o No [0]). Por ejemplo si una persona esta recibiendo un mal tratamiento.

2. Fórmula matemática

Son modelos de regresión que permiten estudiar si una variable binomial depende, o no, de otra u otras variables (no necesariamente binomiales). Si una variable binomial de parámetro p es independiente de otra variable X, se cumple p=p|X, por consiguiente, un modelo de regresión es una función de p en X que a través del coeficiente de X permite investigar la relación anterior.

Por analogía, la regresión logística puede considerarse una extensión de los modelos de
regresión lineal, con la particularidad de que el dominio de salida de la función está
acotado al intervalo [0,1] y que el procedimiento de estimación, en lugar de mínimos
cuadrados, utiliza el procedimiento de estimación máximo-verosímil.

El análisis de regresión logística sólo precisa del principio de monotonía, es decir, si el suceso A es que una determinada persona padezca de artrosis y X representa la edad, deberá de ocurrir

xi>xj=P(A|xi)>P(A|xj)

El análisis de regresión logística es una herramienta muy flexible en cuanto a la naturaleza de las variables explicativas, pues éstas pueden ser continuas o categóricas.

Supongamos que: y=0, recibe buen tratamiento; y=1, recibe mal tratamiento

La probabilidad de que reciba mal tratamiento es P(y=1), y al ser complementarias, tenemos que: P(y=0) = 1-P(y=1)

Tenemos un conjunto de variables independientes denotadas por x1,x2, …,xn. donde n es el número total.

Para predecir la probabilidad de y=1, vamos a introducir un nuevo término llamado función logística de respuesta, la fórmula parece una complicada ecuación no lineal, pero si observamos, podemos ver la fórmula de la regresión lineal. Esta función devuelve un número entre 0 y 1.

P(y = 1) => 1 / 1 + e – ( β0 + β1 x1 + β2x2 + … + βnxn)

Si operamos con esta fórmula nos queda que el resultado es la función de Logit.

logit

Y visualmente tenemos una función como la siguiente, acotada entre 0 y 1. En este caso si x>=30, tendremos casos del tipo 1, porque la probabilidad de que y=1 es del 0.8 y valores donde x<30 los clasificaremos como caso de tipo 0.

lr1

Si los coeficientes de una variable son positivos nos acercarán mas a la probabilidad de que y=1,  y por el contrario si los coeficientes son negativos, indicaran una probabilidad más baja de y=1.

Cuanto mayor sea el Logit, mayor será la probabilidad de que y=1.

3. Ejemplo: Estudio del corazón de Framingham

El año que viene se cumplirán 80 años desde el inicio de uno de los estudios epidemiológicos que ha tenido mayor repercusión, tanto en el avance del conocimiento científico, ha contribuido con más de 1200 artículos publicados en revistas de investigación, como en sus beneficios para la humanidad, con sus recomendaciones en el ámbito de las enfermedades cardiovasculares.

El Framingham Heart Study (FHS), fruto de la colaboración entre National Heart, Lung and Blood Institute y la Universidad de Boston, es un estudio prospectivo de base poblacional que comenzó en Framingham en 1948 con la premisa de que, durante los 68 años de investigaciones que ha durado, se recogieran datos sobre las enfermedades cardiovasculares y sus factores predisponentes. Actualmente está incluida la tercera generación de participantes, nietos de los primeros voluntarios.

El estudio Framingham surge en un contexto y un momento que lo hicieron posible. En primer lugar hay que situar la importancia creciente de las enfermedades cardiovasculares. Durante las décadas de 1930s a 1950s se había logrado el control de las enfermedades infecciosas gracias tanto a las medidas de saneamiento como a la mejora de las condiciones de vida y la aparición de los antibióticos. Pero ya en la década de 1950s uno de cada tres varones de los Estados Unidos padecía una enfermedad cardiovascular antes de cumplir los 60. Su prevalencia doblaba a la del cáncer y ya era la primera causa de muerte. La inquietud por esta nueva epidemia quizá se acrecentó porque el presidente Franklin D Roosevelt, que había adquirido una poliomelitis en la edad adulta y fue uno de los impulsores de la búsqueda de la vacuna, murió a causa de un problema cardiovascular.

La población objeto del estudio consistió en una muestra seleccionada de manera sistemática de personas en edades entre 30 y 59 años que se prestaran voluntariamente a participar. Conviene detenerse en el método por sus consecuencias para confirmar hipótesis Para una población de 10.000 en Framingham, se calculó que la muestra debería ser de 6.000 de los cuales 5.000 estarían libres de enfermedad, 400 desarrollarían la enfermedad en 5 años, 900 a los 10 años, 1.500 a los 15 y 2.150 a los 20 años cuando finalizaría el estudio.

Para prevenir problemas del corazón lo primero que tenemos que encontrar son los factores de riesgo, o nuestras variables independientes que vamos a utilizar en nuestro modelo, después con estos datos vamos a construir un modelo para predecir las enfermedades del corazón. Utilizando más datos vamos a validar nuestro modelo para asegurarnos que predice correctamente con otros sujetos que no pertenecen al conjunto de entrenamiento con el que se ha realizado el modelo.

Vamos predecir el riesgo a 10 años de sufrir una enfermedad coronaria, una afección en la que la placa se deposita dentro de las arterias coronarias. Estas arterias suministran sangre rica en oxígeno al músculo del corazón.

La placa está formada por grasa, colesterol, calcio y otras sustancias que se encuentran en la sangre.  El depósito de placa se produce en el transcurso de muchos años. Con el tiempo, la placa endurece y estrecha las arterias coronarias, con lo cual se limita el flujo de sangre rica en oxígeno que llega al músculo cardíaco.

Captura de pantalla de 2017-09-13 20-03-31

Fuente: National Heart, Lung, and Blood Institute

Vamos a utilizar un modelo de regresión logística para determinar la probabilidad de padecer una enfermedad coronaria. Antes de construirlo necesitamos identificar cuales van a ser las variables independientes o los factores de riesgo. Estas variables aumentarán la probabilidad de sufrir una enfermedad. Identificar estos factores será la clave para que el modelo prediga con exactitud.

P(y=1) =>Probabilidad del riesgo a 10 años de sufrir una enfermedad coronaria

Hay que tener en cuenta que vamos a utilizar los datos que se recogieron por primera vez con las primeras encuestas, entre ellos se encuentran:

  • el sexo
  • la edad
  • la educación:colegio,  instituto, universidad
  • comportamientos: fumador, cigarrillos/dia, etc
  • historial médico: diabetes, presión arterial, hipertensión, etc
  • examinación: colesterol, índice de masa corporal, glucosa en sangre.

4. Construir modelo de regresión logística con R

El modelo se construye con R, en el siguiente enlace puedes ver un documento de como hacerlo: Rpub: Ejemplo de Regresión Logística

El dataset se puede descarga desde el siguiente enlace. La fuente original de los datos es la siguiente BioLINCC website.

5. Entendiendo el modelo

Para comprobar la diferencia entre modelos hay que tener en cuenta el parámetro AIC, cuanto más bajo mejor será el modelo.

> framinghamLog = glm(TenYearCHD ~ ., data = train, family = binomial)
> summary(framinghamLog)

Call:
glm(formula = TenYearCHD ~ ., family = binomial, data = train)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.8487  -0.6007  -0.4257  -0.2842   2.8369  

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)     -7.886574   0.890729  -8.854  < 2e-16 ***
male             0.528457   0.135443   3.902 9.55e-05 ***
age              0.062055   0.008343   7.438 1.02e-13 ***
education       -0.058923   0.062430  -0.944  0.34525    
currentSmoker    0.093240   0.194008   0.481  0.63080    
cigsPerDay       0.015008   0.007826   1.918  0.05514 .  
BPMeds           0.311221   0.287408   1.083  0.27887    
prevalentStroke  1.165794   0.571215   2.041  0.04126 *  
prevalentHyp     0.315818   0.171765   1.839  0.06596 .  
diabetes        -0.421494   0.407990  -1.033  0.30156    
totChol          0.003835   0.001377   2.786  0.00533 ** 
sysBP            0.011344   0.004566   2.485  0.01297 *  
diaBP           -0.004740   0.008001  -0.592  0.55353    
BMI              0.010723   0.016157   0.664  0.50689    
heartRate       -0.008099   0.005313  -1.524  0.12739    
glucose          0.008935   0.002836   3.150  0.00163 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2020.7  on 2384  degrees of freedom
Residual deviance: 1792.3  on 2369  degrees of freedom
  (371 observations deleted due to missingness)
AIC: 1824.3

Threshold

Cuando predecimos con un modelo de regresión logística generamos valores en forma de probabilidad para la variable dependiente entre 0 y 1. Para decidir si estos valores serán un 0 o un 1, debemos establecer un umbral de discriminación.

Este umbral se denomina threshold. Si la probabilidad de padecer una enfermedad coronaria es superior a este valor, entonces predecimos que si que desarrollará una enfermedad coronaria, por el contrario si la probabilidad esta por debajo, entonces predecimos que no desarrollará una enfermedad coronaria.

¿Cuál es el valor adecuado para el threshold ? Dependerá de cada caso:

  • si es un valor alto, entonces la probabilidad de que y=1, es decir, que desarrolle una enfermedad coronaria es más alta. Mas errores del tipo: “Usted no tendrá enfermedad coronaria”, cuando si que la va a desarrollar.
  • si es un valor bajo, entonces la probabilidad de que desarrolle una enfermedad coronaria sera más baja. Mas errores del tipo:”Usted desarrollará una enfermedad coronaria”, cuando no la va a tener.

Dependiendo de este valor generaremos más errores de tipo I o de tipo II. Los errores de tipo I son llamados falsos positivos, y son aquellos que se predice 1 cuando en realidad era 0. Los errores de tipo II también llamados falsos negativos son aquellos que se predice 0 cuando en realidad era 1.

Esto se entiende mejor visualizando la matriz de confusión.

> table(test$TenYearCHD, predictTest > 0.5)
   
    FALSE TRUE
  0  1069    6
  1   187   11

Precisión: aciertos / casos totales. (1069 + 11)/(1069 + 11 + 187 + 6) = 0.84
Sensibilidad = Verdadero Positivo / (Verdadero Positivo + Falso Negativo) = 11/(11+6)=0.64
Especifidad = Verdadero Negativo/(Verdadero Negativo+Falso Positivo) = 1069/(1069+187) = 0.85

A mayor valor del threshold, mayor especifidad y menor sensibilidad.
A menor valor del threshold, menor especifidad y mayor sensibilidad.

Este valor por lo tanto dependerá de cada caso en particular, y se escogerá cual de los errores penaliza más, para intentar minimizarlo.

Curva ROC

Siempre es un reto elegir el valor del threshold, para ello podemos ayudarnos de la curva ROC (Receiver Operator Characteristic), que nos va a decir cual es el mejor valor para el establecerlo.

Es una representación gráfica de la sensibilidad, o tasa de positivos, frente a la especificidad, o tasa de falsos negativos, para un sistema clasificador binario según se varía el umbral de discriminación.

La curva ROC siempre empieza en el punto(0,0), que se corresponde con un threshold de 1. Con este valor, siempre se va a predecir que no vas a desarrollar una enfermedad coronaria, es lo mismo que decir que tiene una sensibilidad de 0. Pero vas a predecir todos los casos que no tengan enfermedades coronarias.

threshold-graphics

Otra interpretación de este gráfico es la representación del ratio de verdaderos positivos frente al ratio de falsos positivos también según se varía el umbral de discriminación (valor a partir del cual decidimos que un caso es un positivo).

Área bajo la curva ROC (AUC)

Una de las preguntas recurrentes que nos hacemos cuando construimos un modelo de regresión logística, es saber si el modelo es bueno o no. Existe una forma para entender si  un modelo es mejor que otro utilizando el “Area Under the Curve”.

El AUC muestra una medida absoluta de la calidad de las predicciones. Ilustra cuan de preciso es el modelo. El ejemplo anterior representa la curva ROC, el área que queda bajo ella es lo que se conoce como AUC, en el ejemplo anterior AUC=0.74. Una AUC de 1, o visto en porcentaje un 100%, representaría una tasa de aciertos perfecta, se tienen una medida que ilustra lo preciso que puede llegar a ser un modelo.

Si la curva ROC estuviera representada por la recta y=x, las probabilidades de acierto serian del 50%, y sería como tirar una moneda al aire.

Conclusión

Como hemos visto con R, el modelo de regresión logística construido tiene ciertas propiedades:

  • Rara vez se predijo el riesgo de sufrir una enfermedad coronaria a 10 años por encima del 50%.
    • La precisión del modelo fue muy cercana a la linea base.
  • El modelo puede diferenciar entre pacientes de bajo riesgo y pacientes de alto riesgo muy bien, por que tiene un AUC=0.74
  • Existen ciertas variables que sugieren una intervención para controlar las enfermedades coronarias. Hemos visto que cuantos más cigarros al día, mayor colesterol, mayor presión sanguínea sistólica incrementan el riesgo de sufrir alguna enfermedad coronaria.

Un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s