Saltar al contenido
Métodos de Econometría Aplicada con Python

Modelos de elección discreta: logit y probit en Python.

Introducción

Los modelos de elección discreta son fundamentales en la estadística aplicada, especialmente en áreas como la investigación social y de marketing, donde se estudia cómo las personas toman decisiones entre diferentes opciones disponibles. Dos de los modelos más comunes para analizar datos de elección discreta son el modelo Logit y el modelo Probit.

Modelo Logit:

El modelo Logit se utiliza cuando la decisión del individuo implica elegir entre dos opciones mutuamente excluyentes (por ejemplo, comprar o no comprar, votar sí o no). Este modelo se basa en la función de probabilidad logística, que transforma los valores de entrada en probabilidades que oscilan entre 0 y 1. En este contexto, el modelo Logit identifica las variables explicativas que influyen significativamente en la probabilidad de que un individuo elija una opción sobre otra. Es especialmente útil para modelar variables dependientes binarias.

Modelo Probit:

El modelo Probit es similar al Logit en términos de aplicación y propósito, pero utiliza la función de probabilidad acumulada de una distribución normal estándar en lugar de la función logística. Esto permite modelar decisiones que implican más de dos opciones, ya que la función Probit puede manejar variables dependientes que no son necesariamente binarias.

Implementación en Python:

En Python, hay varias bibliotecas que facilitan la implementación y el uso de estos modelos de elección discreta:

  • statsmodels: Es una biblioteca estadística que incluye implementaciones de modelos Logit y Probit. Permite ajustar estos modelos a los datos y realizar inferencias estadísticas sobre los coeficientes estimados.

  • scikit-learn: Aunque se centra principalmente en aprendizaje automático, scikit-learn también ofrece soporte para algunos tipos de modelos de elección discreta, especialmente para problemas más complejos que involucran múltiples clases de respuesta.

  • numpy: Es una biblioteca fundamental para operaciones matemáticas y numéricas en Python. A menudo se usa en combinación con otras bibliotecas para el manejo eficiente de datos y cálculos requeridos por los modelos de elección discreta.

Aplicaciones y Significancia:

Los modelos de elección discreta son herramientas esenciales en econometría y otras disciplinas donde se analizan preferencias y decisiones individuales. Permiten entender cómo diferentes factores influencian las decisiones y cómo estas decisiones pueden variar en diferentes contextos. Además, estos modelos proporcionan una base sólida para realizar predicciones sobre comportamientos futuros basados en variables explicativas relevantes.

En resumen, tanto el modelo Logit como el modelo Probit son técnicas poderosas para modelar y analizar datos de elección discreta en Python, proporcionando a los investigadores y analistas herramientas robustas para explorar y entender las preferencias de los individuos en diversas situaciones y contextos.

Resumen

Modelos Logit y Probit en Python con Statsmodels

En este ejemplo, implementaremos modelos Logit y Probit para analizar la elección de una marca de galletas entre dos opciones, A y B, utilizando datos de precio, calidad y publicidad.

import pandas as pd
import statsmodels.api as sm
from sklearn.model_selection import train_test_split

# Crear data frame con los datos
data = pd.DataFrame({
    'Price': [2, 1.5, 3, 2.5, 2, 2.5, 2, 1.5, 3, 2.5],
    'Quality': [8, 7, 9, 10, 6, 7, 8, 8, 9, 7],
    'Advertising': [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000],
    'Choice': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
})

# Separar los datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(data[['Price', 'Quality', 'Advertising']], data['Choice'], test_size=0.25)

# Crear el modelo Logit
logit_model = sm.Logit(y_train, sm.add_constant(X_train))

# Entrenar el modelo
result_logit = logit_model.fit()

# Obtener las predicciones del modelo para los datos de prueba
y_pred_logit = result_logit.predict(sm.add_constant(X_test))

# Imprimir resultados del modelo Logit
print(result_logit.summary())

