Introducción

La Diabetes Mellitus Gestacional (DMG) es un trastorno metabólico caracterizado por niveles elevados de glucosa en sangre que se presentan por primera vez durante el embarazo (1). Su diagnóstico se basa en criterios establecidos por organizaciones como la Asociación Americana de Diabetes (ADA) y la Organización Mundial de la Salud (OMS) (2,3). Esta condición es particularmente relevante en la salud materno-fetal debido a su impacto en el desarrollo del feto y en la futura salud metabólica de la madre.

El embarazo implica una serie de adaptaciones fisiológicas, incluyendo cambios en la sensibilidad a la insulina, que pueden predisponer a ciertas mujeres a desarrollar DMG (4). Diversos factores de riesgo han sido identificados, como el índice de masa corporal (IMC) elevado, antecedentes familiares de diabetes, y la edad materna avanzada (5).

Las mujeres con DMG tienen mayor probabilidad de desarrollar preeclampsia, hipertensión gestacional y complicaciones obstétricas, así como un aumento en la tasa de cesáreas (1). Desde la perspectiva neonatal, los hijos de madres con DMG están en mayor riesgo de macrosomía fetal, hipoglucemia neonatal y trastornos metabólicos a largo plazo (6). Estudios han evidenciado que los hijos de madres con DMG presentan una mayor incidencia de obesidad y resistencia a la insulina en etapas posteriores de la vida (7).

Dado el impacto significativo de la DMG, su análisis es esencial para entender los factores que contribuyen a su desarrollo y las posibles estrategias de prevención. En este estudio, se empleará la regresión logistica para identificar relaciones entre variables maternas y la presencia de DMG.

Objetivo

Evaluar los factores maternos asociados con la Diabetes Mellitus Gestacional (DMG) mediante regresión logística, con el propósito de identificar predictores significativos que contribuyan a su desarrollo y generar evidencia estadística que pueda aplicarse en estrategias preventivas.

Materia y Método

Estudio de casos y controles, en donde la base de datos consta de una muestra de 950 mujeres embarazadas, de las cuales 363 presentaron Diabetes Mellitus Gestacional (DMG) y 587 pertenecieron al grupo control.

Se incluyeron mujeres embarazadas entre 24 y 28 semanas de gestación, con y sin diagnóstico de DMG, excluyendo aquellas con diabetes previa, enfermedades renales, endocrinas, hepáticas o en tratamiento con esteroides. Los casos con información incompleta fueron eliminados del análisis.

Se recopilaron datos sobre edad materna, IMC, presión arterial sistólica (PAS) y diastólica (PAD), semanas de gestación, número de gestas, nivel de hemoglobina, creatinina, urea, riesgo obstétrico, escolaridad, presencia de anemia y antecedente de macrosomía fetal. Se clasificó el embarazo en bajo riesgo (<4 puntos) y alto riesgo (≥4 puntos) según antecedentes maternos y condiciones obstétricas. Tambien se incluyeron variables sobre consumo de sustancias nocivas, como alcohol, tabaco y drogas

Se realizó un análisis exploratorio univariado, calculando medidas de centralidad y dispersión para variables continuas y frecuencias para variables categóricas. En la segunda etapa, se efectuó un análisis bivariado, utilizando:

Posteriormente, se construyeron dos modelo logístico, incorporando variables relevantes identificadas en los análisis previos.

Para la evaluación de los modelos, se aplicaron las siguientes métricas:

Todos los análisis fueron realizados en R 4.2.2, utilizando paquetes especializados para estadística epidemiológica y modelado predictivo.

Resultados y discusión

library(readxl)
library(gtsummary)
library(blorr)
library(ResourceSelection)
library(pROC)
library(polycor)
library(corrplot)
library(kableExtra)

# Lectura
datos_cat <- na.omit(read_excel("DMG_Etiquetasxls.xlsx", sheet = "Sheet1"))
# Factores
datos_cat$gpo_edad <- factor(datos_cat$gpo_edad, 
                             levels = c("Menores de 20 años", "De 20 a 29 años",
                                        "De 30 años y más"))
datos_cat$edo_nut <- factor(datos_cat$edo_nut, 
                            levels = c("Peso bajo", "Peso normal", "Sobrepeso", 
                                       "Obesidad grado I", "Obesidad grado II", 
                                       "Obesidad  grado III"))
datos_cat$esco <- factor(datos_cat$esco, 
                         levels = c("Primaria", "Secundaria", "Preparatoria",
                                    "Licenciatura"))
datos_cat$anemia <- factor(datos_cat$anemia, levels = c("No", "Si"))
datos_cat$diab_g <- factor(datos_cat$diab_g, levels = c("No", "Si"))
datos_cat$alcoh <- factor(datos_cat$alcoh, levels = c("No", "Si"))
datos_cat$tabaq <- factor(datos_cat$tabaq, levels = c("No", "Si"))
datos_cat$toxic <- factor(datos_cat$toxic, levels = c("No", "Si"))
datos_cat$macro <- factor(datos_cat$macro, levels = c("No", "Si"))

La Tabla 1 presenta el análisis univariado de las características demográficas y clínicas de las mujeres embarazadas con y sin Diabetes Mellitus Gestacional (DMG). Se centró en la distribución de frecuencias y porcentajes dentro de los grupos de mujeres con y sin Diabetes Mellitus Gestacional (DMG). Para comparar estas distribuciones entre ambos grupos, se utilizó:

# Resumen ordinales
datos_cat[, c(14,16,17,19:24)] |>
  tbl_summary(by = diab_g,
              label = list(
                gpo_edad = "Grupo de Edad",
                edo_nut = "Estado nutricional",
                esco = "Escolaridad",
                anemia = "Anemia",
                alcoh = "Consume alcohol",
                tabaq = "Tabaquismo",
                toxic = "Consume drogas",
                macro = "Antecedente de macrosomía fetal"
              )) |>
  add_overall() |>
  # Pruebas variables categóricas específicas
  add_p(
    test = list(
      gpo_edad ~ "chisq.test",
      edo_nut ~ "chisq.test",
      esco ~ "fisher.test",
      anemia ~ "chisq.test",
      alcoh ~ "fisher.test",
      tabaq ~ "fisher.test",
      toxic ~ "fisher.test",
      macro ~ "fisher.test"
    ),
    pvalue_fun = ~ style_pvalue(.x, digits = 3)
  )   |>
  modify_footnote(
    all_stat_cols() ~ "n (%), N = número total de participantes",
    p.value ~ "Pruebas: X² (Grupo de Edad, Estado Nutrición, Anemia); 
    Fisher (resto de variables)"
  ) |>
  modify_header(label ~ "**Característica**", 
                stat_0 ~ "**Total** \n N = {N}", 
                stat_1 ~ "**Mujeres** \n **sin DMG** \n n = {n}¹", 
                stat_2 = "**Mujeres** \n **con DMG** \n n = {n}¹", 
                p.value = "**Asociación** \n(p-valor)²") |>
  modify_caption("Análisis univariado de las características demográficas y 
                 clínicas de las mujeres sin y con diabetes mellitus gestacional")|>
  as_kable_extra(booktabs = TRUE) |> 
  kable_styling(
    font_size = 10,
    latex_options = c("striped", "HOLD_position","scale_down"),
    full_width = FALSE
  )
Análisis univariado de las características demográficas y
clínicas de las mujeres sin y con diabetes mellitus gestacional
Característica Total
N = 733
Mujeres
sin DMG
n = 405¹
Mujeres
con DMG
n = 328¹
Asociación
(p-valor)²
Grupo de Edad <0.001
Menores de 20 años 36 (4.9%) 31 (7.7%) 5 (1.5%)
De 20 a 29 años 384 (52%) 251 (62%) 133 (41%)
De 30 años y más 313 (43%) 123 (30%) 190 (58%)
Estado nutricional <0.001
Peso bajo 10 (1.4%) 10 (2.5%) 0 (0%)
Peso normal 165 (23%) 146 (36%) 19 (5.8%)
Sobrepeso 215 (29%) 131 (32%) 84 (26%)
Obesidad grado I 186 (25%) 75 (19%) 111 (34%)
Obesidad grado II 117 (16%) 32 (7.9%) 85 (26%)
Obesidad grado III 40 (5.5%) 11 (2.7%) 29 (8.8%)
Escolaridad 0.291
Primaria 5 (0.7%) 2 (0.5%) 3 (0.9%)
Secundaria 27 (3.7%) 18 (4.4%) 9 (2.7%)
Preparatoria 692 (94%) 378 (93%) 314 (96%)
Licenciatura 9 (1.2%) 7 (1.7%) 2 (0.6%)
Anemia 0.628
No 645 (88%) 359 (89%) 286 (87%)
Si 88 (12%) 46 (11%) 42 (13%)
Consume alcohol 0.447
No 732 (100%) 405 (100%) 327 (100%)
Si 1 (0.1%) 0 (0%) 1 (0.3%)
Tabaquismo >0.999
No 731 (100%) 404 (100%) 327 (100%)
Si 2 (0.3%) 1 (0.2%) 1 (0.3%)
Consume drogas >0.999
No 733 (100%) 405 (100%) 328 (100%)
Si 0 (0%) 0 (0%) 0 (0%)
Antecedente de macrosomía fetal 0.232
No 727 (99%) 400 (99%) 327 (100%)
Si 6 (0.8%) 5 (1.2%) 1 (0.3%)
1 n (%), N = número total de participantes
2 Pruebas: X² (Grupo de Edad, Estado Nutrición, Anemia); Fisher (resto de variables)

El análisis de la tabla muestra diferencias significativas en la distribución de edad y estado nutricional entre mujeres embarazadas con y sin diabetes mellitus gestacional (DMG). Las mujeres con DMG presentaron una mayor proporción en el grupo de 30 años o más (58% frente al 30% en el grupo sin DMG), mientras que solo el 1.5% eran menores de 20 años (comparado con el 7.7% en el grupo control). Esta asociación fue estadísticamente significativa (p < 0.001), lo que indica que la edad materna avanzada es un factor relevante en el desarrollo de DMG.

En cuanto al estado nutricional, se observó una clara tendencia hacia mayores grados de obesidad en el grupo con DMG. El 34% de estas mujeres presentaban obesidad grado I (frente al 19% en el grupo sin DMG), el 26% obesidad grado II (vs. 7.9%), y el 8.8% obesidad grado III (vs. 2.7%). Esta asociación también fue altamente significativa (p < 0.001), reforzando el papel del IMC elevado como un predictor importante de DMG.

Por otro lado, variables como escolaridad, anemia, consumo de alcohol, tabaquismo, uso de drogas y antecedente de macrosomía fetal no mostraron diferencias significativas entre los grupos (p > 0.05). Cabe destacar que el consumo de alcohol y tabaco fue prácticamente nulo en la muestra estudiada, lo que limita su análisis como posibles factores de riesgo.

La Tabla 2 presenta el análisis univariado de las características antropométricas y de laboratorio de mujeres con y sin Diabetes Mellitus Gestacional (DMG), considerando únicamente variables continuas.

Para la comparación entre mujeres con y sin DMG, se aplicó la prueba T de Student, ajustada según la prueba de Levene para evaluar la homogeneidad de varianza.

# Resumen continuos
datos_cat[, c(1:6,8:13,19)] |>
  tbl_summary(by = diab_g,
              missing = "no",
              type = list(
                No_Gestas ~ "continuous"),
              label = list(
                EDAD = "Edad (años)",
                PESO = "Peso (kg)",
                TALLA = "Talla (Mts)",
                IMC = "Índice de masa corporal",
                PAS = "Presión arterial sistólica",
                PAD = "Presión arterial diastólica",
                SDG = "Semanas de gestación",
                No_Gestas = "Número de gestas",
                HGB = "Hemoglobina",
                Creat = "Creatinina",
                UREA = "Urea",
                Ries_Obstet = "Riesgo obstétrico"
              ),
              statistic = list(all_continuous() ~ "{mean} ± {sd}")) |>
  add_p(
    test = all_continuous() ~ "t.test",
    test.args = list(
      EDAD ~ list(var.equal = T),
      PESO ~ list(var.equal = T),
      TALLA ~ list(var.equal = T),
      IMC ~ list(var.equal = T),
      SDG ~ list(var.equal = T),
      Ries_Obstet ~ list(var.equal = T),
      No_Gestas ~ list(var.equal = T)
    ),
    pvalue_fun = ~ style_pvalue(.x, digits = 3)
  ) |>
  modify_footnote(
    all_stat_cols() ~ "Media ± DE",
    p.value ~ "Pruebas T: var. desiguales (PAS, PAD, Hemoglobina,Creatinina, Urea);
    var. iguales (resto de variables)"
  ) |>
  modify_header(label ~ "**Característica**", 
                stat_1 ~ "**Mujeres** \n **sin DMG** \n n = {n}¹", 
                stat_2 = "**Mujeres** \n **con DMG** \n n = {n}¹", 
                p.value = "**Asociación** \n(p-valor)²") |>
  modify_caption("Análisis univariado de las características antropométricas y 
                 de laboratorio de mujeres sin y con diabetes mellitus gestacional")|>
  as_kable_extra(booktabs = TRUE) |> 
  kable_styling(
    font_size = 10,
    latex_options = c("striped", "HOLD_position","scale_down"),
    full_width = FALSE
  )
Análisis univariado de las características antropométricas y
de laboratorio de mujeres sin y con diabetes mellitus gestacional
Característica Mujeres
sin DMG
n = 405¹
Mujeres
con DMG
n = 328¹
Asociación
(p-valor)²
Edad (años) 26.9 ± 5.7 30.4 ± 5.6 <0.001
Peso (kg) 69 ± 16 79 ± 15 <0.001
Talla (Mts) 1.57 ± 0.06 1.56 ± 0.06 0.802
Índice de masa corporal 27.9 ± 5.6 32.7 ± 5.2 <0.001
Presión arterial sistólica 104 ± 9 107 ± 11 <0.001
Presión arterial diastólica 66 ± 7 67 ± 8 0.003
Semanas de gestación 31.49 ± 3.00 31.05 ± 2.87 0.046
Número de gestas 2.33 ± 1.23 2.60 ± 1.33 0.004
Hemoglobina 12.03 ± 0.99 12.20 ± 1.11 0.028
Creatinina 0.51 ± 0.13 0.53 ± 0.14 0.030
Urea 14.9 ± 5.1 14.0 ± 4.1 0.010
Riesgo obstétrico 4.7 ± 4.6 6.4 ± 4.8 <0.001
1 Media ± DE
2 Pruebas T: var. desiguales (PAS, PAD, Hemoglobina,Creatinina, Urea); var. iguales (resto de variables)

El análisis comparativo entre mujeres embarazadas con y sin diabetes mellitus gestacional (DMG) revela diferencias significativas en diversas variables clínicas. Las mujeres con DMG presentaron una edad promedio superior (30.4 ± 5.6 años) en comparación con aquellas sin DMG (26.9 ± 5.7 años), con una diferencia estadísticamente significativa (p < 0.001). Asimismo, se observó un mayor peso corporal (79 ± 15 kg vs. 69 ± 16 kg) y un índice de masa corporal más elevado (32.7 ± 5.2 vs. 27.9 ± 5.6) en el grupo con DMG, ambos con p < 0.001, mientras que no hubo diferencias en la talla entre los grupos (p = 0.802).

En cuanto a los parámetros cardiovasculares, las mujeres con DMG mostraron valores más altos tanto en presión arterial sistólica (107 ± 11 mmHg vs. 104 ± 9 mmHg; p < 0.001) como diastólica (67 ± 8 mmHg vs. 66 ± 7 mmHg; p = 0.003). Respecto a las variables obstétricas, se encontró una menor edad gestacional al momento del diagnóstico en el grupo con DMG (31.05 ± 2.87 semanas vs. 31.49 ± 3.00 semanas; p = 0.046), junto con un mayor número de gestas previas (2.60 ± 1.33 vs. 2.33 ± 1.23; p = 0.004).

Los parámetros bioquímicos mostraron diferencias significativas, con niveles ligeramente superiores de hemoglobina (12.20 ± 1.11 g/dL vs. 12.03 ± 0.99 g/dL; p = 0.028) y creatinina (0.53 ± 0.14 mg/dL vs. 0.51 ± 0.13 mg/dL; p = 0.030) en el grupo con DMG, mientras que los niveles de urea fueron inferiores (14.0 ± 4.1 mg/dL vs. 14.9 ± 5.1 mg/dL; p = 0.010). Finalmente, el riesgo obstétrico resultó significativamente mayor en las mujeres con DMG (6.4 ± 4.8 puntos vs. 4.7 ± 4.6 puntos; p < 0.001).

La Figura 1 presenta la matriz de correlación, escencial para identificar posibles patrones de multicolinealidad, redundancia en la información y relaciones significativas entre los factores maternos y la Diabetes Mellitus Gestacional (DMG). La interpretación de estos coeficientes es clave para depurar las variables que serán incluidas en los modelos logísticos, evitando información redundante o efectos espurios.

# Ajustar márgenes (abajo, izquierda, arriba, derecha)
 
# Seleccionar solo variables de interes
datos_interes <- data.frame(datos_cat[, c(19,1:6,8:14,16,17,20)])

cor_matrix <- hetcor(datos_interes, ML = TRUE)

cor_matrix$correlations <- ifelse(is.na(cor_matrix$correlations),1,cor_matrix$correlations)

colnames(cor_matrix$correlations) <- c("DMG","Edad","Peso", "Talla", "IMC", 
                                       "PAS", "PAD",
                                       "Semanas de gestación","Número de gestas",
                                       "Hemoglobina","Creatinina","Urea",
                                       "Riesgo obstétrico","Grupo de Edad",
                                       "Estado nutricional","Escolaridad","Anemia")
rownames(cor_matrix$correlations) <- colnames(cor_matrix$correlations)
par(mar = c(1, 1, 1, 1))
corrplot(cor_matrix$correlations, method = "color", type = "upper",
         addCoef.col = "black", number.cex = 0.7,
         tl.col = "black", tl.srt = 45, tl.cex = 0.8)
Matriz de correlación heterogénea de las variables de interes. (Nota: Esta matriz muestra correlaciones producto-momento de Pearson entre variables numéricas, correlaciones poliseriales entre variables numéricas y ordinales, y correlaciones policóricas entre variables ordinales.)

Matriz de correlación heterogénea de las variables de interes. (Nota: Esta matriz muestra correlaciones producto-momento de Pearson entre variables numéricas, correlaciones poliseriales entre variables numéricas y ordinales, y correlaciones policóricas entre variables ordinales.)

Existe una estrecha relación entre diversas variables debido a su naturaleza intrínsecamente vinculada. El peso y el IMC muestran una correlación casi inherente, dado que el IMC se calcula directamente a partir del peso y la talla. De manera similar, la edad cronológica determina directamente la categoría de grupo de edad, mientras que tanto el peso como el IMC son componentes fundamentales para clasificar el estado nutricional. En el ámbito hematológico, los niveles de hemoglobina sirven como criterio diagnóstico para la anemia, estableciendo una conexión directa entre estas variables.

En el contexto cardiovascular, la presión arterial sistólica (PAS) y diastólica (PAD) presentan una correlación fisiológica elevada, ya que ambas forman parte integral de la medición de la presión arterial y suelen verse afectadas por los mismos factores fisiopatológicos.

Respecto a la diabetes mellitus gestacional (DMG), los análisis muestran asociaciones significativas con diversos factores. Las correlaciones más fuertes se observan con el estado nutricional (0.56) y el IMC (0.49), lo que subraya el papel central de la obesidad en el desarrollo de DMG. La edad materna, tanto en su forma categórica (grupo de edad: 0.42) como continua (0.37), también muestra una asociación importante, respaldando la evidencia existente sobre el mayor riesgo en mujeres de edad avanzada. Los parámetros cardiovasculares (PAS: 0.22) y el riesgo obstétrico (0.22) presentan correlaciones moderadas pero estadísticamente significativas, sugiriendo que la DMG podría estar relacionada con alteraciones hemodinámicas y complicaciones obstétricas previas.

Se ha decidido excluir el grupo de bajo peso debido a la reducida cantidad de individuos, lo que podría afectar la estabilidad de las estimaciones dentro de los modelos.

A partir de los análisis univariado y bivariado, se ha construido el Modelo 1, un modelo logístico reducido para evaluar los factores asociados con la DMG (Tabla 3). Este modelo considera como variables independientes el grupo de edad, el estado nutricional, la presión arterial sistólica, el número de gestas, el nivel de hemoglobina, el nivel de creatinina y el riesgo obstétrico, mientras que la variable dependiente es la presencia o ausencia de DMG.

datos_cat <- subset(datos_cat, edo_nut != "Peso bajo")
modelo_1 <- glm(data = datos_cat, diab_g ~ gpo_edad+edo_nut+PAS+No_Gestas+HGB+
                  Creat+Ries_Obstet,
                family = binomial(link = "logit"))
sum_1 <- summary(modelo_1)
mod_1 <- data.frame(
  Estimación = sum_1$coefficients[, "Estimate"],
  "Error Estandar" = sum_1$coefficients[, "Std. Error"],
  "valor z" = sum_1$coefficients[, "z value"],
  "Pr(>|z|)" = sum_1$coefficients[, "Pr(>|z|)"],
  check.names = FALSE
)
rownames(mod_1)  <- c("(intercepto)","Edad (20 a 29)","Edad (30+)",
                      "Sobrepeso","Obesidad grado I","Obesidad grado II",
                      "Obesidad grado III","Presión arterial sistólica",
                      "Número de Gestas","Hemoglobina",
                      "Creatinina","Riesgo obstétrico")

# Formatear como tabla con kable
options(knitr.kable.NA = '')
knitr::kable(
  mod_1,
  caption = "Resumen del Modelo 1"
)
Resumen del Modelo 1
Estimación Error Estandar valor z Pr(>|z|)
(intercepto) -5.3032945 1.4388438 -3.6858029 0.0002280
Edad (20 a 29) 0.5853686 0.5528852 1.0587525 0.2897125
Edad (30+) 1.4741653 0.5563257 2.6498242 0.0080534
Sobrepeso 1.4703095 0.2899939 5.0701391 0.0000004
Obesidad grado I 2.2494899 0.2965458 7.5856419 0.0000000
Obesidad grado II 2.7780718 0.3336959 8.3251607 0.0000000
Obesidad grado III 2.7703687 0.4545918 6.0941897 0.0000000
Presión arterial sistólica 0.0045441 0.0090956 0.4995939 0.6173610
Número de Gestas -0.0107461 0.0738145 -0.1455821 0.8842513
Hemoglobina 0.1163992 0.0829423 1.4033753 0.1605050
Creatinina 0.6975413 0.6521087 1.0696703 0.2847678
Riesgo obstétrico 0.0403436 0.0200554 2.0116054 0.0442615

La edad materna demuestra un patrón diferenciado: las mujeres de 30 años o más presentan un riesgo significativamente mayor de DMG (p = 0.008), mientras que el grupo de 20 a 29 años no muestra una asociación estadísticamente relevante (p = 0.290). Esto refuerza la evidencia de que la edad avanzada es un factor de riesgo independiente.

El estado nutricional destaca como uno de los predictores más fuertes. Todas las categorías de exceso de peso (sobrepeso y obesidad grados I, II y III) están significativamente asociadas con un mayor riesgo de DMG (p < 0.001 en todos los casos). A medida que aumenta la severidad de la obesidad, el efecto se intensifica, lo que subraya la importancia del control del peso antes y durante el embarazo.

Por otro lado, el riesgo obstétrico también muestra una asociación significativa, aunque con un menor impacto comparativo (p = 0.044). Esto sugiere que, si bien contribuye al riesgo, su influencia es más modesta en comparación con el IMC y la edad.

En contraste, variables como la presión arterial sistólica, el número de gestas, los niveles de hemoglobina y la creatinina no alcanzan significancia estadística (p > 0.05), lo que indica que, en este modelo, no están asociadas de manera independiente con el desarrollo de DMG. Esto no descarta necesariamente su relevancia clínica en otros contextos, pero sugiere que su papel puede ser menos determinante cuando se consideran conjuntamente con factores como la edad y el IMC.

Se construyó un segundo modelo logístico (Modelo 2) reducido incorporando la experiencia clínica en la selección de variables. En este modelo, la presencia de Diabetes Mellitus Gestacional (DMG) se consideró como la variable dependiente, mientras que las variables independientes incluidas fueron grupo de edad, estado nutricional, presión arterial sistólica, creatinina y urea.

Las variables macrosomía fetal, consumo de alcohol, tabaquismo, drogas, anemia y escolaridad no fueron incluidas en el modelo, ya que no mostraron significancia estadística en los análisis previos. La exclusión de estas variables contribuye a un modelo más parsimonioso, evitando la incorporación de factores que no aporten información sustancial a la predicción de DMG.

modelo_2 <- glm(data = datos_cat, diab_g ~ gpo_edad+edo_nut+PAS+Creat+UREA,
                family = binomial(link = "logit"))
sum_2 <- summary(modelo_2)
mod_2 <- data.frame(
  Estimación = sum_2$coefficients[, "Estimate"],
  "Error Estandar" = sum_2$coefficients[, "Std. Error"],
  "valor z" = sum_2$coefficients[, "z value"],
  "Pr(>|z|)" = sum_2$coefficients[, "Pr(>|z|)"],
  check.names = FALSE
)
rownames(mod_2)  <- c("(intercepto)","Edad (20 a 29)","Edad (30+)",
                      "Sobrepeso","Obesidad grado I","Obesidad grado II",
                      "Obesidad grado III","Presión arterial sistólica",
                      "Creatinina","Urea")

# Formatear como tabla con kable
options(knitr.kable.NA = '')
knitr::kable(
  mod_2,
  caption = "Resumen del Modelo 2"
)
Resumen del Modelo 2
Estimación Error Estandar valor z Pr(>|z|)
(intercepto) -3.4692262 1.1475631 -3.0231246 0.0025018
Edad (20 a 29) 0.6545879 0.5439949 1.2032978 0.2288611
Edad (30+) 1.6427309 0.5470220 3.0030436 0.0026729
Sobrepeso 1.5081722 0.2912009 5.1791476 0.0000002
Obesidad grado I 2.2913631 0.2974638 7.7029973 0.0000000
Obesidad grado II 2.7653275 0.3334275 8.2936393 0.0000000
Obesidad grado III 2.7691445 0.4555242 6.0790288 0.0000000
Presión arterial sistólica 0.0068911 0.0090527 0.7612178 0.4465270
Creatinina 1.2624549 0.6653660 1.8973843 0.0577772
Urea -0.0621697 0.0198099 -3.1383125 0.0016992

El análisis de significancia estadística en este segundo modelo de regresión logística confirma y refina los hallazgos previos sobre los factores asociados a la diabetes mellitus gestacional (DMG).

En cuanto a la edad materna, se mantiene el mismo patrón observado anteriormente. Las mujeres de 30 años o más presentan un riesgo significativamente mayor de desarrollar DMG (p = 0.0027), mientras que el grupo de 20 a 29 años no muestra una asociación estadísticamente significativa (p = 0.2289). Esta consistencia refuerza la solidez de la edad avanzada como factor de riesgo independiente para DMG.

El estado nutricional vuelve a destacar como uno de los predictores más robustos. Todas las categorías de exceso de peso: sobrepeso (p = 0.0000002), obesidad grado I (p < 0.0000001), grado II (p < 0.0000001) y grado III (p < 0.0000001), muestran asociaciones altamente significativas con el riesgo de DMG. La magnitud de estas asociaciones aumenta progresivamente con la severidad de la obesidad, confirmando la relación dosis-respuesta entre el IMC y el riesgo de DMG.

Entre los nuevos hallazgos, destaca la urea como variable significativa (p = 0.0017), mostrando una asociación inversa con el riesgo de DMG (coeficiente negativo). Este resultado sugiere que niveles más bajos de urea podrían estar relacionados con un mayor riesgo de desarrollar DMG, aunque la interpretación clínica de este hallazgo requiere mayor investigación.

La creatinina muestra una asociación marginalmente significativa (p = 0.0578), acercándose al umbral de significancia estadística. Este resultado podría indicar una tendencia que merecería ser explorada en estudios con mayor tamaño muestral.

Por el contrario, la presión arterial sistólica no alcanza significancia estadística en este modelo (p = 0.4465), lo que coincide con los hallazgos del modelo anterior y sugiere que su posible asociación con DMG podría estar mediada por otras variables como la obesidad o la edad.

La Tabla 5 presenta los resultados de las pruebas de parsimonia, especificación y calibración para evaluar el desempeño de los modelos logísticos desarrollados en el análisis de Diabetes Mellitus Gestacional (DMG). Estos resultados son esenciales para la interpretación final de los modelos logísticos, asegurando que la predicción de DMG se realice con modelos estadísticamente robustos y clínicamente relevantes.

# Función para calcular los valores
evaluar_modelo <- function(modelo) {
  # AIC y BIC
  aic_valor <- AIC(modelo)
  bic_valor <- BIC(modelo)
  
  # Pseudo R² de McFadden
  r2_mcfadden <- 1 - (modelo$deviance / modelo$null.deviance)
  
  # Linktest
  linktest_result <- blr_linktest(modelo)
  p_value_hat <- linktest_result$coefficients["fit", "Pr(>|z|)"]
  p_value_hat2 <- linktest_result$coefficients["fit2", "Pr(>|z|)"]
  
  # Hosmer-Lemeshow (puedes ajustar los grupos)
  hl_test <- hoslem.test(modelo$y, fitted(modelo), g = 10)
  hl_p_value <- hl_test$p.value
  hl_statistic <- hl_test$statistic
  
  # Retornar resultados en un vector
  return(c(AIC = aic_valor, BIC = bic_valor, R2_McFadden = r2_mcfadden,
           Link_Hat = p_value_hat, Link_Hat2 = p_value_hat2, 
           Hosmer_Lemeshow_p = hl_p_value))
}

# Evaluar ambos modelos
resultados <- rbind(evaluar_modelo(modelo_1), evaluar_modelo(modelo_2))
rownames(resultados) <- c("Modelo 1", "Modelo 2")
colnames(resultados) <- c("AIC", "BIC", "R2 (McFadden)", "Link Hat", "Link Hat2",
                          "Hosmer-Lemeshow (p-value)")

# Convertir en data frame
df_resultados <- as.data.frame(resultados, check.names = FALSE)

# Formatear como tabla con kable
options(knitr.kable.NA = '')
knitr::kable(
  df_resultados,
  caption = "Resultados de pruebas de parsimonia, especificacion 
  y calibración de los modelos"
)
Resultados de pruebas de parsimonia, especificacion y calibración de los modelos
AIC BIC R2 (McFadden) Link Hat Link Hat2 Hosmer-Lemeshow (p-value)
Modelo 1 819.7739 874.7748 0.2010888 0 0.8219215 0.5488569
Modelo 2 812.4531 858.2872 0.2044227 0 0.5153524 0.7787658

El análisis comparativo de los dos modelos muestra que el Modelo 2 presenta mejores características estadísticas que el Modelo 1. Los valores más bajos tanto en el AIC (812.45 frente a 819.77) como en el BIC (858.29 frente a 874.77) indican que el Modelo 2 logra un mejor equilibrio entre la capacidad explicativa y la complejidad del modelo, siendo preferible según estos criterios de información.

El pseudo-R² de McFadden, aunque similar en ambos modelos, es ligeramente superior en el Modelo 2 (0.204 frente a 0.201), lo que sugiere una capacidad explicativa marginalmente mejor. Ambos modelos muestran un buen ajuste según la prueba de Hosmer-Lemeshow, con valores de p no significativos (0.78 para el Modelo 2 y 0.55 para el Modelo 1), lo que indica que las probabilidades predichas se alinean adecuadamente con las observadas.

El Linktest, que evalúa la correcta especificación del modelo, presenta mejores resultados en el Modelo 2, particularmente en el término cuadrático (0.52 frente a 0.82), lo que refuerza la idea de que este modelo está mejor especificado.

La Tabla 6 presenta el análisis de ROC-AUC para evaluar la capacidad discriminativa de los modelos logísticos en la predicción de Diabetes Mellitus Gestacional (DMG).

El área bajo la curva (AUC) permite medir la efectividad del modelo para diferenciar entre mujeres con y sin DMG.

# Función para calcular métricas ROC y generar gráficos
evaluar_roc_auc <- function(modelo, nombre_modelo) {
  # Calcular probabilidades predichas
  predicciones <- predict(modelo, type = "response")
  
  # Calcular curva ROC
  curva_roc <- roc(datos_cat$diab_g, predicciones, na.rm = TRUE)
  
  # Calcular AUC con intervalo de confianza
  auc_ci <- ci.auc(curva_roc)
  
  # Devolver resultados en una lista
  return(list(
    modelo = nombre_modelo,
    curva_roc = curva_roc,
    auc = auc_ci[2],  # Valor puntual de AUC
    auc_ci_inf = auc_ci[1],
    auc_ci_sup = auc_ci[3],
    predicciones = predicciones
  ))
}

# Evaluar los tres modelos
resultados_roc <- list(
  evaluar_roc_auc(modelo_1, "Modelo 1"),
  evaluar_roc_auc(modelo_2, "Modelo 2")
)

# Crear dataframe con resultados de AUC
resultados_auc <- data.frame(
  Modelo = sapply(resultados_roc, function(x) x$modelo),
  AUC = sapply(resultados_roc, function(x) x$auc),
  "IC inf" = sapply(resultados_roc, function(x) x$auc_ci_inf),
  "IC sup" = sapply(resultados_roc, function(x) x$auc_ci_sup),
  stringsAsFactors = FALSE,
  check.names = FALSE
)

# Formatear como tabla con kable
options(knitr.kable.NA = '')
knitr::kable(
  resultados_auc,
  caption = "Análisis de ROC-AUC de los modelos",
  row.names = FALSE
)
Análisis de ROC-AUC de los modelos
Modelo AUC IC inf IC sup
Modelo 1 0.7864078 0.7537950 0.8190207
Modelo 2 0.7907302 0.7581788 0.8232815

La Figura 2 presenta la comparación de las curvas ROC de los modelos logísticos desarrollados para predecir la Diabetes Mellitus Gestacional (DMG). Esta visualización permite evaluar la capacidad discriminativa de cada modelo, mostrando cómo varían sensibilidad y especificidad a diferentes umbrales de probabilidad

# Graficar todas las curvas ROC juntas
plot(resultados_roc[[1]]$curva_roc, col = "red", main = "Comparación de Curvas ROC",
     xlab = "1- Especificidad", ylab = "Sensibilidad")
lines(resultados_roc[[2]]$curva_roc, col = "blue")
legend("bottomright", 
       legend = c(paste("Modelo 1 (AUC =", round(resultados_roc[[1]]$auc, 3),")"),
                  paste("Modelo 2 (AUC =", round(resultados_roc[[2]]$auc, 3),")")),
       col = c("red", "blue", "green"), lwd = 2)
Curvas ROC de los tres modelos

Curvas ROC de los tres modelos

El análisis de las curvas ROC y el área bajo la curva (AUC) para ambos modelos revela un buen desempeño discriminativo en la predicción de diabetes mellitus gestacional, con una ligera ventaja para el Modelo 2.

El Modelo 1 muestra un AUC de 0.786 (IC 95%: 0.754-0.819), lo que indica una capacidad aceptable para distinguir entre mujeres que desarrollarán o no DMG. Esto se traduce en que el modelo clasificaría correctamente el 78.6% de los casos.

El Modelo 2 presenta un AUC ligeramente superior de 0.791 (IC 95%: 0.758-0.823), mostrando una mejora marginal pero consistente en su poder discriminatorio. Los intervalos de confianza de ambos modelos se superponen ampliamente, lo que sugiere que la diferencia en su desempeño no es estadísticamente significativa.

Ambos modelos caen en el rango de buena capacidad predictiva (AUC 0.7-0.9), siendo el Modelo 2 el que muestra el mejor balance global considerando también los resultados previos de AIC/BIC. La pequeña diferencia en AUC (0.004) podría reflejar la incorporación de variables adicionales en el Modelo 2 que aportan información marginalmente útil para la clasificación.

La Tabla 7 presenta los resultados de las comparaciones por pares de las curvas ROC-AUC utilizando la Prueba de DeLong, que permite evaluar si existen diferencias significativas en la capacidad discriminativa entre los modelos logísticos analizados.

# Pruebas de DeLong
comparacion_1_2 <- roc.test(resultados_roc[[1]]$curva_roc, 
                            resultados_roc[[2]]$curva_roc)

extraer_resultados <- function(prueba, modelo1, modelo2) {
  data.frame(
    Comparacion = paste(modelo1, "vs", modelo2),
    "Diferencia AUC" = prueba$estimate[1] - prueba$estimate[2],
    Estadistico = prueba$statistic,
    "p-value" = prueba$p.value,
    stringsAsFactors = FALSE,
    row.names = NULL,
    check.names = FALSE
  )
}

resultados_delong <- rbind(
  extraer_resultados(comparacion_1_2, "Modelo 1", "Modelo 2")
)

# Formatear como tabla con kable
options(knitr.kable.NA = '')
knitr::kable(
  resultados_delong,
  caption = "Resultados de las comparaciones por pares con prueba de DeLong",
  row.names = FALSE
)
Resultados de las comparaciones por pares con prueba de DeLong
Comparacion Diferencia AUC Estadistico p-value
Modelo 1 vs Modelo 2 -0.0043223 -0.6820552 0.4952041

La prueba de DeLong para comparar los Modelos 1 y 2 revela que la pequeña diferencia observada en sus AUC (0.786 vs 0.791) no es estadísticamente significativa (p = 0.495).

Tras evaluar todos los criterios estadísticos, el Modelo 2 emerge como la opción ligeramente superior, aunque con matices importantes:

La Tabla 8 presenta los Odds Ratios (OR) de las variables incluidas en el Modelo 2, lo que permite interpretar la magnitud de asociación entre cada factor y la presencia de Diabetes Mellitus Gestacional (DMG).

Además de los OR, la tabla incluye intervalos de confianza (IC 95%), lo que permite evaluar la precisión de las estimaciones. De igual manera incluye el p-value, secencial para determina la significancia estadística de la asociación entre cada variable

coeficientes <- exp(modelo_2$coefficients)

# Extraer intervalos de confianza de los odds ratios
conf_int <- exp(confint(modelo_2))

# Crear data frame con los resultados
tabla_odds <- data.frame(
  Predictores = c("Edad (20 a 29)","Edad (30+)",
                      "Sobrepeso","Obesidad grado I","Obesidad grado II",
                      "Obesidad grado III","Presión arterial sistólica",
                  "Creatinina","Urea"),
  OR = coeficientes[-1],  # Excluye el intercepto
  "IC inf" = conf_int[-1, 1],
  "IC sup" = conf_int[-1, 2],
  "p-value" = sum_2$coefficients[-1, 4],
  check.names = FALSE
)

# Formatear como tabla con kable
knitr::kable(
  tabla_odds,
  caption = "Odds Ratios de los predictores del Modelo 2",
  digits = 3,
  row.names = F
)
Odds Ratios de los predictores del Modelo 2
Predictores OR IC inf IC sup p-value
Edad (20 a 29) 1.924 0.707 6.204 0.229
Edad (30+) 5.169 1.889 16.752 0.003
Sobrepeso 4.518 2.600 8.181 0.000
Obesidad grado I 9.888 5.624 18.130 0.000
Obesidad grado II 15.884 8.421 31.233 0.000
Obesidad grado III 15.945 6.704 40.337 0.000
Presión arterial sistólica 1.007 0.989 1.025 0.447
Creatinina 3.534 0.980 13.346 0.058
Urea 0.940 0.903 0.976 0.002

La edad materna presenta un efecto umbral marcado. Las mujeres de 30+ años tienen un riesgo 5.2 veces mayor que las menores de 20 años (IC 1.9-16.8, p=0.003), mientras que el grupo de 20-29 años no muestra riesgo significativo (p=0.229). Esto sugiere que el incremento de riesgo ocurre principalmente a partir de la tercera década de vida.

El estado nutricional demuestra una relación particularmente impactante, el simple sobrepeso cuadruplica el riesgo (OR=4.5, IC 2.6-8.2), la obesidad grado I lo multiplica por 9.9 (IC 5.6-18.1) y las obesidades grados II y III elevan el riesgo 16 veces (IC 8.4-31.2 y 6.7-40.3 respectivamente) Todos estos valores son altamente significativos (p<0.001), confirmando al estado nutricional como el predictor más potente.

La urea muestra una asociación inversa significativa (OR=0.94 por unidad, IC 0.90-0.98, p=0.002), lo que sugiere un posible efecto protector que merece investigación adicional sobre sus mecanismos metabólicos.

Entre los factores no significativos, destacan la presión arterial sistólica y la creatinina. La presión arterial no mostró asociación con el riesgo de DMG (OR 1.007, IC 0.989-1.025, p=0.447), lo que sugiere que, en este modelo, las variaciones en la presión no contribuyen directamente al riesgo. La creatinina, aunque presenta un OR elevado (3.534), no alcanzó significancia estadística (IC 0.980-13.346, p=0.058), indicando una posible tendencia que merecería investigarse con muestras más grandes, pero que actualmente no puede considerarse un predictor confiable.

Conclusiones

El Modelo 2 destaca como la opción más robusta debido a su mejor equilibrio entre capacidad predictiva y parsimonia, mostrando indicadores estadísticos superiores (AIC/BIC más bajos) y una ligera mejora en el área bajo la curva ROC (AUC 0.791 frente a 0.786 del Modelo 1). Aunque esta diferencia no alcanza significancia estadística, el Modelo 2 incorpora variables adicionales como la urea, que aporta información valiosa al mostrar una asociación inversa significativa con el riesgo de DMG.

En cuanto a los predictores clave, se confirma que la obesidad es el factor de riesgo más determinante, con un efecto graduado que multiplica el riesgo hasta 16 veces en los grados más severos. La edad materna avanzada (≥30 años) también emerge como un predictor importante, quintuplicando el riesgo en comparación con mujeres menores de 20 años. Por otro lado, variables como la presión arterial sistólica y la creatinina no mostraron asociaciones significativas, lo que sugiere que su influencia en el desarrollo de DMG es limitada en este contexto.

Estos hallazgos subrayan la importancia de priorizar estrategias preventivas centradas en el control del peso antes y durante el embarazo, así como los dirigidos a mujeres de mayor edad. Además, el papel de la urea como posible marcador protector abre nuevas líneas de investigación sobre los mecanismos metabólicos involucrados en la DMG. A pesar de las limitaciones, como los intervalos de confianza amplios en algunas estimaciones, los resultados proporcionan una base sólida para la toma de decisiones clínicas y el desarrollo de futuros estudios. En conclusión, el Modelo 2, junto con los predictores identificados, ofrece una herramienta valiosa para la evaluación del riesgo de DMG y la implementación de intervenciones preventivas efectivas.

Bibliografía

1.
Metzger BE, Lowe LP, Dyer AR et al. Hyperglycemia and adverse pregnancy outcomes. New England Journal of Medicine. 2008;358(19):1991–2002.
2.
Association AD. Standards of medical care in diabetes. Diabetes Care. 2018;41(Supplement 1):S13–27.
3.
Organization WH. Diagnostic criteria and classification of hyperglycaemia first detected in pregnancy. WHO Report. 2013;1–63.
4.
Ferrara A. Increasing prevalence of gestational diabetes mellitus. Diabetes Care. 2007;30(Supplement 2):S141–6.
5.
Buchanan TA, Xiang AH. Gestational diabetes mellitus. The Journal of Clinical Investigation. 2005;115(3):485–91.
6.
Langer O, Yogev Y, Most O, Shaffir S. Gestational diabetes: The consequences of not treating. American Journal of Obstetrics and Gynecology. 2005;192(4):989–97.
7.
Dabelea D, Pettitt DJ, Hanson RL et al. Birth weight, type 2 diabetes, and insulin resistance in pima indian children and young adults. Diabetes Care. 2000;23(12):1795–800.