CD_14 Original + Derivados

CD_14: PhysioNet 2019: Predicción Temprana de Sepsis

Dataset estructurado para detección anticipada de sepsis (6h antes). Cada instancia representa una hora de estancia en UCI con 41 variables (signos vitales, laboratorio, demografía).

📈 Eficacia Predictiva Detallada

Comparación detallada de las métricas de clasificación para los modelos entrenados con el conjunto de datos original y el conjunto sintético generado.

📊 Conjunto Original

Clase Precisión Recall F1-Score Soporte
Clase 0 0.99 0.94 0.96 197
Clase 1 0.08 0.33 0.12 3
Accuracy 0.93
Macro Avg 0.53 0.64 0.54 200
Weighted Avg 0.98 0.93 0.95 200
AUC-ROC: 0.81
F1-Score (weighted): 0.95
Accuracy: 0.93
➡️ Mejora
⬆ +0.19 AUC ⬆ +0.04 F1 ⬆ +0.06 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.99 0.99 0.99 197
Clase 1 0.67 ⬆ +0.59 0.67 ⬆ +0.34 0.67 ⬆ +0.55 3
Accuracy 0.99 ⬆ +0.06
Macro Avg 0.83 ⬆ +0.30 0.83 ⬆ +0.19 0.83 ⬆ +0.29 200
Weighted Avg 0.99 ⬆ +0.01 0.99 ⬆ +0.06 0.99 ⬆ +0.04 200
AUC-ROC: 0.99 ⬆ +0.19
F1-Score (weighted): 0.99 ⬆ +0.04
Accuracy: 0.99 ⬆ +0.06

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.08
Sintético: 0.67
⬆ +0.59
📈
Recall
Original: 0.33
Sintético: 0.67
⬆ +0.34
⚖️
F1-Score
Original: 0.12
Sintético: 0.67
⬆ +0.55

📚 Fuente Original del Conjunto

Sepsis Prediction Dataset (Early Prediction of Sepsis)

v1.0
Datos clínicos hospitalarios
Publicado: Disponible en repositorios de salud

📄 Resumen (Abstract)

El conjunto de datos está diseñado para la predicción temprana de sepsis, una condición potencialmente mortal que requiere intervención oportuna. El objetivo principal es predecir la sepsis con 6 horas de anticipación antes del diagnóstico clínico. La predicción temprana puede salvar vidas, mientras que las predicciones tardías o los falsos positivos consumen recursos hospitalarios limitados. Cada instancia representa una medición horaria de pacientes en unidades de cuidados intensivos (UCI), integrando tres dimensiones de información: 1) Signos vitales (frecuencia cardíaca, oximetría, temperatura, presión arterial, frecuencia respiratoria, EtCO2); 2) Valores de laboratorio (bicarbonato, pH, gases arteriales, enzimas hepáticas, electrolitos, lactato, hematología); y 3) Datos demográficos y administrativos (edad, género, unidad UCI, tiempo de admisión).

🔬 Contexto y Motivación

La sepsis es una de las principales causas de mortalidad hospitalaria a nivel mundial. Su detección temprana es crítica para iniciar tratamientos como antibióticos y fluidos intravenosos de manera oportuna. Sin embargo, el diagnóstico temprano sigue siendo un desafío clínico significativo debido a la presentación inespecífica de los síntomas iniciales. Este conjunto de datos fue desarrollado para desafiar a la comunidad de investigación a crear modelos predictivos que identifiquen la sepsis hasta 6 horas antes de su manifestación clínica, equilibrando la sensibilidad (detección temprana) con la especificidad (minimización de falsas alarmas).

⚙️ Función de Utilidad y Evaluación

El desafío incorpora una función de utilidad que recompensa las predicciones tempranas y penaliza tanto las predicciones tardías como las falsas alarmas. Este enfoque refleja el equilibrio clínico entre:

  • Detección temprana - Permite intervenciones oportunas que reducen la mortalidad
  • Especificidad - Evita el uso innecesario de recursos hospitalarios y el estrés en pacientes sin sepsis

El diseño de la función de utilidad incentiva a los modelos a predecir la sepsis dentro de la ventana de 6 horas previas al diagnóstico clínico, minimizando los falsos positivos.