En este código:

  • Se importa `pandas` para la manipulación de datos y `statsmodels` para el modelo Logit.
  • Se crea un DataFrame `data` con variables independientes como `Price`, `Quality` y `Advertising`, junto con la variable dependiente `Choice` (1 para opción A, 0 para opción B).
  • Se separan los datos en conjuntos de entrenamiento (`X_train`, `y_train`) y prueba (`X_test`, `y_test`).
  • Se utiliza `sm.Logit` para construir el modelo Logit, especificando `y_train` como la variable dependiente y `X_train` como las variables independientes.
  • Se entrena el modelo con `logit_model.fit()` y se obtienen predicciones para `X_test` usando `result_logit.predict()`.
  • Se imprime el resumen del modelo Logit con `result_logit.summary()`.
Aplicación teórica

Introducción a los Modelos de Elección Discreta

Los modelos de elección discreta son una clase de modelos estadísticos utilizados para analizar y predecir decisiones en las que los individuos o agentes eligen entre un conjunto finito de alternativas. Estos modelos son fundamentales en econometría, marketing, ciencias sociales, y muchos otros campos donde se estudian elecciones o decisiones categóricas.

1. Fundamentos de los Modelos de Elección Discreta

En un modelo de elección discreta, se asume que los individuos enfrentan una elección entre varias alternativas y que sus decisiones pueden ser modeladas como una función de variables observables y no observables.

1.1. Especificación del Modelo

Consideremos un escenario en el que un individuo debe elegir entre \( J \) alternativas. Cada alternativa \( j \) tiene un valor o utilidad asociada, que el individuo utiliza para tomar su decisión. La utilidad de la alternativa \( j \) para el individuo \( i \) se denota como \( U_{ij} \), y puede descomponerse en una parte observable y una parte no observable:

\[
U_{ij} = V_{ij} + \epsilon_{ij}
\]

Donde:
- \( V_{ij} \) es la utilidad observada, que depende de las características observables del individuo y de la alternativa.
- \( \epsilon_{ij} \) es el término de error no observable, que captura factores no observados que afectan la elección.

1.2. Elección de la Alternativa

El individuo elige la alternativa que maximiza su utilidad. Así, la probabilidad de que el individuo \( i \) elija la alternativa \( j \) se puede expresar como:

\[
P_{ij} = \Pr(U_{ij} > U_{ik} \text{ para } k \neq j)
\]

2. Modelos de Elección Discreta Clásicos

2.1. Modelo Logit

El modelo logit es uno de los modelos de elección discreta más utilizados. En el modelo logit, se asume que el término de error \( \epsilon_{ij} \) sigue una distribución logística, lo que lleva a una forma particular de la función de probabilidad.

La utilidad \( V_{ij} \) se especifica como una combinación lineal de variables explicativas:

\[
V_{ij} = \beta^\top X_{ij}
\]

Donde \( X_{ij} \) son las variables explicativas y \( \beta \) son los parámetros a estimar.

La probabilidad de que el individuo \( i \) elija la alternativa \( j \) se calcula como:

\[
P_{ij} = \frac{e^{\beta^\top X_{ij}}}{\sum_{k=1}^J e^{\beta^\top X_{ik}}}
\]

2.2. Modelo Probit

En el modelo probit, se asume que el término de error \( \epsilon_{ij} \) sigue una distribución normal estándar. La utilidad \( V_{ij} \) se especifica de manera similar a como se hace en el modelo logit.

La probabilidad de que el individuo \( i \) elija la alternativa \( j \) se calcula como:

\[
P_{ij} = \Phi\left(\frac{\beta^\top X_{ij} - \beta^\top X_{ik}}{\sigma}\right)
\]

donde \( \Phi \) es la función de distribución acumulativa de la normal estándar y \( \sigma \) es la desviación estándar del término de error.

3. Estimación de Parámetros

3.1. Método de Máxima Verosimilitud

