Deber_31_mayo

#Cargar librerías
library(MASS)
library(car)
Cargando paquete requerido: carData
library(margins)
library(pROC)
Type 'citation("pROC")' for a citation.

Adjuntando el paquete: 'pROC'
The following objects are masked from 'package:stats':

    cov, smooth, var
library(ggplot2)
library(caret)
Cargando paquete requerido: lattice
library(haven)
data <- read_dta("Data1_R.dta")

Revisar estructura de los datos

str(data)

1 Ejemplo 1: Modelos con variable dependiente dicotómica

2 Modelos logit y probit

Se incorporaron al modelo dos variables relacionadas con la atención en salud durante el periodo posnatal: por un lado, el trato que la mujer recibió por parte del personal de salud después del parto, como un indicador de calidad y humanización en la atención médica; y por otro lado, la asistencia a controles posparto, entendida como la continuidad del seguimiento clínico tras el nacimiento, con el fin de evaluar su influencia en la probabilidad de desarrollar depresión posparto.

# Ajustar el modelo logit
modelo_logit <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos + etnia + area + f2_s5_504a_1 + c_posparto, data = data, family = binomial(link = "logit"))
# Ajustar el modelo probit
modelo_probit <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos + etnia + area + f2_s5_504a_1 + c_posparto, data = data, family = binomial(link = "probit"))
# Resumen modelo Logit
summary(modelo_logit)

Call:
glm(formula = depresion_pp ~ lingrl + anios_esc + edad + t_hijos + 
    etnia + area + f2_s5_504a_1 + c_posparto, family = binomial(link = "logit"), 
    data = data)

Coefficients:
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.821e+00  1.540e-01 -11.826  < 2e-16 ***
lingrl       -3.068e-05  7.187e-03  -0.004   0.9966    
anios_esc    -7.845e-03  4.931e-03  -1.591   0.1116    
edad          3.346e-02  3.228e-03  10.365  < 2e-16 ***
t_hijos       3.896e-02  1.899e-02   2.051   0.0402 *  
etnia         3.504e-01  6.068e-02   5.776 7.67e-09 ***
area          1.088e-01  4.257e-02   2.556   0.0106 *  
f2_s5_504a_1 -1.971e-01  4.163e-02  -4.734 2.20e-06 ***
c_posparto    6.219e-02  3.976e-02   1.564   0.1178    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 17346  on 16450  degrees of freedom
Residual deviance: 17081  on 16442  degrees of freedom
AIC: 17099

Number of Fisher Scoring iterations: 4

Los resultados indican que la edad presenta un coeficiente positivo de β = 0.0335 con un valor-p altamente significativo (p < 0.001), lo que implica que a mayor edad, aumenta el riesgo de depresión posparto. De forma similar, el número de hijos tiene un efecto positivo (β = 0.0389, p = 0.0402), evidenciando que la carga familiar incide directamente en el bienestar emocional.

La pertenencia étnica muestra un coeficiente de β = 0.3504 (p < 0.001), lo que sugiere que mujeres de pueblos o nacionalidades indígenas u otras minorías tienen mayor vulnerabilidad. Asimismo, el área de residencia también influye de manera significativa (β = 0.1088, p = 0.0106), indicando que el entorno geográfico puede representar barreras o riesgos adicionales.

El hallazgo más relevante es el efecto del trato recibido por el personal de salud, representado por la variable f2_s5_504a_1. Su coeficiente es de β = -1.9711 con un p = 2.2e-06, lo que implica que una buena atención reduce drásticamente la probabilidad de presentar depresión posparto. Esta variable actúa como un factor protector clave.

En contraste, el control posparto (c_posparto) no fue significativo (β = 0.0622, p = 0.1178), al igual que los años de escolaridad (β = -0.0078, p = 0.1116) y el idioma (β = -0.00003, p = 0.9966), lo que sugiere que estos factores no tienen un peso estadísticamente relevante en este modelo.

En términos de ajuste, el modelo muestra una mejoría respecto al modelo nulo con una deviance residual de 17081 y un AIC de 17099, lo que respalda su consistencia explicativa.

summary(modelo_probit)

Call:
glm(formula = depresion_pp ~ lingrl + anios_esc + edad + t_hijos + 
    etnia + area + f2_s5_504a_1 + c_posparto, family = binomial(link = "probit"), 
    data = data)

Coefficients:
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.0978303  0.0902627 -12.163  < 2e-16 ***
lingrl       -0.0003123  0.0041761  -0.075  0.94039    
anios_esc    -0.0044769  0.0028719  -1.559  0.11903    
edad          0.0196459  0.0018921  10.383  < 2e-16 ***
t_hijos       0.0231882  0.0112390   2.063  0.03909 *  
etnia         0.2078983  0.0358804   5.794 6.86e-09 ***
area          0.0638513  0.0245358   2.602  0.00926 ** 
f2_s5_504a_1 -0.1151166  0.0246263  -4.675 2.95e-06 ***
c_posparto    0.0347885  0.0229749   1.514  0.12998    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 17346  on 16450  degrees of freedom
Residual deviance: 17079  on 16442  degrees of freedom
AIC: 17097

