Introducción

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 \(Y\) (una variable que puede adoptar un número limitado de categorías) en función de las variables independientes o predictoras \(X_{1},...,X_{m}\). Es útil para modelar la probabilidad de un evento ocurriendo como función de otros factores.

\[ \begin{aligned} Y &= f(X_{1},X_{2},...,X_{m}) \end{aligned} \]

En particular, una de las regresiones logísticas más conocidas es la regresión logística o modelo logit binario, donde dentro de las principales aplicaciones es la clasificación binaria, en el que las observaciones se clasifican en un grupo u otro dependiendo del valor que tome la o las variables empleadas como predictores.

\[ \begin{aligned} Y &= \left\lbrace\begin{array}{c} 1 \text{ , si el cliente se queda} \\ 0\text{ , si el cliente se fuga} \end{array}\right. \end{aligned} \] Sin embargo, \(Y\) puede tomar más valores y recibe el nombre de regresión logística o modelo logit multinomial.

Desde un punto de vista interpretativo se puede el analizar una regresión logística o modelo logit puede tener dos propósitos:

  1. Predecir la probabilidad de que un evento ocurra (\(\mathbb P[Y=1| X_{1},X{2},...,X_{m}]\)) o no (\(\mathbb P[Y=0| X_{1},X{2},...,X_{m}]\)).
  2. Determinar qué variables (\(X_{1},X{2},...,X_{m}\)) pesan más para aumentar o disminuir la probabilidad de que que ocurra (\(Y=1\)).

¿Por qué regresión logística y no lineal?

Si una variable cualitativa con dos niveles se codifica como 1 y 0, matemáticamente es posible ajustar un modelo de regresión lineal por mínimos cuadrados \(\beta_{0} +\beta_{1}X_{1}\). El problema de esta aproximación es que, al tratarse de una recta, para valores extremos del predictor, se obtienen valores de Y menores que 0 o mayores que 1, lo que entra en contradicción con el hecho de que las probabilidades siempre están dentro del rango [0,1].

En el siguiente ejemplo se modela la probabilidad de permanecer en la compañía un cierto mes en función de los meses de antigüedad.

# Modelo lineal
modelo_lineal <- lm(permanece ~ old_month, data = datos)
# Representación gráfica del modelo.
ggplot(data = datos, aes(x = old_month, y = permanece)) +
  geom_point(aes(color = as.factor(permanece)), shape = 1) + 
  geom_smooth(method = "lm", color = "gray20", se = FALSE) +
  theme_bw()  +
  labs(title = "Regresión lineal por mínimos cuadrados",
       y = "Probabilidad de permanecer",
       x = "Meses de antigüedad") +
  theme(legend.position = "none")
## `geom_smooth()` using formula 'y ~ x'

Al tratarse de una recta, si por ejemplo, se predice la probabilidad de permanencia para alguien que tiene una antigüedad de 20 meses, el valor obtenido es menor que 0.

predict(object = modelo_lineal, newdata = data.frame(old_month = 20), type="response")
##           1 
## -0.01773818

Para evitar estos problemas, la regresión logística transforma el valor devuelto por la regresión lineal (\(\beta_{0} +\beta_{1}X\)) empleando una función cuyo resultado está siempre comprendido entre 0 y 1. Existen varias funciones que cumplen esta descripción, una de las más utilizadas es la función logística:

\[ \begin{aligned} \text{Función logística} &= \sigma(\alpha) = \frac{1}{1 + e^{-\alpha}} \\ \end{aligned} \]

Para valores de \(\alpha\) muy grandes positivos, el valor de \(e^{-\alpha}\) es aproximadamente 0 por lo que el valor de la función logística es 1. Para valores de \(\alpha\) muy grandes negativos, el valor \(e^{-\alpha}\) tiende a infinito por lo que el valor de la función logística es 0.

Sustituyendo la \(\alpha\) de la ecuación 1 por la función lineal (\(\beta_{0} +\beta_{1}x\)) se obtiene que:

\[ \begin{aligned} \alpha &= \beta_{0} +\beta_{1}X \\ \mathbb P(Y=k)&=\frac{1}{1 + e^{-(\beta_{0} +\beta_{1}X)}}=\frac{e^{\beta_{0} +\beta_{1}X}}{1 + e^{\beta_{0} +\beta_{1}X}} \end{aligned} \]

Donde \(P(Y=k)\) puede interpretarse como: la probabilidad de que la variable cualitativa \(Y\) adquiera el valor \(k\), dado que el predictor \(X\).

Esta función, puede ajustarse de forma sencilla con métodos de regresión lineal si se emplea su versión logarítmica, obteniendo lo que se conoce como log-odds o función logit.

\[ \begin{aligned} ln(\frac{\mathbb P(Y=k)}{1-\mathbb P(Y=k)})= \beta_{0} + \beta_{1}X \end{aligned} \]

