Business Analytics

Modelos Probit y Logit Ordenados

Author

Wilson H. Guamán L.

Published

May 24, 2025

Instalar Paquetes:

1 Cargar la base de datos

ver código
list.files("C:/Users/USUARIO 2020/Documents/Maestria_EDE_2/Mod_09_Busnicess_Analityc/BA_U1/Clase_04_25_05", pattern = "\\.dta$")
[1] "Data1_R (2).dta"
ver código
library(haven)
ruta2 <- "C:/Users/USUARIO 2020/Documents/Maestria_EDE_2/Mod_09_Busnicess_Analityc/BA_U1/Clase_04_25_05/Data1_R (2).dta"
data18 <- read_dta(ruta2)
ver código
View(data18)
head(data18)
# A tibble: 6 × 50
  area       empleo          region   edad t_hijos nac_vivo_murieron mortinato_2
  <dbl+lbl>  <dbl+lbl>       <dbl+l> <dbl>   <dbl> <dbl+lbl>         <dbl+lbl>  
1 1 [Urbano] 1 [Trabajó al … 1 [Sie…    19       1 0 [No]            0 [No]     
2 1 [Urbano] 0 [No trabajó]  1 [Sie…    23       1 0 [No]            0 [No]     
3 1 [Urbano] 1 [Trabajó al … 1 [Sie…    38       5 0 [No]            0 [No]     
4 1 [Urbano] 0 [No trabajó]  1 [Sie…    18       1 0 [No]            0 [No]     
5 1 [Urbano] 0 [No trabajó]  1 [Sie…    21       1 0 [No]            0 [No]     
6 1 [Urbano] 1 [Trabajó al … 1 [Sie…    22       1 0 [No]            0 [No]     
# ℹ 43 more variables: depresion_pp <dbl+lbl>, intensidad_dpp <dbl+lbl>,
#   etnia <dbl+lbl>, f2_s2_216_1 <dbl+lbl>, f2_s2_216_2 <dbl>,
#   f2_s2_218_1_a <dbl+lbl>, tiempo_dpp <dbl+lbl>, f2_s5_504a_1 <dbl+lbl>,
#   f2_s5_504b_1 <dbl+lbl>, f2_s5_504c_1 <dbl+lbl>, f2_s5_504d_1 <dbl+lbl>,
#   f2_s5_504e_1 <dbl+lbl>, f2_s5_504f_1 <dbl+lbl>, f2_s5_504g_1 <dbl+lbl>,
#   f2_s5_504h_1 <dbl+lbl>, f2_s5_504i_1 <dbl+lbl>, f2_s5_504j_1 <dbl+lbl>,
#   f2_s5_504k_1 <dbl+lbl>, est_civil <dbl+lbl>, q_usted <dbl+lbl>, …

2 Comparación de los modelos LOGIT y PROBIT Ordenados

En esta parte se comparan dos modelos estadísticos llamados LOGIT y PROBIT, que se usan para analizar cómo diferentes factores influyen en una decisión u orden. Se usaron las mismas variables para ambos modelos y se midió la fuerza del efecto de cada una. Luego, se calculó un valor llamado Ratio, que simplemente compara los resultados de ambos modelos dividiendo el coeficiente del LOGIT entre el del PROBIT. Esto nos ayuda a ver si los resultados cambian mucho según el modelo que se use.

Lo primero que se nota es que los valores (coeficientes) del modelo LOGIT siempre son más grandes que los del PROBIT. Esto es algo normal y tiene que ver con la forma en que cada modelo trabaja internamente: el LOGIT asume una distribución de errores un poco más amplia que el PROBIT. Por eso, sus números suelen ser mayores, pero eso no significa que uno esté bien y el otro mal; simplemente usan escalas distintas. Lo importante es que la relación entre los dos se mantiene bastante estable, con ratios entre 1.51 y 1.78.

Si miramos variable por variable, la que más diferencia muestra entre ambos modelos es la variable etnia, con un ratio de 1.78. Eso quiere decir que el LOGIT muestra un efecto más fuerte de esta variable que el PROBIT. Le siguen otras variables como la edad, el número de hijos, el idioma y los años de estudio. Aunque los números cambian, todos indican el mismo tipo de efecto. Por ejemplo, en ambos modelos, más años de estudio reducen la probabilidad de estar en una categoría más alta de la variable que estamos analizando (intensidad de depresión post parto).

Los dos modelos cuentan básicamente la misma historia: las variables influyen en la misma dirección y tienen una importancia parecida. Las diferencias en los números son normales y se deben a que cada modelo usa una escala distinta. Como los ratios se mantienen estables, podemos confiar en que las conclusiones generales no dependen del modelo elegido.

ver código
library(MASS)
library(margins)

## -----------------------------------------------------------
## 1. AJUSTE DE MODELOS (CORRECCIÓN DEL ERROR)
## -----------------------------------------------------------

# Asegurar que la variable dependiente sea un factor ordenado
data18$intensidad_dpp <- factor(data18$intensidad_dpp, 
                                levels = c("0", "1", "2"), 
                                ordered = TRUE)


# Modelo Logit Ordinal
modelo_logit <- polr(intensidad_dpp ~ lingrl + anios_esc + edad + t_hijos + etnia,
                     data = data18, 
                     method = "logistic",  # Especificación LOGIT
                     Hess = TRUE)  # Para calcular errores estándar

# Modelo Probit Ordinal
modelo_probit <- polr(intensidad_dpp ~ lingrl + anios_esc + edad + t_hijos + etnia,
                      data = data18,
                      method = "probit",  # Especificación PROBIT
                      Hess = TRUE)

## -----------------------------------------------------------
## 2. COMPARACIÓN DE COEFICIENTES
## -----------------------------------------------------------

# Crear tabla comparativa
coef_comparison <- data.frame(
  Variable = names(coef(modelo_logit)),
  Coef_Logit = round(coef(modelo_logit), 4),
  Coef_Probit = round(coef(modelo_probit), 4),
  Ratio = round(coef(modelo_logit)/coef(modelo_probit), 2)
)

print(coef_comparison)
           Variable Coef_Logit Coef_Probit Ratio
lingrl       lingrl     0.0031      0.0020  1.57
anios_esc anios_esc    -0.0074     -0.0049  1.51
edad           edad     0.0350      0.0206  1.70
t_hijos     t_hijos     0.0367      0.0217  1.69
etnia         etnia     0.3053      0.1719  1.78

3 Estadisticos AIC y BIC de los modelos LOGIT y PROBIT

Siguiendo con el análisis, ahora se comparan los modelos LOGIT y PROBIT usando dos indicadores llamados AIC y BIC. Estas dos medidas ayudan a saber qué tan bien se adapta un modelo a los datos, considerando también cuántas variables usa. En general, mientras más bajos sean los valores de AIC o BIC, mejor es el modelo.

Al revisar los resultados, se ve que el modelo PROBIT tiene valores más bajos en ambas medidas. El AIC del PROBIT es 22116.87, mientras que el del LOGIT es un poco más alto: 22129.28. Lo mismo ocurre con el BIC: el PROBIT tiene 22170.83 y el LOGIT, 22183.23. Aunque la diferencia no es muy grande, el PROBIT parece ajustarse un poco mejor a los datos.

Si nos guiamos solo por estas dos medidas, el modelo PROBIT sería una mejor opción que el LOGIT. Esto quiere decir que, además de dar resultados consistentes, el PROBIT logra un mejor equilibrio entre precisión y simplicidad en este caso.

ver código
aic_logit_ord <- AIC(modelo_logit)
aic_probit_ord <- AIC(modelo_probit)
cat("AIC Logit Ordenado:", aic_logit_ord, " | AIC Probit Ordenado:", aic_probit_ord, "\n")
AIC Logit Ordenado: 22129.28  | AIC Probit Ordenado: 22116.87 
ver código
bic_logit_ord <- BIC(modelo_logit)
bic_probit_ord <- BIC(modelo_probit)
cat("BIC Logit Ordenado:", bic_logit_ord, " | BIC Probit Ordenado:", bic_probit_ord, "\n")
BIC Logit Ordenado: 22183.23  | BIC Probit Ordenado: 22170.83 

4 Comparación de los efectos marginales de los modelos LOGIT y PROBIT Ordenados

En esta parte del análisis se comparan los resultados de los modelos LOGIT y PROBIT, pero ahora viendo cuánto influye cada variable en la probabilidad de que una mujer tenga un nivel más alto de depresión postparto. A eso se le llama efecto marginal promedio, y básicamente nos dice cuánto cambia esa probabilidad cuando una variable, como los años de estudio o la edad, cambia un poco, manteniendo todo lo demás costante.

Cuando vemos los resultados, notamos que los dos modelos —LOGIT y PROBIT— dan respuestas muy parecidas. Por ejemplo, en el caso de los años de escolaridad, ambos modelos muestran un efecto casi igual: una diferencia mínima entre ellos, casi insignificante. Y lo mismo pasa con las demás variables.

Esto quiere decir que, en la práctica, da casi lo mismo usar uno u otro modelo: ambos ayudan a entender de forma muy parecida cómo cada factor influye en la depresión postparto. Aunque antes vimos que el modelo PROBIT encaja un poco mejor con los datos (según los indicadores AIC y BIC), cuando se trata de interpretar el efecto de las variables, los dos modelos funcionan prácticamente igual.

Se puede usar cualquiera de los dos modelos y llegar a las mismas conclusiones. Elegir uno u otro dependerá más de lo que se prefiera desde el punto de vista teórico o técnico.

ver código
## -----------------------------------------------------------
## 3. COMPARACIÓN DE EFECTOS MARGINALES (VERSIÓN CORREGIDA)
## -----------------------------------------------------------

# Calcular efectos marginales (versión corregida sin paréntesis extra)
efectos_logit <- margins(modelo_logit)
efectos_probit <- margins(modelo_probit)  # Solo un paréntesis de cierre

# Resumir efectos
summ_logit <- summary(efectos_logit)
summ_probit <- summary(efectos_probit)

# Crear tabla comparativa
ame_comparison <- data.frame(
  Variable = summ_logit$factor,
  AME_Logit = round(summ_logit$AME, 4),
  AME_Probit = round(summ_probit$AME, 4),
  Diferencia = round(summ_logit$AME - summ_probit$AME, 4),
  Ratio = round(summ_logit$AME/summ_probit$AME, 2)
)

print(ame_comparison)
           Variable AME_Logit AME_Probit Diferencia Ratio
anios_esc anios_esc    0.0013     0.0014    -0.0002  0.88
edad           edad   -0.0059    -0.0060     0.0001  0.99
etnia         etnia   -0.0517    -0.0502    -0.0015  1.03
lingrl       lingrl   -0.0005    -0.0006     0.0001  0.91
t_hijos     t_hijos   -0.0062    -0.0063     0.0001  0.98

5 Comparación de la exactitud de los modelos LOGIT y PROBIT Ordenados

A pesar de que en el análisis anterior vimos que los modelos LOGIT y PROBIT ofrecen resultados muy similares en cuanto a los efectos de las variables y que el modelo PROBIT se ajusta ligeramente mejor a los datos, cuando evaluamos su capacidad para predecir correctamente los niveles de depresión postparto, nos encontramos con una gran limitación.

Ambos modelos presentan una precisión del 77.98%, lo que en principio podría parecer positivo. Sin embargo, esa cifra resulta engañosa. Al revisar más de cerca, se observa que casi todos los aciertos corresponden solo a los casos sin depresión (categoría 0), mientras que los modelos no logran identificar ninguno de los casos con depresión leve o severa. En concreto, aciertan en 12,828 casos sin depresión, pero fallan completamente en los 1,790 casos de depresión leve y en los 1,833 de depresión severa.

Esto revela un problema importante. Es probable que las variables que se incluyeron en los modelos no capten adecuadamente los factores que realmente influyen en los casos más graves de depresión postparto, como antecedentes de salud mental, nivel de apoyo emocional o complicaciones médicas. Además, el hecho de que la mayoría de los datos pertenezcan a la categoría “sin depresión” hace que el modelo tienda a predecir siempre esa clase, ignorando las otras.

Por eso, aunque los modelos parecen funcionar bien en términos técnicos, en la práctica no están cumpliendo con el objetivo más importante: identificar a las mujeres con mayor riesgo de depresión. Para mejorar el análisis, sería necesario incluir variables más relevantes, aplicar técnicas que corrijan el desbalance de clases, y utilizar otras métricas de evaluación más adecuadas —como la sensibilidad para los casos moderados o severos— que realmente reflejen la utilidad del modelo en un contexto clínico.

ver código
## -----------------------------------------------------------
## 4. COMPARACIÓN DE PREDICCIONES
## -----------------------------------------------------------

# Matriz de confusión para Logit
pred_logit <- predict(modelo_logit, type = "class")
conf_logit <- table(Real = data18$intensidad_dpp, Predicho = pred_logit)
print(conf_logit)
    Predicho
Real     0     1     2
   0 12828     0     0
   1  1790     0     0
   2  1833     0     0
ver código
# Matriz de confusión para Probit
pred_probit <- predict(modelo_probit, type = "class")
conf_probit <- table(Real = data18$intensidad_dpp, Predicho = pred_probit)
print(conf_probit)
    Predicho
Real     0     1     2
   0 12828     0     0
   1  1790     0     0
   2  1833     0     0
ver código
accuracy_logit <- sum(diag(conf_logit))/sum(conf_logit)
accuracy_probit <- sum(diag(conf_probit))/sum(conf_probit)
# Resultados
cat("\nExactitud Logit:", round(accuracy_logit, 4))

Exactitud Logit: 0.7798
ver código
cat("\nExactitud Probit:", round(accuracy_probit, 4))

Exactitud Probit: 0.7798

6 Gráfica de comparación de los efectos marginales de los modelos LOGIT y PROBIT Ordenados

La gráfica de efectos marginales muestra que los modelos LOGIT y PROBIT ordenados coinciden en cómo influyen variables como educación, ingresos, edad, número de hijos y etnia en la intesidad de depresión postparto. Ambos modelos ofrecen resultados muy similares, demostrando que el tipo de modelo no es el problema.

Sin embargo, como vimos antes, estos modelos no logran identificar los casos moderados y graves de depresión. Esto sugiere que, aunque las variables analizadas tienen efecto, no son suficientes para distinguir entre distintos niveles de severidad.

El reto no está en elegir entre LOGIT o PROBIT, sino en mejorar las variables del modelo o probar métodos más precisos para captar mejor los casos más graves.

ver código
library(ggplot2)

# Gráfico comparativo de efectos marginales
ame_comparison$Variable <- factor(ame_comparison$Variable, 
                                  levels = ame_comparison$Variable[order(ame_comparison$AME_Logit)])

ggplot(ame_comparison, aes(x = Variable)) +
  geom_point(aes(y = AME_Logit, color = "Logit"), size = 3) +
  geom_point(aes(y = AME_Probit, color = "Probit"), size = 3) +
  labs(title = "Comparación de Efectos Marginales: Logit vs Probit",
       y = "Efecto Marginal Promedio (AME)", 
       x = "Variable",
       color = "Modelo") +
  coord_flip() +
  theme_minimal()

7 Recomendaciones:

Para superar estas limitaciones, se recomienda: primero, ampliar el conjunto de variables predictoras incorporando factores clínicamente relevantes que podrían estar relacionados específicamente con las formas más graves de intensidad de depresión postparto; segundo, aplicar técnicas especializadas para corregir el desequilibrio en los datos; y tercero, complementar las métricas de evaluación tradicionales con indicadores más sensibles a la detección de casos severos. Mientras que la elección entre LOGIT y PROBIT resulta secundaria, estos hallazgos subrayan la necesidad de realizar ajustes sustanciales en el modelo para que pueda cumplir efectivamente con su propósito de identificar tempranamente a las mujeres con mayor riesgo de desarrollar depresión postparto severa.