Para ambos modelos, los parámetros se estiman generalmente usando el método de máxima verosimilitud. La función de verosimilitud para el modelo logit, por ejemplo, es:

\[
L(\beta) = \prod_{i=1}^N \prod_{j=1}^J \left(P_{ij}\right)^{\delta_{ij}}
\]

donde \( \delta_{ij} \) es una variable indicadora que toma el valor de 1 si la alternativa \( j \) es elegida por el individuo \( i \) y 0 en caso contrario.

3.2. Ejemplo de Estimación

Supongamos que queremos modelar la elección de un tipo de transporte (auto, bicicleta, transporte público) basado en variables como el costo y el tiempo. El modelo logit para esta elección puede especificarse como:

\[
P_{ij} = \frac{e^{\beta_0 + \beta_1 \text{Costo}_{ij} + \beta_2 \text{Tiempo}_{ij}}}{\sum_{k=1}^3 e^{\beta_0 + \beta_1 \text{Costo}_{ik} + \beta_2 \text{Tiempo}_{ik}}}
\]

Los parámetros \( \beta_0 \), \( \beta_1 \), y \( \beta_2 \) se estiman mediante máxima verosimilitud.

4. Aplicaciones de los Modelos de Elección Discreta

4.1. Marketing

En marketing, estos modelos ayudan a entender las preferencias de los consumidores y a predecir la demanda de productos en función de características del producto y del consumidor.

4.2. Economía y Transporte

En economía y transporte, se utilizan para modelar las elecciones entre diferentes modos de transporte, teniendo en cuenta factores como el costo, el tiempo, y las características del transporte.

5. Conclusión

Los modelos de elección discreta proporcionan un marco poderoso para analizar decisiones en las que los individuos eligen entre un conjunto finito de alternativas. El modelo logit y el modelo probit son dos de las especificaciones más comunes, cada uno con sus propias suposiciones sobre la distribución del término de error. La estimación de parámetros se realiza generalmente mediante el método de máxima verosimilitud, y estos modelos encuentran aplicaciones en una amplia gama de campos.
 

Modelo logit
 

El modelo logit es uno de los modelos de elección discreta más ampliamente utilizados para analizar decisiones en las que los individuos eligen entre un conjunto finito de alternativas. Se basa en una función de probabilidad que utiliza una distribución logística para modelar las elecciones.

1. Fundamentos del Modelo Logit

1.1. Especificación del Modelo

En el modelo logit, se asume que la utilidad de la alternativa \( j \) para el individuo \( i \) está compuesta por una parte observada y una parte no observada:

\[
U_{ij} = V_{ij} + \epsilon_{ij}
\]

Donde:
- \( U_{ij} \) es la utilidad total de la alternativa \( j \) para el individuo \( i \).
- \( V_{ij} \) es la utilidad observada, que depende de las características observables de la alternativa \( j \) y del individuo \( i \).
- \( \epsilon_{ij} \) es el término de error no observado que sigue una distribución logística.

La utilidad observada \( V_{ij} \) se especifica generalmente como una combinación lineal de variables explicativas:

\[
V_{ij} = \beta^\top X_{ij}
\]

Donde \( X_{ij} \) son las variables explicativas asociadas a la alternativa \( j \) y \( \beta \) es el vector de coeficientes a estimar.

1.2. Función de Probabilidad

El modelo logit se basa en la distribución logística de \( \epsilon_{ij} \). La probabilidad de que el individuo \( i \) elija la alternativa \( j \) se calcula como:

\[
P_{ij} = \Pr(\text{elección } j) = \frac{e^{V_{ij}}}{\sum_{k=1}^J e^{V_{ik}}}
\]

Sustituyendo \( V_{ij} = \beta^\top X_{ij} \):

\[
P_{ij} = \frac{e^{\beta^\top X_{ij}}}{\sum_{k=1}^J e^{\beta^\top X_{ik}}}
\]