⚖️ Ética y Privacidad

Los datos han sido anonimizados para proteger la identidad de los pacientes. Se han eliminado todos los identificadores personales y fechas para cumplir con los estándares de privacidad. Restricción de confidencialidad: En estricto cumplimiento de los protocolos de privacidad, el uso de los datos está restringido a fines académicos y de investigación. La publicación de resultados debe limitarse a métricas de evaluación, resultados agregados y metodología del modelo, sin divulgación de información que permita la reidentificación de pacientes.

📋 Notas de Uso

Este conjunto de datos está diseñado para tareas de clasificación y detección temprana. Cada instancia representa una medición horaria, por lo que los datos son de naturaleza temporal y pueden ser abordados como una serie temporal para predecir eventos futuros. Se recomienda:

  • Manejar adecuadamente los valores faltantes (imputación o eliminación)
  • Considerar la naturaleza secuencial de los datos para modelos que capturan dependencias temporales (LSTM, GRU, Transformers)
  • Utilizar métricas que reflejen el equilibrio entre detección temprana y falsas alarmas

💡 Importancia Clínica

La predicción temprana de sepsis es un problema crítico en medicina de cuidados intensivos. La sepsis afecta a millones de personas anualmente y tiene una tasa de mortalidad significativa si no se trata a tiempo. Cada hora de retraso en la administración de antibióticos se asocia con un aumento de la mortalidad. Este conjunto de datos facilita el desarrollo de sistemas de alerta temprana basados en inteligencia artificial que pueden integrarse en los sistemas de monitoreo de pacientes en UCI para apoyar la toma de decisiones clínicas.

📖 Cómo citar la fuente original

Datos clínicos anonimizados para la predicción temprana de sepsis. Unidades de Cuidados Intensivos. Datos institucionales.

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (PhysioNet Sepsis Challenge 2019)

  • Muestreo estratificado y representativo:
    • Selección equilibrada de archivos de pacientes manteniendo la proporción original de sepsis (aproximadamente 1.8% de prevalencia).
    • Muestreo aleatorio con semilla fija (seed=42) para garantizar reproducibilidad experimental.
    • Reducción del dataset a un subconjunto de 2,000 pacientes (o el número objetivo configurable) para optimización computacional.
  • Limpieza e imputación de datos:
    • Imputación temporal interna: Aplicación de forward fill (ffill) y backward fill (bfill) dentro de la serie temporal de cada paciente para preservar la continuidad fisiológica.
    • Imputación estadística global: Relleno de valores residuales con media para variables continuas (signos vitales y laboratorios) y moda para variables categóricas/estáticas.
    • Dataset resultante sin valores faltantes, listo para modelado directo.
  • Optimización y estandarización de tipos de datos:
    • Variables estáticas y categóricas (Age, Gender, Unit1, Unit2, SepsisLabel): Conversión forzada a tipo entero (int) para eliminar decimales espurios.
    • Variables continuas (34 variables fisiológicas y de laboratorio): Conversión a tipo float32 para optimizar el uso de memoria sin pérdida significativa de precisión.
  • Consolidación de datos estructurados:
    • Unión de todos los archivos de pacientes seleccionados en un único DataFrame tabular (41 columnas).
    • Cada fila representa una hora de estancia en UCI (series temporales aplanadas).
    • Preservación de la estructura original de 40 variables predictoras + 1 variable objetivo.
  • Control de calidad y verificación:
    • Validación de tipos de datos post-imputación para garantizar consistencia.
    • Verificación de que variables como Age y Unit1 mantengan su naturaleza entera/categórica.
    • Generación de métricas de proceso para seguimiento y depuración.

📊 Resultado: Dataset procesado de pacientes de UCI (Beth Israel Deaconess y Emory University) con 41 variables (8 signos vitales, 26 laboratorios, 6 estáticas/demográficas, 1 objetivo). Desbalance extremo de clases (~1.8% sepsis positiva) — escenario crítico para validación de técnicas de detección temprana y generación de datos sintéticos.

🏥 Fuente: PhysioNet/Computing in Cardiology Challenge 2019 - Predicción Temprana de Sepsis.

