Regresión logística

Diego Solís Delgadillo

Estadística para las Ciencias Sociales

Regresión Logística

  • Cuando la variable dependiente es categórica utilizamos modelos de regresión logística.
  • En este modelo los posibles resultados son sólo dos: 0 o 1.
  • Esta proporción representa la probabilidad de que un sujeto seleccionado aleatoriamente presente el resultado de interés.
  • El modelo describe cómo \(p\) depende de los valores que tomen las variables explicativas.

Representación matemática

\[ p = \alpha + \beta x \]

Probabilidad y posibilidades

  • La probabilidad consiste en:

\[ {Probabilidad} = \frac{\text{Resultado de interés}}{\text{Todos los posibles resultados}} \]

  • La probabilidad de obtener un tres al tirar un dado es:

\[p(3) = \frac{1}{6} = 0.16\]

¿Qué son las odds?

  • Las posibilidades (odds) consisten en:

\[{Posibilidad} = \frac{\text{Probabilidad de ocurrencia}}{\text{Probabilidad de no ocurrencia}}\]

  • La posibilidad de obtener un dos al tirar un dado es:

\[ \text{odds}(2) = \frac{0.16}{0.84} = 1:5.25\]

Comparación de posibilidades

  • Es posible comparar dos posibilidades.
  • Por ejemplo, tenemos un dado justo y un dado cargado con tres números 2.
  • La probabilidad de obtener 2 en ese dado es \(\frac{1}{2}\) y sus posibilidades son:

\[ \frac{0.50}{0.50} = 1\]

Razón de momios

  • La razón de momios se expresa como:

\[\frac{\text{odds}_1}{\text{odds}_0} \quad \text{o} \quad \frac{\frac{p_1}{1 - p_1}}{\frac{p_0}{1 - p_0}}\]

  • Por lo tanto:

\[\frac{0.50 / (1 - 0.50)}{0.16 / (1 - 0.16)} = \frac{0.50}{0.50} \cdot \frac{0.16}{0.84} = \frac{0.08}{0.42} = 1 : 5.25 \] :::

Interpretación

  • Esto quiere decir que las posibilidades de obtener un 2 en el dado cargado son 5 veces más altas comparadas con el dado justo.

Interpretación logit

  • En una regresión logística, la razón de momios representa cómo cambian las posibilidades con el aumento de una unidad en \(X\)
    manteniendo las demás variables constantes.

Ejemplo aplicado

  • Supongamos que queremos explicar por qué la gente vota por el partido republicano codificado como [1, 0], y una variable explicativa es ser blanco, también codificada como [1, 0].

  • Si obtenemos una razón de momios de 1.22:

Tip

  • Esto significaría que las personas blancas tienen una posibilidad 22% superior de votar por el partido republicano que las personas no blancas.

¿Por qué regresión logística?

  • Cuando tenemos una variable dependiente dicotómica, no podemos utilizar un modelo de regresión lineal.

  • En estos casos, solemos tener variables que toman dos valores de tipopresencia/ausencia o éxito/fracaso.

  • Existe una probabilidad de éxito \(p\) y de fracaso igual a \(1 - p\).

  • En una regresión logística estimamos una \(p\) desconocida dada una combinación de variables —estamos calculando \(\hat{p}\).

¿Qué hace el modelo logit?

  • Para vincular a las variables necesitamos una función que
    sea capaz de mapear las probabilidades en un dominio de 0 a 1.

  • Para crear esa función se toma el logaritmo natural de la razón de momios, a eso nos referimos con el modelo logit.

  • Esto se expresa como: \[\ln(\text{odds}) = \ln\left(\frac{p}{1 - p}\right) \]

Propiedades del logit

  • Si \(p = 0\), entonces \(\frac{0}{1} = 0\) y \(\ln(0)\) = indefinido

  • Si \(p = 1\), entonces \(\frac{1}{0}\) = indefinido y \(\ln(∞)\) = indefinido

  • Otra característica es que cuando las probabilidades son iguales (0.5), el logit es igual a cero:

\[ \ln\left(\frac{0.5}{1 - 0.5}\right) = \ln(1) = 0\]

¿Cómo obtenemos la probabilidad?

  • En la función logit anterior, los valores de la variable dependiente se expresan como el logaritmo de la razón de momios.

  • Pero lo que nos interesa son las probabilidades de ocurrencia de \(Y\).

  • Esto se logra tomando el inverso de la función logit:

\[ p = \frac{1}{1 + e^{-(\alpha + \beta x)}} \]

De log odds a probabilidades (i)

  • Partimos de la ecuación del modelo logit: \[\log\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 X_1 \]

  • Exponenciamos en ambos lados: \[ \frac{p}{1 - p} = e^{\beta_0 + \beta_1 X_1} \]

  • Multiplicamos ambos lados por \((1 - p)\): \[ p = (1 - p)e^{\beta_0 + \beta_1 X_1} \]

  • Distribuimos: \[ p = e^{\beta_0 + \beta_1 X_1} - p e^{\beta_0 + \beta_1 X_1} \]

De log odds a probabilidades (ii)

  • Sumamos \(p e^{\beta_0 + \beta_1 X_1}\) a ambos lados: \[ p + p e^{\beta_0 + \beta_1 X_1} = e^{\beta_0 + \beta_1 X_1} \]

  • Factorizamos: \[ p (1 + e^{\beta_0 + \beta_1 X_1}) = e^{\beta_0 + \beta_1 X_1} \]

  • Dividimos ambos lados por \(1 + e^{\beta_0 + \beta_1 X_1}\): \[ p = \frac{e^{\beta_0 + \beta_1 X_1}}{1 + e^{\beta_0 + \beta_1 X_1}} \]

  • Esto nos da la probabilidad predicha del evento de interés.

La función logística

  • Gráficamente, al transformar el log de la razón de momios a probabilidades, obtenemos una función con forma de S.

  • Conocida como la función Sigmoid (S).

  • Nos permite ver cómo se modifican las probabilidades de éxito conforme \(X\) aumenta.

¿Qué busca la regresión logística?

  • En modelos logísticos, estimamos la probabilidad de que ocurra un evento \(Y=1\).

  • El modelo utiliza máxima verosimilitud (MLE) para encontrar los parámetros que hacen más probables los datos observados.

  • Es decir, MLE busca los valores de los coeficientes que maximizan la probabilidad conjunta de observar los resultados reales (\(Y=0\) o \(Y=1\)) dados los valores de las variables explicativas.

Coeficientes

  • La escala de valores de \(y\) en la regresión logística es el logaritmo de la razón de momios.

  • Al igual que en la regresión lineal, si dividimos el coeficiente entre su error estándar obtenemos un valor crítico en una prueba que se llama Wald.

  • Este valor nos indica qué tan atípico sería el coeficiente estimado si la hipótesis nula (\(\beta = 0\)) fuera cierta.

  • El coeficiente \(\beta\) nos dice cuánto aumenta el log de la razón de momios ante un incremento de una unidad en la variable \(x\).

Probabilidad predicha

  • Conociendo los valores de \(\beta_0\) y \(\beta_1\), podemos estimar el valor esperado de \(\hat{p}\) mediante:

\[\hat{p} = \frac{e^{\beta_0 + \beta_1 X_1}}{1 + e^{\beta_0 + \beta_1 X_1}} \]

Probabilidad predicha

  • Utilizando los coeficientes estimados, podemos sustituir:

\[\hat{p} = \frac{e^{-2.19 + 0.09 X_1}}{1 + e^{-2.19 + 0.09 X_1}} \]

Ejemplo candidatos independientes

  • Donde \(\hat{p}\) representa la probabilidad de que aparezca un candidato independiente,y \(X_1\) es el porcentaje de personas con educación superior.

¿Cómo se calcula \(\beta\)? (MLE)

  • Se usa máxima verosimilitud: elegimos los \(\beta\) que maximizan la probabilidad de observar los datos.

Paso a paso: cálculo de \(\beta\)

Datos:

X Y
0 0
1 0
2 1
3 1

Modelo: \[ \log\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 X \]

Paso 2: Proponemos valores iniciales

  • Supongamos \(\beta_0 = -2\), \(\beta_1 = 1\)

Paso 3: Cálculo de probabilidades \(\hat{p}\)

Usamos: \[ \hat{p}_i = \frac{e^{\beta_0 + \beta_1 X_i}}{1 + e^{\beta_0 + \beta_1 X_i}} \]

Resultados:

  • \(X=0\): \(\hat{p}_0 \approx 0.119\)
  • \(X=1\): \(\hat{p}_1 \approx 0.269\)
  • \(X=2\): \(\hat{p}_2 = 0.5\)
  • \(X=3\): \(\hat{p}_3 \approx 0.731\)