Donde:
- \( \beta^\top X_{ij} \) es la utilidad observada de la alternativa \( j \) para el individuo \( i \).
- El denominador suma las utilidades de todas las alternativas disponibles para normalizar la probabilidad.

2. Estimación del Modelo Logit

2.1. Método de Máxima Verosimilitud

La estimación de los parámetros del modelo logit se realiza mediante el método de máxima verosimilitud. La función de verosimilitud se basa en las probabilidades de elección observadas para cada individuo y alternativa:

\[
L(\beta) = \prod_{i=1}^N \prod_{j=1}^J \left(P_{ij}\right)^{\delta_{ij}}
\]

Donde:
- \( \delta_{ij} \) es una variable indicadora que toma el valor 1 si el individuo \( i \) elige la alternativa \( j \) y 0 en caso contrario.
- \( N \) es el número total de individuos.

La función de log-verosimilitud es:

\[
\ell(\beta) = \sum_{i=1}^N \sum_{j=1}^J \delta_{ij} \ln(P_{ij})
\]

El objetivo es encontrar el valor de \( \beta \) que maximiza esta función de log-verosimilitud.

2.2. Ejemplo de Estimación

Supongamos que estamos analizando las elecciones entre diferentes tipos de transporte (auto, bicicleta, transporte público) basadas en el costo y el tiempo. El modelo logit para esta elección puede especificarse como:

\[
P_{ij} = \frac{e^{\beta_0 + \beta_1 \text{Costo}_{ij} + \beta_2 \text{Tiempo}_{ij}}}{\sum_{k=1}^3 e^{\beta_0 + \beta_1 \text{Costo}_{ik} + \beta_2 \text{Tiempo}_{ik}}}
\]

Aquí, \( \beta_0 \), \( \beta_1 \), y \( \beta_2 \) son los parámetros a estimar, y \( \text{Costo}_{ij} \) y \( \text{Tiempo}_{ij} \) son las variables explicativas.

3. Propiedades del Modelo Logit

3.1. Independencia de Alternativas Irrelevantes (IIA)

Una característica clave del modelo logit es el supuesto de independencia de alternativas irrelevantes (IIA). Esto implica que la relación de probabilidad entre dos alternativas no se ve afectada por la presencia o ausencia de otras alternativas en el conjunto. Formalmente, para dos alternativas \( j \) y \( k \), la razón de probabilidades se mantiene constante si se agregan o eliminan otras alternativas:

\[
\frac{P_{ij}}{P_{ik}} = \text{constante} \text{ para } j, k
\]

3.2. Interpretación de Coeficientes

En el modelo logit, los coeficientes \( \beta \) se interpretan en términos de sus efectos sobre el logaritmo de las probabilidades relativas. Si el coeficiente \( \beta_j \) para una variable \( X_j \) es positivo, un aumento en \( X_j \) incrementará la probabilidad de elegir la alternativa correspondiente.

4. Aplicaciones del Modelo Logit

4.1. Marketing

El modelo logit se utiliza para prever cómo los consumidores eligen entre diferentes productos o marcas, basándose en atributos del producto y características del consumidor.

4.2. Transporte

Se emplea para modelar las decisiones de transporte entre diferentes modos, como auto, bicicleta o transporte público, teniendo en cuenta el costo, el tiempo y otras variables relevantes.

4.3. Política

Se aplica para analizar las elecciones de los votantes entre diferentes candidatos o partidos, considerando variables como las plataformas políticas y las características de los candidatos.

5. Conclusión

El modelo logit es una herramienta poderosa para analizar decisiones discretas, permitiendo modelar la probabilidad de elección entre alternativas en función de características observables. Su capacidad para manejar la distribución logística de errores y la interpretación directa de coeficientes hacen que sea ampliamente utilizado en diversas aplicaciones. Sin embargo, el supuesto de independencia de alternativas irrelevantes (IIA) es una limitación que debe considerarse al aplicar el modelo en contextos donde las alternativas son interdependientes.

 