# Ajuste de un modelo logístico.
modelo_logit <- glm(permanece ~ old_month, data = datos, family = "binomial")

# Representación gráfica del modelo.
ggplot(data = datos, aes(y = permanece, x = old_month)) +
  geom_point(aes(color = as.factor(permanece)), shape = 1) + 
  stat_function(fun = function(x){predict(modelo_logit,
                                          newdata = data.frame(old_month = x),
                                          type = "response")}) +
  theme_bw() +
  labs(title = "Modelo logit",
       y = "Probabilidad de permanencia",
       x = "Meses de antigüedad") +
  theme(legend.position = "none")

predict(object = modelo_logit, newdata = data.frame(old_month = 20), type= "response")
##            1 
## 0.0002694978
summary(modelo_logit)
## 
## Call:
## glm(formula = permanece ~ old_month, family = "binomial", data = datos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.2697  -0.1465  -0.0589  -0.0221   3.7589  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -10.651331   0.361157  -29.49   <2e-16 ***
## old_month     0.121632   0.004874   24.95   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 2920.6  on 9999  degrees of freedom
## Residual deviance: 1596.5  on 9998  degrees of freedom
## AIC: 1600.5
## 
## Number of Fisher Scoring iterations: 8

Modelo de Elección Discreta

Este apartado se encuentra fundado completamente en el libro “Discrete Choice Methods with Simulation” de Train.

Los modelos de elección discreta se derivan generalmente del supuesto de un comportamiento maximizador de la utilidad por parte del tomador de decisión. La derivación asegura que el modelo es consistente con la maximización de la utilidades y no es excluyente en cuanto a coherencia con otras formas de comportamiento. Los modelos también pueden ser vistos como una simple descripción de la relación de las variables explicativas con el resultado de una elección, sin referencia a exactamente cómo se hace la elección.

Los modelos estructurales buscan describir la probabilidad que un agente \(n\) \(\in\) \(\{1,...,N\}\) elija la alternativa \(i \in \{1,...,I\}\), asumiendo que el individuo (o la firma) decide entre alternativas y maximizando una función de utilidad \(U_{ni}\) (o beneficio \(\Pi_{ni}\)).

\[ \begin{aligned} U_{ni} &= V_{ni}(x_{ni},s_{n}) + \epsilon_{ni} \end{aligned} \]

La función de utilidad \(U_{ni}\) no es observada por el investigador, pero sí puede observar algunos atributos de la alternativa \(x_{ni}\) y otros atributos del tomador de decisión \(s_{n}\). Por lo tanto, se define una función determinística con los atributos que puede observar el investigador definida como \(V_{ni}=V_{ni}(x_{ni},s_{n})\).

Como hay aspectos que no se pueden observar, entonces \(U_{ni} \neq V_{ni}\). Por lo tanto, la utilidad puede ser desagregada en una componente determinística (\(V_{ni}\)) y otra aleatoria (\(\epsilon_{ni}\)) de la siguiente manera: \(U_{ni} = V_{ni} + \epsilon_{ni}\). La caracterización de la componente aleatoria, como su distribución, depende de las especificaciones del investigador.

Definiendo una densidad conjunta \(f(\epsilon_{n})\) del vector de lo componente aleatoria \(\epsilon_{n}^{'}=\langle \epsilon_{n1},\epsilon_{n2},...,\epsilon_{nJ} \rangle\), se puede definir la probabilidad de que el tomador de elección \(n\) escoja la variable \(i\) de la siguiente forma:

\[\begin{equation} \begin{split} P_{ni} &= \mathbb{P}(U_{ni}>U_{nj}, \forall j\neq i) \\ &= \mathbb{P}(\epsilon_{nj}-\epsilon_{ni}< V_{ni}-V_{nj}, \forall j\neq i)\\ &= \int_{\epsilon} \mathbb{I}(\epsilon_{nj}-\epsilon_{ni}< V_{ni}-V_{nj}, \forall j \neq i) f(\epsilon_{n})d\epsilon_{n} \end{split} \label{ecuacion_probabilidad_modelo_estructural} \end{equation}\]

Donde \(\mathbb{I}(\cdot)\) es la función indicatriz, la cual adquiere el valor 1 cuando la expresión entre paréntesis es verdadera y 0 en caso contrario.

Dependiendo de las distintas especificaciones que se realicen a la función de distribución de la parte estocástica o aleatoria \(f(\epsilon_{ni})\) de la utilidad \(U_{ni}\), se obtienen diveros modelos. Por ejemplo, si se supone que \(\epsilon_{ni}\) posee una distribución de valor extremo de tipo I, se obtiene un modelo logit o si se supone una distribución normal multivariada, se obtiene un modelo probit.