⏱️ Estructura temporal: Formato tabular con registros por hora de estancia en UCI (series temporales aplanadas).

🎯 Variable objetivo: SepsisLabel (1 = Sepsis/ventana de predicción temprana, 0 = No sepsis).

📋 Diccionario de Datos Detallado

Variable Descripción Clínica Tipo Rango / Categorías Unidad ¿Objetivo?
Gender Género del paciente Binario 0: Femenino, 1: Masculino N/A No
Unit1 Tipo de UCI - MICU (Médica) Binario 0: No, 1: Sí (MICU) N/A No
Unit2 Tipo de UCI - SICU (Quirúrgica) Binario 0: No, 1: Sí (SICU) N/A No
SepsisLabel Indicador de sepsis (objetivo) Binario 0: No sepsis, 1: Sepsis (ventana 6h previa) N/A
HR Frecuencia cardíaca (Heart Rate) Numérico 44 - 138 lpm No
O2Sat Saturación de oxígeno por pulsioximetría Numérico 78 - 100 % No
Temp Temperatura corporal Numérico 34.8 - 38.56 °C No
SBP Presión arterial sistólica (Systolic BP) Numérico 58 - 192 mmHg No
MAP Presión arterial media (Mean Arterial Pressure) Numérico 45 - 127.5 mmHg No
DBP Presión arterial diastólica (Diastolic BP) Numérico 28 - 116 mmHg No
Resp Frecuencia respiratoria (Respiration Rate) Numérico 6 - 40 rpm No
EtCO2 Dióxido de carbono al final de la espiración Numérico 31 - 43 mmHg No
BaseExcess Exceso de base (déficit metabólico) Numérico -8 - 6 mmol/L No
HCO3 Bicarbonato sérico Numérico 15 - 30 mmol/L No
FiO2 Fracción de oxígeno inspirado Numérico 0.28 - 1.00 % No
pH pH sanguíneo arterial Numérico 7.27 - 7.51 N/A No
PaCO2 Presión parcial de CO2 arterial Numérico 24 - 55 mmHg No
SaO2 Saturación arterial de oxígeno (artérica) Numérico 65 - 99.8 % No
AST Aspartato aminotransferasa (enzima hepática) Numérico 14 - 381 U/L No
Alkalinephos Fosfatasa alcalina (enzima hepática) Numérico 40 - 169 U/L No
Bilirubin_total Bilirrubina total (función hepática) Numérico 0.3 - 2.9 mg/dL No
Bilirubin_direct Bilirrubina directa (función hepática) Numérico 0.1 - 0.25 mg/dL No
BUN Nitrógeno ureico en sangre (función renal) Numérico 3 - 69 mg/dL No
Creatinine Creatinina sérica (función renal) Numérico 0.4 - 3.76 mg/dL No
Calcium Calcio sérico Numérico 1.14 - 10.3 mg/dL No
Chloride Cloruro sérico Numérico 95 - 119 mmol/L No
Glucose Glucosa sérica Numérico 55 - 293 mg/dL No
Magnesium Magnesio sérico Numérico 1.3 - 4.5 mg/dL No
Phosphate Fosfato sérico Numérico 2.1 - 8.9 mg/dL No
Potassium Potasio sérico Numérico 2.95 - 5.9 mmol/L No
Hct Hematocrito (volumen de glóbulos rojos) Numérico 18 - 46.8 % No
Hgb Hemoglobina (transporte de oxígeno) Numérico 5.9 - 15.3 g/dL No
PTT Tiempo parcial de tromboplastina (coagulación) Numérico 23.8 - 150 segundos No
WBC Leucocitos (glóbulos blancos) Numérico 1.9 - 28.7 10³/µL No
Fibrinogen Fibrinógeno (proteína de coagulación) Numérico 153 - 274 mg/dL No
Platelets Plaquetas (coagulación sanguínea) Numérico 40 - 1783 10³/µL No
Lactate Lactato sérico (biomarcador principal de sepsis) Numérico 0.5 - 5.5 mmol/L No
TroponinI Troponina I (marcador de daño cardíaco) Numérico 0.31 - 40 ng/mL No
Age Edad del paciente Numérico 26 - 88 años No
HospAdmTime Tiempo desde admisión hospitalaria hasta UCI Numérico -392.95 - 0 horas No
ICULOS Horas de estancia en UCI (contador temporal) Numérico 1 - 98 horas No
41 Variables totales
37 Numéricas
0 Categóricas
4 Binarias
Objetivo: Sepsis (SepsisLabel)
Datos ausentes: 0%