Number of Fisher Scoring iterations: 4

Los resultados muestran que la edad tiene un efecto positivo y altamente significativo (β = 0.0196, p < 0.001), lo que indica que a mayor edad, se incrementa la probabilidad de presentar depresión posparto. De igual manera, el número de hijos también se asocia positivamente con la depresión (β = 0.0218, p = 0.0391), sugiriendo que la carga reproductiva incide en la salud mental materna.

La pertenencia étnica representa un factor de riesgo importante (β = 0.2079, p < 0.001), y el área de residencia también muestra un efecto significativo (β = 0.0639, p = 0.0093), lo que implica que factores estructurales y territoriales condicionan el bienestar psicoemocional en el posparto.

Entre los determinantes más relevantes, destaca el trato recibido del personal de salud. Su coeficiente negativo y altamente significativo (β = -0.1151, p = 2.95e-06) sugiere que una atención respetuosa y de calidad durante el parto actúa como un fuerte factor protector frente a la depresión posparto. Esta evidencia refuerza la importancia de mejorar las relaciones interpersonales en los servicios de salud materna, más allá de los procedimientos clínicos.

En contraste, las variables idioma (β = -0.00031, p = 0.9404), años de escolaridad (β = -0.00447, p = 0.1190) y control posparto (β = 0.0347, p = 0.1299) no mostraron significancia estadística en este modelo, lo cual sugiere que su efecto sobre la depresión posparto es limitado o depende de mediaciones contextuales no capturadas directamente.

El modelo presenta una deviance residual de 17079 y un AIC de 17097, lo que indica un ajuste adecuado en comparación con el modelo nulo.

3 Comparar AIC y BIC de ambos modelos

##Comparar AIC de los modelos 

aic_logit <- AIC(modelo_logit)
aic_probit <- AIC(modelo_probit)
##Comparar BIC de los modelos

bic_logit <- BIC(modelo_logit)
bic_probit <- BIC(modelo_probit)
# Mostrar resultados
cat("AIC Logit:", aic_logit, " | AIC Probit:", aic_probit, "\n")
AIC Logit: 17099.45  | AIC Probit: 17097.49 

El criterio más bajo es del modelo probit

cat("BIC Logit:", bic_logit, " | BIC Probit:", bic_probit, "\n")
BIC Logit: 17168.82  | BIC Probit: 17166.86 

Conclusión: El modelo con menor AIC/BIC es el preferido, ya que tiene mejor ajuste, es decir el modelo probit

# Calcular efectos marginales para Logit
library(margins)
marg_logit <- margins(modelo_logit)
summary(marg_logit)
       factor     AME     SE       z      p   lower   upper
    anios_esc -0.0013 0.0008 -1.5914 0.1115 -0.0030  0.0003
         area  0.0184 0.0072  2.5567 0.0106  0.0043  0.0325
   c_posparto  0.0105 0.0067  1.5642 0.1178 -0.0027  0.0237
         edad  0.0057 0.0005 10.4460 0.0000  0.0046  0.0067
        etnia  0.0592 0.0102  5.7907 0.0000  0.0392  0.0792
 f2_s5_504a_1 -0.0333 0.0070 -4.7421 0.0000 -0.0470 -0.0195
       lingrl -0.0000 0.0012 -0.0043 0.9966 -0.0024  0.0024
      t_hijos  0.0066 0.0032  2.0521 0.0402  0.0003  0.0129

Los resultados muestran que la edad incrementa en 0.57 puntos porcentuales la probabilidad de depresión por cada año adicional (p < 0.001), mientras que el número de hijos la aumenta en 0.66 puntos (p = 0.0402). La pertenencia étnica es uno de los factores más relevantes, elevando el riesgo en 5.92 puntos porcentuales (p < 0.001), y vivir en ciertas áreas geográficas lo hace en 1.84 puntos (p = 0.0106).

Destaca como factor protector el trato recibido del personal de salud, que reduce la probabilidad de depresión en 3.33 puntos porcentuales (p < 0.001), confirmando que la calidad humana de la atención influye significativamente en la salud mental posparto.

En cambio, variables como el control posparto (+1.05 puntos, p = 0.1178), los años de educación (−0.13 puntos, p = 0.1115) y el idioma (efecto nulo) no mostraron efectos estadísticamente significativos.

4 Efectos marginales