Modelo probit

El modelo probit es otro tipo de modelo de elección discreta que se utiliza para modelar decisiones en las que se elige entre un conjunto finito de alternativas. A diferencia del modelo logit, que asume una distribución logística para el término de error, el modelo probit asume que el término de error sigue una distribución normal estándar.

1. Fundamentos del Modelo Probit

1.1. Especificación del Modelo

Al igual que en el modelo logit, la utilidad de la alternativa \( j \) para el individuo \( i \) en el modelo probit se descompone en una parte observable y una parte no observable:

\[
U_{ij} = V_{ij} + \epsilon_{ij}
\]

Donde:
- \( U_{ij} \) es la utilidad total de la alternativa \( j \) para el individuo \( i \).
- \( V_{ij} \) es la utilidad observada, que depende de las características observables de la alternativa \( j \) y del individuo \( i \).
- \( \epsilon_{ij} \) es el término de error no observado que sigue una distribución normal estándar \( \mathcal{N}(0,1) \).

La utilidad observada \( V_{ij} \) se especifica como una combinación lineal de variables explicativas:

\[
V_{ij} = \beta^\top X_{ij}
\]

Donde \( X_{ij} \) son las variables explicativas asociadas a la alternativa \( j \) y \( \beta \) es el vector de coeficientes a estimar.

1.2. Función de Probabilidad

En el modelo probit, se asume que el término de error \( \epsilon_{ij} \) sigue una distribución normal estándar. La probabilidad de que el individuo \( i \) elija la alternativa \( j \) se calcula como:

\[
P_{ij} = \Pr(\text{elección } j) = \Pr(U_{ij} > U_{ik} \text{ para } k \neq j)
\]

Esto se puede escribir como:

\[
P_{ij} = \Pr\left(\beta^\top X_{ij} + \epsilon_{ij} > \beta^\top X_{ik} + \epsilon_{ik} \text{ para } k \neq j \right)
\]

La probabilidad se calcula usando la función de distribución acumulativa (CDF) de la normal estándar \( \Phi \):

\[
P_{ij} = \Phi\left(\frac{\beta^\top X_{ij} - \beta^\top X_{ik}}{\sigma}\right)
\]

donde \( \Phi \) es la función de distribución acumulativa de la normal estándar y \( \sigma \) es la desviación estándar del término de error.

2. Estimación del Modelo Probit

2.1. Método de Máxima Verosimilitud

La estimación de los parámetros del modelo probit se realiza mediante el método de máxima verosimilitud. La función de verosimilitud se basa en las probabilidades de elección observadas para cada individuo y alternativa.

La función de verosimilitud para el modelo probit es:

\[
L(\beta) = \prod_{i=1}^N \prod_{j=1}^J \left(P_{ij}\right)^{\delta_{ij}}
\]

donde:
- \( \delta_{ij} \) es una variable indicadora que toma el valor 1 si el individuo \( i \) elige la alternativa \( j \) y 0 en caso contrario.
- \( N \) es el número total de individuos.

La función de log-verosimilitud es:

\[
\ell(\beta) = \sum_{i=1}^N \sum_{j=1}^J \delta_{ij} \ln(P_{ij})
\]

El objetivo es encontrar el valor de \( \beta \) que maximiza esta función de log-verosimilitud.

2.2. Ejemplo de Estimación

Supongamos que estamos analizando las decisiones de un consumidor entre diferentes tipos de productos (por ejemplo, productos de lujo, estándar, y económicos), basadas en características como el precio y la calidad. La especificación del modelo probit podría ser:

\[
P_{ij} = \Phi\left(\frac{\beta_0 + \beta_1 \text{Precio}_{ij} + \beta_2 \text{Calidad}_{ij} - \beta_0 - \beta_1 \text{Precio}_{ik} - \beta_2 \text{Calidad}_{ik}}{\sigma}\right)
\]