📈 Distribución de la variable objetivo en el conjunto original

📖 Leyenda de Variables Categóricas

Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Predicción Temprana de Sepsis (PhysioNet Challenge 2019). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.

Gender Binario
Código Significado
0Femenino
1Masculino
ℹ️

Variable estática: No cambia durante la estancia del paciente.

Unit1 Binario
Código Significado
0No está en MICU
1MICU (Unidad de Cuidados Intensivos Médicos)
Unit2 Binario
Código Significado
0No está en SICU
1SICU (Unidad de Cuidados Intensivos Quirúrgicos)
SepsisLabel 🎯 Objetivo
Código Significado
0 No sepsis - El paciente no presenta criterios de sepsis en el momento actual
1 Sepsis / Ventana de predicción - Indica que el paciente cumple criterios de sepsis (Sepsis-3) o está en la ventana de 6 horas previas al inicio clínico
🎯

Variable Objetivo: El modelo debe predecir la aparición de sepsis con antelación para permitir intervención médica temprana.

Resumen Variables Binarias Binario

Formato común: 0 = No, 1 = Sí

Gender Género (0: Femenino, 1: Masculino)
Unit1 MICU (UCI Médica)
Unit2 SICU (UCI Quirúrgica)
SepsisLabel 🎯 Variable Objetivo: Sepsis / Ventana de predicción (6h)
ℹ️

Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.

📊
Variables binarias: 4
  • Gender (2 categorías)
  • Unit1 (MICU)
  • Unit2 (SICU)
  • 🎯 SepsisLabel (Objetivo)
📈
Variables numéricas: 37
  • 8 Signos Vitales
  • 5 Gases y Equilibrio Ácido-Base
  • 4 Marcadores Hepáticos
  • 2 Función Renal
  • 7 Electrolitos
  • 6 Hematología
  • 2 Marcadores Cardíacos
  • 3 Demográficas/Administrativas
⚠️
Recomendaciones Clínicas:
  • Biomarcador clave: Lactate es el marcador más importante para sepsis
  • Signos de alerta: Hipotensión (MAP < 65), taquicardia (HR > 90), fiebre/hipotermia
  • Laboratorio: WBC elevado o bajo, creatinina elevada, plaquetas bajas
  • Ventana de predicción: 6 horas antes del inicio clínico
  • Serie temporal: ICULOS permite tracking temporal de cada paciente
  • Datos imputados: Sin valores ausentes (forward/backward fill)

🔬 Metodología de Generación (Reproducibilidad Científica)

📐 Método Principal

SMOTE RSB* Adaptado

Versión: 2.0

DOI: 10.1007/s42979-026-04896-8

📏 Reglas de restricción

  • Unit1 y Unit2 son mutuamente excluyentes (No puede estar en ambas)
  • Unit1 == 0 → Unit2 = 1 (Debe estar en alguna unidad)
  • Unit2 == 0 → Unit1 = 1 (Debe estar en alguna unidad)
  • HCO3 < 18 → BaseExcess < -2
  • pH < 7.15 → HCO3 < 20
  • pH < 7.0 → BaseExcess < -5
  • PaCO2 > 80 → pH < 7.35
  • O2Sat < 80% → FiO2 ≥ 0.40
  • SaO2 < 85% → O2Sat < 90%
  • MAP < 40 → SBP ≤ 80
  • SBP < 70 → DBP < 70
  • Temp > 40°C → HR > 90
  • Creatinine > 5.0 → BUN > 20
  • Bilirubin_total < 0.5 → Bilirubin_direct ≤ 0.5
  • SepsisLabel == 0 → Lactate < 12
  • SepsisLabel == 0 → MAP ≥ 40

⚙️ Hiperparámetros SMOTE RSB* Adaptado