Paso 4: ¿Qué es la log-verosimilitud?

  • La log-verosimilitud evalúa qué tan bien el modelo reproduce los datos observados.
  • Mientras mayor (menos negativa) sea, mejor es el ajuste del modelo a los datos.
  • No se interpreta en valor absoluto: se compara entre modelos.

Fórmula: \[ \ell(\beta) = \sum \left[y_i \log(\hat{p}_i) + (1 - y_i) \log(1 - \hat{p}_i)\right] \]

Paso 4 (cont.): Sustitución y resultado

X Y \(\hat{p}_i\) Término en \(\ell(\beta)\) Valor aproximado
0 0 0.119 \(\log(1 - \hat{p}_i)\) \(\log(0.881) \approx -0.127\)
1 0 0.269 \(\log(1 - \hat{p}_i)\) \(\log(0.731) \approx -0.313\)
2 1 0.5 \(\log(\hat{p}_i)\) \(\log(0.5) = -0.693\)
3 1 0.731 \(\log(\hat{p}_i)\) \(\log(0.731) \approx -0.313\)

Suma total: \[ \ell(\beta) = -0.127 - 0.313 - 0.693 - 0.313 = -1.446 \]

👉 Este valor indica el grado de ajuste para los \(\beta\) propuestos.

¿Qué es la pseudo \(R^2\)?

  • Mide cuánto mejora el modelo con predictores frente al modelo nulo.
  • Fórmula de McFadden:

\[ R^2 = 1 - \frac{\ell_{modelo}}{\ell_{nulo}} \]

Ejemplo: cálculo de pseudo \(R^2\)

Supón: - Modelo nulo: \(\ell_{nulo} = -10.5\) - Modelo con \(X\): \(\ell_{modelo} = -7.2\)

Aplicamos la fórmula:

\[ R^2 = 1 - \frac{-7.2}{-10.5} = 1 - 0.686 = 0.314 \]

👉 El modelo con \(X\) mejora el ajuste en 31.4%.

Paso 5: Probar otros valores de \(\beta\)

  • Probar otros \(\beta_0\) y \(\beta_1\)
  • Calcular nuevas \(\hat{p}_i\)
  • Repetir \(\ell(\beta)\)
  • Elegir los que maximizan la verosimilitud

Modelo logit en R

 [1] "denominación"        "num"                 "asunto"             
 [4] "psedoleg"            "tipo_pseudoleg"      "administrativa"     
 [7] "subclasificacion"    "cam_origen"          "fecha_presen"       
[10] "diputado"            "partido"             "legislatura"        
[13] "tema"                "tipo_tema"           "area_grupo"         
[16] "turnado"             "estatus"             "resultado"          
[19] "dictamen"            "constitucional"      "lagi"               
[22] "lagi_plus"           "Stakeholder"         "prominente_plus"    
[25] "prominente"          "stakeholder_plus"    "stakeholder_prime"  
[28] "grupo"               "grupo2"              "grupo3"             
[31] "grupo4"              "multiple_afiliacion" "tipo_asoc"          
[34] "diputadosXgrupo"     "mcom"                "pscomision"         
[37] "exp_leg"             "exp_num"             "exp_anos"           
[40] "edu_sup"             "posgrado"            "hombre"             
[43] "asoci"               "rp_n"                "GRUPO PRI"          
[46] "tipo_grupo"          "empresarial"         "stake_empresarial"  
[49] "sindical"            "campesino"           "civil"              
[52] "fecha"               "meses"               "tot_meses"          
[55] "p_gob"               "PRI"                 "PAN"                
[58] "PRD"                 "PVEM"                "PANAL"              
[61] "PT"                  "MC"                  "Morena"             
[64] "PES"                 "otros_partidos"      "Alternativa"        
[67] "Independiente"       "Sin partido"         "...69"              

Modelo logit en R


modelo<-glm(resultado~ exp_leg+ pscomision , data=df, family = "binomial") 

summary(modelo)

Call:
glm(formula = resultado ~ exp_leg + pscomision, family = "binomial", 
    data = df)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -2.97692    0.05692 -52.303  < 2e-16 ***
exp_leg      0.18080    0.07196   2.512    0.012 *  
pscomision   0.69995    0.08573   8.165 3.21e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 6308.9  on 13937  degrees of freedom
Residual deviance: 6244.1  on 13935  degrees of freedom
  (15 observations deleted due to missingness)
AIC: 6250.1

Number of Fisher Scoring iterations: 5