Aquí, \( \beta_0 \), \( \beta_1 \), y \( \beta_2 \) son los parámetros a estimar, y \( \text{Precio}_{ij} \) y \( \text{Calidad}_{ij} \) son las variables explicativas.

3. Propiedades del Modelo Probit

3.1. Interpretación de Coeficientes

En el modelo probit, los coeficientes \( \beta \) no tienen una interpretación directa en términos de efectos marginales sobre las probabilidades, como ocurre en el modelo logit. Sin embargo, los coeficientes se pueden utilizar para calcular los efectos marginales de las variables explicativas sobre la probabilidad de elegir una alternativa.

3.2. Comparación con el Modelo Logit

- Distribución del Error: El modelo probit asume una distribución normal para el error, mientras que el modelo logit asume una distribución logística.
- Propiedad IIA: Ambos modelos asumen la propiedad de independencia de alternativas irrelevantes (IIA), aunque el modelo logit tiende a ser más sensible a este supuesto.

4. Aplicaciones del Modelo Probit

4.1. Medicina

En medicina, el modelo probit se usa para analizar la elección de tratamientos o la respuesta a tratamientos basados en características del paciente y del tratamiento.

4.2. Ciencias Sociales

Se utiliza para estudiar decisiones como la elección de carrera o la participación en actividades sociales, teniendo en cuenta variables socioeconómicas.

4.3. Finanzas

En finanzas, el modelo probit puede ayudar a modelar la probabilidad de quiebra o de incumplimiento de crédito en función de variables financieras y económicas.

5. Conclusión

El modelo probit es una herramienta útil para analizar decisiones discretas donde los términos de error siguen una distribución normal. Ofrece una alternativa al modelo logit, con la principal diferencia en la distribución del término de error. Aunque los coeficientes del modelo probit no tienen una interpretación directa en términos de probabilidades, el modelo proporciona una forma robusta de modelar elecciones y decisiones en diversas aplicaciones.

 

Aplicación práctica

Implementación de Modelos de Elección Discreta Logit y Probit en Python

Primero, debemos asegurarnos de tener instalado statsmodels. Podemos hacerlo con el siguiente comando:

!pip install statsmodels

Luego, podemos crear un conjunto de datos ficticios para nuestro ejemplo:

import pandas as pd
import numpy as np

# Creamos un conjunto de datos ficticio con 3 variables explicativas
# (edad, ingreso y educación) y una variable dependiente binaria (1 si realiza
# una compra y 0 si no)
edad = np.random.normal(40, 10, 1000)
ingreso = np.random.lognormal(8, 1, 1000)
educación = np.random.normal(10, 2, 1000)
compra = np.random.binomial(1, 0.3, 1000)
datos = pd.DataFrame({'edad': edad, 'ingreso': ingreso, 'educación': educación, 'compra': compra})

A continuación, podemos ajustar nuestro modelo de elección discreta de Logit utilizando la función Logit y obtener los resultados con el método fit:

from statsmodels.discrete.discrete_model import Logit

# Separamos nuestra variable dependiente de las explicativas
x = datos[['edad', 'ingreso', 'educación']]
y = datos['compra']

# Ajustamos el modelo Logit
modelo_logit = Logit(y, x).fit()

# Mostramos los resultados
print(modelo_logit.summary())

Para el modelo de elección discreta Probit, es muy similar al anterior, simplemente cambia la función que se utiliza:

from statsmodels.discrete.discrete_model import Probit

# Separamos nuestra variable dependiente de las explicativas
x = datos[['edad', 'ingreso', 'educación']]
y = datos['compra']

# Ajustamos el modelo Probit
modelo_probit = Probit(y, x).fit()

# Mostramos los resultados
print(modelo_probit.summary())

Espero que esto te haya sido útil. Recuerda que hay muchas otras funciones y métodos en statsmodels para análisis de datos, regresiones y otras técnicas de modelado.