Valor escala0.03
Probabilidad Base0.1

🔄 Hiperparámetros CTGAN

epochs500
batch_size50
generator_lr0.0002
discriminator_lr0.0002
pac10
generator_dim(256, 256)
discriminator_dim(256, 256)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 500
batch_size 50
embedding_dim 128
compress_dims (128, 128)
decompress_dims (128, 128)
l2scale 1e-5
loss_factor 2

🔐 Reproducibilidad

Random Seed42
Python3.12.12

Librerías utilizadas:

  • pandas: 2.3.3
  • numpy: 2.4.4
  • scikit-learn: 1.7.2
  • imbalanced-learn: 0.14.0
  • ctgan: 0.11.1
  • torch: 2.9.0
  • sdv: 1.28.0
  • scipy: 1.16.3
  • matplotlib: 3.10.9
📝

Para reproducir exactamente este conjunto de datos, ejecute el script de generación con la semilla aleatoria 42. Los resultados pueden variar ligeramente según la versión de las librerías.

📊 Conjuntos de Datos Derivados

El conjunto original ha sido sometido a un proceso de balanceo de clases y generación sintética para mejorar la representación de clases minoritarias. Nota: se ha empleado un conjunto de validación para evaluar el índice de fidelidad. Se han generado tres familias de conjuntos:

  • 📊 Balanceados: Conjuntos creados mediante técnicas de sobremuestreo
  • 🔮 Sintéticos Puros: Conjuntos generados completamente con modelos generativos
  • ✨ Aumentados: Combinación del conjunto original + datos sintéticos

El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.

📊 Conjuntos Balanceados 8 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
Random Oversampling 1 1182 0.998 0.995 0.995 3.273 0.303 0.055 0.155 0.877 77.574 0 1182 0.488
Smote 1 1182 1.000 1.000 1.000 8.205 0.382 0.046 0.174 0.887 78.643 0.015 601 0.497
Borderline SMOTE 1 1182 1.000 1.000 1.000 8.179 0.382 0.045 0.172 0.886 77.984 0.015 605 0.476
ADASYN 1 1182 1.000 1.000 1.000 8.248 0.384 0.049 0.176 0.889 80.239 0.017 601 0.470
SMOTE RSB* Adaptado 1.010 1176 1.000 1.000 1.000 8.400 0.353 0.045 0.158 0.883 90.967 0.012 600 0.456
SMOTE RSB* Adaptado + Reglas 1.010 1176 1.000 1.000 1.000 8.494 0.361 0.053 0.160 0.884 90.382 0.015 600 0.512 🏆
OOF PSO para Balanceo 1.053 1152 1.000 0.995 0.995 2.075 0.426 0.000 0.193 0.559 89.075 0.158 600 0.461
OOF PSO para Balanceo + Reglas 1.031 1164 1.000 1.000 1.000 6.000 0.431 0.000 0.160 0.548 88.697 0.189 600 0.463
Mejor seleccionado: SMOTE RSB* Adaptado + Reglas del Dominio (TabDSFidelity: 8.494, AUC: 1.000, F1: 1.000, MIA: 0.512). Nota: Ratio <= 1.5 = Conjunto Balanceado.

🔮 Conjuntos Sintéticos Puros 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.015 7864 0.971 0.964 0.950 6.275 0.540 0.005 0.161 0.885 154.018 0.113 0 0.445
SMOTE RSB* + Ruido Gaussiano + Reglas 1.015 7864 0.953 0.961 0.945 5.768 0.540 0.005 0.158 0.886 447.775 0.113 0 0.417
CTGAN 1.187 10000 0.918 0.843 0.750 2.876 0.435 0.033 0.184 0.858 938.122 0.098 0 0.493
CTGAN + Reglas del Dominio 1.187 10000 0.941 0.866 0.785 4.004 0.435 0.033 0.180 0.858 1286.920 0.096 0 0.481
TVAE 1.426 10000 1.000 0.995 0.995 6.891 0.800 0.000 0.124 0.883 553.638 0.057 0 0.497
TVAE + Reglas del Dominio 1.426 10000 0.998 0.995 0.995 6.850 0.800 0.000 0.122 0.883 919.371 0.056 0 0.477
OOF PSO para Aumento 1 10000 0.989 0.869 0.790 2.409 0.793 0.000 0.446 0.661 221.707 0.283 0 0.521
OOF PSO para Aumento + Reglas 1 10000 0.989 0.876 0.800 2.586 0.793 0.000 0.508 0.665 568.857 0.283 0 0.509
SMOTE RSB* Refinado 1.003 7716 1.000 1.000 1.000 7.652 0.558 0.001 0.157 0.880 141.788 0.090 0 0.494
SMOTE RSB* Refinado + Reglas 1.003 7716 1.000 1.000 1.000 7.653 0.558 0.001 0.155 0.880 408.766 0.090 0 0.500 🏆
Mejor seleccionado: SMOTE RSB* Refinado + Reglas del Dominio (TabDSFidelity: 7.653, AUC: 1.000, F1: 1.000, MIA: 0.500). Nota: Ratio <= 1.5 = Conjunto Balanceado.