# Calcular efectos marginales para Probit
marg_probit <- margins(modelo_probit)
summary(marg_probit)
       factor     AME     SE       z      p   lower   upper
    anios_esc -0.0013 0.0008 -1.5591 0.1190 -0.0029  0.0003
         area  0.0186 0.0071  2.6035 0.0092  0.0046  0.0326
   c_posparto  0.0101 0.0067  1.5144 0.1299 -0.0030  0.0233
         edad  0.0057 0.0005 10.4599 0.0000  0.0047  0.0068
        etnia  0.0606 0.0104  5.8080 0.0000  0.0402  0.0811
 f2_s5_504a_1 -0.0336 0.0072 -4.6817 0.0000 -0.0476 -0.0195
       lingrl -0.0001 0.0012 -0.0748 0.9404 -0.0025  0.0023
      t_hijos  0.0068 0.0033  2.0638 0.0390  0.0003  0.0132

Los resultados muestran que la edad tiene un efecto positivo altamente significativo (AME = 0.0057, p < 0.001), lo que implica que cada año adicional incrementa la probabilidad de depresión en 0.57 puntos porcentuales. De forma similar, el número de hijos aumenta esta probabilidad en 0.68 puntos (p = 0.0390), evidenciando la carga emocional asociada a la maternidad múltiple.

La pertenencia étnica tiene un impacto importante, aumentando el riesgo en 6.06 puntos porcentuales (p < 0.001), mientras que vivir en ciertas zonas geográficas (probablemente rurales) lo hace en 1.86 puntos (p = 0.0092), ambos con significancia estadística sólida.

Por su parte, el trato recibido por el personal de salud durante la atención del parto aparece como el principal factor protector, reduciendo la probabilidad de depresión en 3.36 puntos porcentuales (p < 0.001). Este hallazgo destaca la importancia de la calidad humana en la atención obstétrica.

En contraste, variables como el control posparto (AME = 1.01%, p = 0.1299), los años de escolaridad (AME = -0.13%, p = 0.1190) y el idioma (AME ≈ 0, p = 0.9404) no mostraron efectos significativos, lo que indica que su influencia no es concluyente en este modelo.

5 Matriz de confusión

###Para el modelo logit podemos calcular la matriz de confusión

#1. Obtener predicciones del modelo logit
pred_logit <- ifelse(predict(modelo_logit, type = "response") > 0.5, 1, 0)

# Crear matriz de confusión
conf_matrix <- table(Predicho = pred_logit, Real = data$depresion_pp)

# Mostrar matriz de confusión
print(conf_matrix)
        Real
Predicho     0     1
       0 12828  3622
       1     0     1
# Calcular exactitud
exactitud <- sum(diag(conf_matrix)) / sum(conf_matrix)
cat("Exactitud del modelo logit:", exactitud, "\n")
Exactitud del modelo logit: 0.779831 

Aunque el modelo tiene una exactitud alta (78%), su capacidad para detectar casos positivos de depresión posparto es extremadamente baja (sensibilidad ~0.03%). Esto indica un problema de desbalance de clases: el modelo está sesgado hacia la clase mayoritaria (“sin depresión”) y falla casi por completo en identificar los casos reales de depresión.

6 Curva ROC

# Calcular la curva ROC para el modelo logit (ayuda a ver con cuanta exactitud el modelo está prediciendo los resultados)

library(pROC)
roc_logit <- roc(data$depresion_pp, predict(modelo_logit, type = "response"))
Setting levels: control = 0, case = 1
Setting direction: controls < cases
# Graficar la curva ROC
library(ggplot2)
ggplot() +
  geom_line(aes(x = roc_logit$specificities, y = roc_logit$sensitivities), color = "blue") +
  geom_abline(linetype = "dashed", color = "red") + 
  labs(title = "Curva ROC - Modelo Logit",
       x = "1 - Especificidad",
       y = "Sensibilidad") +
  theme_minimal()

Aunque el modelo tiene una buena exactitud general, la curva ROC muestra que no distingue bien entre mujeres con y sin depresión posparto. Es necesario mejorar el modelo ajustando el umbral o usando técnicas que manejen el desbalance de clases.

# Mostrar el área bajo la curva (AUC)
auc_logit <- auc(roc_logit)
cat("Área bajo la curva (AUC) - Modelo Logit:", auc_logit, "\n")
Área bajo la curva (AUC) - Modelo Logit: 0.5866908 
#Curva ROC: Muestra el rendimiento del modelo en diferentes umbrales de clasificación.
#AUC > 0.7 indica un buen modelo predictivo.

Este valor indica que el modelo tiene una capacidad de discriminación baja. Un AUC de 0.5 representa un modelo sin poder predictivo (como lanzar una moneda), y un AUC de 0.5867 apenas supera ese umbral. Por tanto, el modelo no distingue bien entre mujeres con y sin depresión posparto, lo que confirma que debe mejorarse, especialmente en contextos con clases desbalanceadas.