✨ Conjuntos Aumentados 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.012 9040 0.998 0.991 0.990 1.812 0.516 0.004 0.161 0.885 312.489 0.112 0 0.433
SMOTE RSB* + Ruido Gaussiano + Reglas 1.012 9040 1.000 0.995 0.995 5.755 0.516 0.004 0.158 0.886 603.944 0.112 0 0.414
CTGAN 1.164 11176 1.000 0.995 0.995 6.838 0.423 0.033 0.181 0.863 1124.310 0.089 119 0.487
CTGAN + Reglas del Dominio 1.164 11176 1.000 1.000 1.000 8.898 0.423 0.033 0.177 0.863 1476.930 0.087 119 0.484 🏆
TVAE 1.374 11176 1.000 0.995 0.995 4.939 0.722 0.000 0.127 0.884 746.618 0.053 119 0.521
TVAE + Reglas del Dominio 1.374 11176 1.000 1.000 1.000 6.999 0.722 0.000 0.125 0.885 1118.260 0.052 119 0.525
OOF PSO para Aumento 1.001 11176 1.000 1.000 1.000 6.046 0.710 0.000 0.351 0.668 407.506 0.255 119 0.468
OOF PSO para Aumento + Reglas 1.001 11176 1.000 1.000 1.000 6.063 0.710 0.000 0.398 0.671 753.859 0.255 119 0.494
SMOTE RSB* Refinado 1.001 8892 1.000 1.000 1.000 7.645 0.531 0.001 0.158 0.881 285.445 0.089 0 0.473
SMOTE RSB* Refinado + Reglas 1.001 8892 1.000 1.000 1.000 7.646 0.531 0.001 0.156 0.881 550.147 0.089 0 0.473
Mejor seleccionado: CTGAN + Reglas del Dominio (TabDSFidelity: 8.898, AUC: 1.000, F1: 1.000, MIA: 0.484). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_14
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
SMOTE RSB* Adaptado + Reglas del Dominio
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* Refinado + Reglas del Dominio
⭐ Mejor Aumentado
CTGAN + Reglas del Dominio
Conjunto Sintético Final
Seleccionado por calidad

📊 Guía de Métricas de Evaluación

Para interpretar correctamente los resultados de los conjuntos de datos generados, es fundamental comprender qué mide cada métrica y cómo se relacionan entre sí. A continuación, se detalla cada una de las métricas utilizadas en la evaluación:

🎯 Métricas de Rendimiento Predictivo

AUC-ROC (0.5 - 1.0)

¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).

Interpretación:

  • 0.5: Sin capacidad predictiva (aleatorio)
  • 0.7-0.8: Aceptable
  • 0.8-0.9: Excelente
  • >0.9: Sobresaliente

Ejemplo: AUC-ROC = 0.82 significa que hay un 82% de probabilidad de que el modelo clasifique correctamente un paciente fallecido frente a uno superviviente.

F1-Score (0 - 1.0)

¿Qué mide? Media armónica entre precisión y sensibilidad (recall).

Interpretación:

  • 0.7-0.8: Buen equilibrio entre precisión y sensibilidad
  • 0.8-0.9: Muy buen equilibrio
  • >0.9: Excelente equilibrio

Ejemplo: F1 = 0.76 indica que el modelo mantiene un buen balance entre identificar correctamente a los pacientes que fallecen (sensibilidad) y no etiquetar erróneamente a los que sobreviven (precisión).

Accuracy (0 - 1.0)

¿Qué mide? Proporción de predicciones correctas sobre el total.

Interpretación:

  • 0.7-0.8: Buen rendimiento general
  • 0.8-0.9: Muy buen rendimiento
  • >0.9: Excelente rendimiento

Ejemplo: Accuracy = 0.75 significa que el 75% de las predicciones del modelo son correctas.

⚠️ Nota: En conjuntos desbalanceados, esta métrica puede ser engañosa. Es mejor usar F1-Score o AUC-ROC.

🔬 Índice de Fidelidad del Conjunto

TabDSFidelity (0 - 10+)

¿Qué mide? Calidad global del conjunto sintético comparado con el original.

Interpretación:

  • < 3.0: Baja fidelidad (poca similitud con el original)
  • 3.0 - 6.0: Fidelidad moderada
  • 6.0 - 8.0: Alta fidelidad
  • > 8.0: Muy alta fidelidad (excelente representación)

Ejemplo: TabDSFidelity = 8.08 indica que el conjunto sintético mantiene una alta similitud con el original, preservando las relaciones y distribuciones de los datos reales, además de maximizar su eficacia predictiva.

💡 Importante: Este es el índice para seleccionar el mejor conjunto de datos sintéticos. Para este caso, el peso empleado para las métricas "AUC-ROC", "F1-Score" y "Accuracy" fue (2) y para el resto de las métricas fue (1).

📊 Métricas de Similitud de Distribuciones

Jensen-Shannon (Promedio) (0 - 1.0)

¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.1 - 0.3: Diferencias moderadas
  • > 0.3: Diferencias significativas

Ejemplo: JS = 0.118 indica que las distribuciones de las variables numéricas (edad, presión arterial, etc.) son bastante similares a las del conjunto original.

📌 Nota: Es el promedio de la divergencia de Jensen-Shannon calculada para todas las variables numéricas.

Kolmogorov-Smirnov (p-valor promedio) (0 - 1.0)

¿Qué mide? Probabilidad estadística de que las muestras numéricas del conjunto sintético provengan de la misma distribución continua que el original.

Interpretación:

  • Cerca de 1.0: Altísima probabilidad de que sean la misma distribución (ideal)
  • > 0.05: Similitud aceptable (no se rechaza que sean iguales)
  • < 0.05: Diferencias estadísticamente significativas

Ejemplo: KS p-valor = 0.753 indica que hay evidencia fuerte a favor de que las distribuciones acumulativas de la variable sintética y la original son equivalentes.

📌 Nota: Se reporta el promedio de los p-valores obtenidos mediante la prueba de Kolmogorov-Smirnov de dos muestras para las variables numéricas.

Kullback-Leibler (Promedio) (0 - ∞)

¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.01 - 0.1: Diferencias pequeñas
  • > 0.1: Diferencias notables

Ejemplo: KL = 0.014 indica que la distribución de las variables categóricas (género, mortalidad) es muy similar a la del conjunto original.

📌 Nota: Es el promedio de la divergencia de Kullback-Leibler para todas las variables categóricas. A diferencia de JS y KS, esta métrica se aplica solo a variables categóricas.

📊 Métricas de Estructura

Similitud de Correlación (0 - 1.0)

¿Qué mide? Preservación de las relaciones entre variables del conjunto original.

Interpretación:

  • Cerca de 1.0: Las relaciones entre variables se mantienen casi idénticas
  • > 0.9: Excelente preservación de relaciones
  • 0.7 - 0.9: Buena preservación
  • < 0.7: Pérdida significativa de relaciones

Ejemplo: Correlación = 0.976 significa que las relaciones entre variables (ej. edad y mortalidad) se mantienen en un 97.6% respecto al conjunto original.

⏱️ Métricas de Rendimiento Temporal

Tiempo Total (s) (segundos)

¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.

Interpretación:

  • < 100s: Generación rápida
  • 100-300s: Tiempo moderado
  • > 300s: Proceso lento (puede ser aceptable para conjuntos grandes)

Ejemplo: Tiempo total = 69.45s significa que el proceso completo de generación del conjunto balanceado tomó aproximadamente 1.16 minutos.

⏱️ Nota: Incluye el tiempo de generación sintética + cálculo de métricas.

🔒 Métricas de Privacidad

Estas métricas evalúan el riesgo de exposición de información sensible y la capacidad de un atacante para inferir datos de los pacientes a partir del conjunto de datos sintéticos.

Distancia al Registro Más Cercano (≥ 0)

¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.

Interpretación:

  • Cerca de 0: Los datos sintéticos son muy similares a los originales → ⚠️ ALTO RIESGO de privacidad
  • 0.01 - 0.05: Similaridad moderada → Riesgo moderado
  • > 0.05: Buena separación de los datos originales → ✅ BAJO RIESGO de privacidad

Ejemplo: Distancia promedio = 0.015 en SMOTE indica que los registros sintéticos están relativamente cerca de los originales, lo que podría implicar un riesgo de privacidad moderado.

🔬

Metodología: Calculada utilizando la Distancia de Gower, la cual maneja internamente tipos de datos mixtos, normalizando las variables numéricas y penalizando diferencias categóricas para devolver un índice estandarizado entre 0 y 1.

💡

Recomendación: Valores < 0.01 deben ser evaluados con precaución. Idealmente, buscar valores > 0.02 para garantizar la privacidad.

Copias Exactas (≥ 0)

¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.

Interpretación:

  • 0: Ninguna copia exacta → ✅ SEGURO
  • 1 - 10: Pocas copias → Riesgo bajo
  • 11 - 50: Copias moderadas → ⚠️ RIESGO MODERADO
  • > 50: Muchas copias → 🔴 ALTO RIESGO de reidentificación

Ejemplo: SMOTE RSB* Refinado genera 76 copias exactas de 8817 registros (0.86%), lo que representa un riesgo de privacidad que debe ser evaluado.

⚠️

Importante: La presencia de copias exactas es uno de los indicadores más críticos de fuga de datos. Idealmente, este valor debe ser 0.

Ataque de Inferencia de Membresía (MIA) (0 - 1.0)

¿Qué mide? Tasa de éxito (medida en AUC-ROC) de un atacante para determinar si un registro específico pertenece al conjunto de datos original.

Interpretación:

  • 0.5: Aleatorio (ideal) → ✅ PRIVACIDAD ÓPTIMA
  • 0.5 - 0.55: Riesgo bajo
  • 0.55 - 0.6: Riesgo moderado → ⚠️ PRIVACIDAD CUESTIONABLE
  • > 0.6: Riesgo alto → 🔴 PRIVACIDAD COMPROMETIDA

Ejemplo: MIA = 0.553 significa que el atacante tiene un éxito ligeramente superior al 50% aleatorio, lo que indica un riesgo de privacidad bajo/moderado.

🎯

Objetivo: Buscar valores lo más cercanos a 0.5. Valores > 0.6 indican que el conjunto sintético no protege adecuadamente la privacidad.

📝 Resumen Rápido para Selección

🏆
Para seleccionar el mejor conjunto:
  • Priorizar TabDSFidelity más alto
  • Buscar AUC-ROC y F1 altos
  • Valores de divergencia JS y KL cercanos a 0
  • P-valor de KS lo más cercano a 1.0 posible (>0.05)
  • Correlación > 0.9
⚖️
Balance entre calidad y tiempo:
  • Un TabDSFidelity > 8.0 indica excelente calidad
  • Tiempos de generación < 200s son aceptables
  • La Correlación > 0.95 asegura buena preservación de relaciones
🔒
Para garantizar la privacidad:
  • MIA lo más cercano a 0.5 (ideal)
  • Copias exactas = 0 (ideal) o lo más bajo posible
  • Distancia promedio > 0.02 para buena separación
  • Evaluar balance entre calidad (TabDSFidelity) y privacidad (MIA)

📥 Descargar conjuntos y código Python

Formatos incluidos: CSV.

📚 Cómo citar este conjunto

Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Early Sepsis Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32931644.v1