CD_13 Original + Derivados

CD_13: Diabetes 130-US Hospitals: Predicción de Readmisión

Dataset de 130 hospitales (1999-2008) para clasificación de readmisiones tempranas. Integra variables demográficas, utilización de recursos, clínicas y farmacológicas.

📈 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.88 1.00 0.94 51
Clase 1 0.00 0.00 0.00 7
Accuracy 0.88
Macro Avg 0.44 0.50 0.47 58
Weighted Avg 0.77 0.88 0.82 58
AUC-ROC: 0.42
F1-Score (weighted): 0.82
Accuracy: 0.88
➡️ Mejora
⬆ +0.13 AUC ⬆ +0.02 F1 ⬇ -0.02 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.89 0.96 0.92 51
Clase 1 0.33 ⬆ +0.33 0.14 ⬆ +0.14 0.20 ⬆ +0.20 7
Accuracy 0.86 ⬇ -0.02
Macro Avg 0.61 ⬆ +0.17 0.55 ⬆ +0.05 0.56 ⬆ +0.09 58
Weighted Avg 0.82 ⬆ +0.05 0.86 ⬇ -0.02 0.84 ⬆ +0.02 58
AUC-ROC: 0.56 ⬆ +0.13
F1-Score (weighted): 0.84 ⬆ +0.02
Accuracy: 0.86 ⬇ -0.02

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.00
Sintético: 0.33
⬆ +0.33
📈
Recall
Original: 0.00
Sintético: 0.14
⬆ +0.14
⚖️
F1-Score
Original: 0.00
Sintético: 0.20
⬆ +0.20

📚 Fuente Original del Conjunto

Diabetes 130-US Hospitals for Years 1999-2008

v1.0
Strack, B., DeShazo, J., Gennings, C., Olmo, J., Ventura, S., Cios, K., & Clore, J.
Publicado: 2 de mayo de 2014

📄 Resumen (Abstract)

El conjunto de datos representa diez años (1999-2008) de atención clínica en 130 hospitales de EE.UU. y redes integradas de prestación de servicios. Cada fila corresponde a registros hospitalarios de pacientes diagnosticados con diabetes, que fueron sometidos a pruebas de laboratorio, recibieron medicamentos y tuvieron una estancia de hasta 14 días. El objetivo es determinar el reingreso temprano del paciente dentro de los 30 días posteriores al alta. El problema es importante porque, a pesar de la evidencia de alta calidad que muestra mejores resultados clínicos para pacientes diabéticos que reciben diversas intervenciones preventivas y terapéuticas, muchos pacientes no las reciben. Esto puede atribuirse en parte al manejo arbitrario de la diabetes en entornos hospitalarios, que no logran atender el control glucémico. La falta de una atención adecuada a la diabetes no solo aumenta los costos de gestión para los hospitales (ya que los pacientes son readmitidos), sino que también impacta la morbilidad y mortalidad de los pacientes, quienes pueden enfrentar complicaciones asociadas a la diabetes.

🔬 Métodos

La información fue extraída de la base de datos de encuentros hospitalarios que cumplieron con los siguientes criterios: (1) encuentro hospitalario (admisión hospitalaria); (2) encuentro diabético, es decir, durante el cual se ingresó cualquier tipo de diabetes como diagnóstico en el sistema; (3) estancia de al menos 1 día y como máximo 14 días; (4) pruebas de laboratorio realizadas durante el encuentro; (5) medicamentos administrados durante el encuentro. El conjunto de datos contiene atributos como número de paciente, raza, género, edad, tipo de admisión, tiempo en el hospital, especialidad médica del médico que admite, número de pruebas de laboratorio realizadas, resultado de la prueba HbA1c, diagnóstico, número de medicamentos, medicamentos para la diabetes, número de visitas ambulatorias, hospitalarias y de emergencia en el año anterior a la hospitalización, entre otros. El objetivo es predecir el reingreso hospitalario temprano (dentro de 30 días del alta).

📊 Descripción de Datos

El dataset contiene 101,766 instancias con 47 características de tipo categórico y entero. Incluye variables demográficas (raza, género, edad, peso), administrativas (tipo de admisión, fuente de admisión, destino al alta, especialidad médica), clínicas (tiempo en hospital, número de procedimientos, pruebas de laboratorio, diagnósticos ICD-9, medicamentos) y de historial del paciente (visitas ambulatorias, de emergencia y hospitalarias en el año previo). La variable objetivo es readmitted, que indica si el paciente fue readmitido en menos de 30 días, más de 30 días o no fue readmitido. El conjunto incluye valores faltantes en variables como raza, peso, código de pagador, especialidad médica y diagnósticos. Se recomienda utilizar una partición estándar de entrenamiento-prueba o una división triple (entrenamiento-validación-prueba) para la selección de modelos.

⚖️ Ética y Privacidad

El dataset contiene información demográfica de los pacientes que podría considerarse sensible (edad, género, raza). Los datos han sido desidentificados mediante el reemplazo de identificadores personales por números de paciente anonimizados (patient_nbr) para proteger la privacidad. Restricción de confidencialidad: En 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.

📈 Tareas y Aplicaciones

El conjunto de datos está diseñado para tareas de clasificación y agrupamiento (clustering). La principal tarea es la predicción del reingreso hospitalario temprano, lo que permite identificar pacientes con alto riesgo de reingreso y mejorar la planificación del alta. También puede utilizarse para analizar factores asociados al control glucémico, efectividad de medicamentos y patrones de atención hospitalaria en pacientes diabéticos.

📋 Notas de Uso

No se recomiendan divisiones específicas de los datos. Se puede utilizar la división estándar de entrenamiento-prueba o una división triple (entrenamiento-validación-prueba) al realizar selección de modelos. Se debe tener en cuenta que el conjunto contiene valores faltantes que requieren manejo adecuado (imputación o eliminación).

📖 Cómo citar la fuente original

Strack, B., DeShazo, J. P., Gennings, C., Olmo, J. L., Ventura, S., Cios, K. J., & Clore, J. N. (2014). Impact of HbA1c Measurement on Hospital Readmission Rates: Analysis of 70,000 Clinical Database Patient Records. BioMed Research International, vol. 2014, Article ID 781670, 11 pages. https://doi.org/10.1155/2014/781670

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Diabetes 130-US Hospitals)

  • Limpieza de datos:
    • Eliminación de columnas no predictivas: encounter_id, patient_nbr (identificadores), weight (>90% nulos), payer_code (información administrativa), y medical_specialty (>40% nulos).
    • Eliminación de filas con valores faltantes (limpieza estricta para validación reproducible).
    • Conversión de valores '?' (no disponibles en el dataset original) a NaN durante la carga.
  • Transformación de la variable objetivo: Conversión de la variable multiclase readmitted (3 clases: <30, >30, No) a clasificación binaria:
    • Clase 1 (Positiva): Readmisión temprana (< 30 días) — objetivo clínico principal.
    • Clase 0 (Negativa): No readmisión o readmisión tardía (> 30 días).
    • Generación de leyenda específica para el target: TARGET_readmitted en diabetes_legend.json.
  • Codificación numérica de variables categóricas: Transformación de todas las variables de tipo object a valores enteros mediante Label Encoding, incluyendo:
    • Variables demográficas: race, gender, age (rangos etarios codificados).
    • Variables clínicas: max_glu_serum, A1Cresult, diag_1, diag_2, diag_3 (diagnósticos CIE-9).
    • Variables de medicación (23 fármacos para diabetes): metformin, insulin, glipizide, glyburide, entre otros (con valores: Up, Down, Steady, No).
    • Variables de gestión clínica: change (cambio en medicación), diabetesMed (prescripción de medicación).
  • Generación de leyenda completa: Creación del archivo diabetes_legend.json que contiene el mapeo de todas las variables categóricas codificadas, permitiendo la interpretación inversa (número → categoría original) para:
    • 22+ variables categóricas con sus respectivos valores originales.
    • Rangos etarios [10-20), [20-30), ..., [80-90).
    • Categorías de medicación (Up, Down, Steady, No).
    • Códigos CIE-9 de diagnósticos primarios y secundarios.
  • Optimización y formato de salida:
    • Dataset totalmente numérico (enteros) listo para algoritmos de aprendizaje automático.
    • Preservación de la estructura original con 47 variables transformadas.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset procesado de 101,766 registros (limpieza estricta) con 46 variables predictoras codificadas y 1 variable objetivo binaria. Desbalance de clases significativo (~11% clase positiva) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación mediante TabDSFidelity.

🎯 Variable objetivo: readmitted (1 = readmisión <30 días, 0 = No readmisión o >30 días).

📋 Diccionario de Datos Detallado

Variable Descripción Clínica Tipo Rango / Categorías Unidad ¿Objetivo?
race Raza/etnia del paciente Categórico 0-4 (ver leyenda) N/A No
gender Género del paciente Categórico 0: Female, 1: Male N/A No
age Edad del paciente en rangos decenales Categórico 0: [10-20), 1: [20-30), ... 7: [80-90) años No
admission_type_id Tipo de admisión hospitalaria Categórico 1: Emergency, 2: Urgent, 3: Elective, 6: Observation N/A No
discharge_disposition_id Disposición al alta hospitalaria Categórico 1-7 (ver leyenda) N/A No
admission_source_id Origen de la admisión hospitalaria Categórico 1: Physician referral, 2: Emergency, 7: Transfer N/A No
diag_1 Diagnóstico primario (código ICD-9) Categórico Múltiples códigos ICD-9 N/A No
diag_2 Diagnóstico secundario (código ICD-9) Categórico Múltiples códigos ICD-9 N/A No
diag_3 Diagnóstico terciario (código ICD-9) Categórico Múltiples códigos ICD-9 N/A No
max_glu_serum Máxima glucosa sérica registrada Categórico 0: >200, 1: >300, 2: Norm mg/dL No
A1Cresult Resultado de hemoglobina glicosilada (HbA1c) Categórico 0: >7%, 1: >8%, 2: Norm % No
metformin Uso de metformina Categórico 0: Down, 1: No, 2: Steady, 3: Up N/A No
repaglinide Uso de repaglinida Categórico 0: No, 1: Steady, 2: Up N/A No
glimepiride Uso de glimepirida Categórico 0: No, 1: Steady, 2: Up N/A No
glipizide Uso de glipizida Categórico 0: Down, 1: No, 2: Steady, 3: Up N/A No
pioglitazone Uso de pioglitazona Categórico 0: Down, 1: No, 2: Steady N/A No
rosiglitazone Uso de rosiglitazona Categórico 0: No, 1: Steady, 2: Up N/A No
acarbose Uso de acarbosa Categórico 0: No, 1: Steady, 2: Up N/A No
insulin Uso de insulina Categórico 0: Down, 1: No, 2: Steady, 3: Up N/A No
glyburide-metformin Uso de combinación gliburida-metformina Categórico 0: No, 1: Steady N/A No
change Cambio en medicación antidiabética Categórico 0: Ch (Cambio), 1: No (Sin cambio) N/A No
diabetesMed Uso de medicación antidiabética Categórico 0: No, 1: Yes N/A No
time_in_hospital Días de estancia hospitalaria Numérico 1 - 14 días No
num_lab_procedures Número de procedimientos de laboratorio realizados Numérico 36 - 105 procedimientos No
num_procedures Número de procedimientos quirúrgicos Numérico 0 - 6 procedimientos No
num_medications Número de medicamentos administrados Numérico 1 - 34 medicamentos No
number_outpatient Número de visitas ambulatorias previas Numérico 0 - 3 visitas No
number_emergency Número de visitas a emergencias previas Numérico 0 - 9 visitas No
number_inpatient Número de ingresos hospitalarios previos Numérico 0 - 7 ingresos No
number_diagnoses Número total de diagnósticos Numérico 3 - 9 diagnósticos No
nateglinide Uso de nateglinida Binario 0: No, 1: Sí N/A No
chlorpropamide Uso de clorpropamida Binario 0: No, 1: Sí N/A No
glyburide Uso de gliburida Binario 0: No, 1: Sí N/A No
glipizide-metformin Uso de combinación glipizida-metformina Binario 0: No, 1: Sí N/A No
glimepiride-pioglitazone Uso de combinación glimepirida-pioglitazona Binario 0: No, 1: Sí N/A No
metformin-rosiglitazone Uso de combinación metformina-rosiglitazona Binario 0: No, 1: Sí N/A No
metformin-pioglitazone Uso de combinación metformina-pioglitazona Binario 0: No, 1: Sí N/A No
acetohexamide Uso de acetohexamida (no presente en dataset) Binario 0: No (constante) N/A No
tolbutamide Uso de tolbutamida (no presente en dataset) Binario 0: No (constante) N/A No
miglitol Uso de miglitol (no presente en dataset) Binario 0: No (constante) N/A No
troglitazone Uso de troglitazona (no presente en dataset) Binario 0: No (constante) N/A No
tolazamide Uso de tolazamida (no presente en dataset) Binario 0: No (constante) N/A No
examide Uso de examide (no presente en dataset) Binario 0: No (constante) N/A No
citoglipton Uso de citoglipton (no presente en dataset) Binario 0: No (constante) N/A No
readmitted Readmisión hospitalaria temprana (<30 días) Binario 0: >30 o No, 1: <30 días N/A
41 Variables totales
15 Numéricas
15 Categóricas
11 Binarias
Objetivo: Readmisión temprana (readmitted)
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 readmisión hospitalaria en pacientes con diabetes. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.

race Categórica
Código Significado
0African American (Afroamericana)
1Asian (Asiática)
2Caucasian (Caucásica/Blanca)
3Hispanic (Hispana/Latina)
4Other (Otra)
gender Categórica
Código Significado
0Female (Femenino)
1Male (Masculino)
age Categórica
Código Significado
0[10-20) años
1[20-30) años
2[30-40) años
3[40-50) años
4[50-60) años
5[60-70) años
6[70-80) años
7[80-90) años
admission_type_id Categórica
Código Significado
1Emergency (Emergencia)
2Urgent (Urgente)
3Elective (Programada)
6Observation (Observación)
discharge_disposition_id Categórica
Código Significado
1Discharged to home (Alta a casa)
2Discharged to another facility (Alta a otro centro)
3Discharged to skilled nursing facility (Alta a centro de enfermería especializada)
5Discharged to hospice (Alta a cuidados paliativos)
6Died (Fallecido)
7Discharged to home with home health services (Alta a casa con servicios de salud a domicilio)
admission_source_id Categórica
Código Significado
1Physician referral (Referencia de médico)
2Emergency Department (Emergencias)
7Transfer from other hospital (Transferido de otro hospital)
⚠️

Nota: Los códigos 3, 4, 5, 6 no están presentes en este conjunto de datos.

diag_1 Categórica

Códigos de diagnóstico primario (ICD-9)

38Septicemia
79Fractura de hueso
8Desconocido
53Apendicectomía
112Infección por Candida
162Neoplasia maligna de bronquios/pulmón
188Neoplasia maligna de vejiga
250Diabetes mellitus
250.02Diabetes mellitus tipo 2, no controlada
250.1Diabetes con cetoacidosis
250.6Diabetes con otras manifestaciones
250.7Diabetes con complicaciones no especificadas
250.8Diabetes con otras complicaciones especificadas
253Trastornos de la glándula pituitaria
276Trastornos del metabolismo de fluidos/electrolitos
280Anemia por deficiencia de hierro
295Esquizofrenia
296Trastorno bipolar/Depresión
298Psicosis no especificada
332Enfermedad de Parkinson
340Esclerosis múltiple
376Trastornos de la órbita
401Hipertensión esencial
402Hipertensión con enfermedad cardíaca
403Hipertensión con enfermedad renal
410Infarto agudo de miocardio
411Otras enfermedades cardíacas isquémicas
414Enfermedad cardíaca isquémica crónica
415Embolia pulmonar
427Arritmias cardíacas
428Insuficiencia cardíaca
433Estenosis de arterias precerebrales
434Trombosis de arterias cerebrales
435Isquemia cerebral transitoria
436ACV agudo
437Enfermedad cerebrovascular
443Enfermedad vascular periférica
444Trombosis arterial
451Tromboflebitis
453Trombosis venosa profunda
458Hipotensión
486Neumonía
491Bronquitis crónica
493Asma
507Neumonía por aspiración
515Fibrosis pulmonar
518Insuficiencia respiratoria
531Úlcera gástrica
535Gastritis/duodenitis
537Trastornos gástricos
558Gastroenteritis
560Obstrucción intestinal
562Diverticulitis
564Estreñimiento
569Trastornos intestinales
571Enfermedad hepática crónica
574Colelitiasis
577Pancreatitis
578Hemorragia GI
584Insuficiencia renal aguda
590Infección renal
596Trastornos de la vejiga
599Infección del tracto urinario
681Celulitis de extremidad
682Absceso/celulitis
707Úlcera crónica de piel
714Artritis reumatoide
715Osteoartritis
722Trastorno de disco intervertebral
730Osteomielitis
733Osteoporosis
780Síntomas generales
784Síntomas de cabeza/cuello
785Síntomas cardiovasculares
786Síntomas respiratorios
807Fractura de costilla
820Fractura de cadera
965Envenenamiento por analgésicos
969Envenenamiento por psicotrópicos
996Complicación de dispositivo médico
V57Rehabilitación
V58Atención post-quirúrgica
⚠️

Nota: Códigos ICD-9-CM. Se muestran los más representativos.

diag_2 Categórica

Códigos de diagnóstico secundario (ICD-9)

8Desconocido
38Septicemia
41Infección bacteriana
162Neoplasia pulmonar
174Neoplasia de mama
197Metástasis secundaria
211Pólipos benignos
218Mioma uterino
244Hipotiroidismo adquirido
250Diabetes mellitus
272Trastorno del metabolismo lipídico
276Trastorno electrolítico
278Obesidad
280Anemia ferropénica
285Anemia
295Esquizofrenia
300Trastorno de ansiedad
305Abuso de sustancias
327Trastorno del sueño
331Enfermedad de Alzheimer
337Trastorno autonómico
357Neuropatía
382Otitis media
386Vértigo
401Hipertensión esencial
410Infarto agudo de miocardio
413Angina
414Enfermedad coronaria
415Embolia pulmonar
424Enfermedad valvular
425Miocardiopatía
427Arritmia
428Insuficiencia cardíaca
433Estenosis carotídea
435AIT
441Aneurisma aórtico
443Enfermedad vascular periférica
455Hemorroides
466Bronquitis aguda
473Sinusitis crónica
482Neumonía bacteriana
486Neumonía
491Bronquitis crónica
493Asma
496EPOC
511Derrame pleural
530ERGE
535Gastritis
571Enfermedad hepática
577Pancreatitis
584Insuficiencia renal aguda
585Enfermedad renal crónica
599ITU
682Celulitis
707Úlcera de piel
724Dolor lumbar
780Síntomas generales
785Síntomas cardiovasculares
786Síntomas respiratorios
787Síntomas GI
789Dolor abdominal
790Hallazgos de laboratorio
799Causa desconocida
995Reacción adversa
V58Atención post-quirúrgica
diag_3 Categórica

Códigos de diagnóstico terciario (ICD-9)

5Infección por HIV
41Infección bacteriana
198Metástasis secundaria
208Leucemia
211Pólipos benignos
216Neoplasia benigna de piel
238Neoplasia incierta
250Diabetes mellitus
272Dislipidemia
275Trastorno mineral
276Trastorno electrolítico
278Obesidad
280Anemia ferropénica
285Anemia
287Trastorno plaquetario
288Trastorno de glóbulos blancos
293Delirio
295Esquizofrenia
296Trastorno bipolar
300Trastorno de ansiedad
303Alcoholismo
327Trastorno del sueño
332Parkinson
345Epilepsia
357Neuropatía
381Otitis media
401Hipertensión
413Angina
414Enfermedad coronaria
416Hipertensión pulmonar
424Enfermedad valvular
425Miocardiopatía
426Trastorno de conducción
427Arritmia
428Insuficiencia cardíaca
433Estenosis carotídea
435AIT
443Enfermedad vascular periférica
453TVP
458Hipotensión
466Bronquitis aguda
486Neumonía
493Asma
496EPOC
511Derrame pleural
518Insuficiencia respiratoria
530ERGE
535Gastritis
564Estreñimiento
571Enfermedad hepática
572Complicación hepática
574Colelitiasis
575Colecistitis
581Síndrome nefrótico
583Nefritis
584Insuficiencia renal aguda
585ERC
592Cálculo renal
593Trastorno renal
599ITU
625Dolor pélvico
681Celulitis de extremidad
682Celulitis
707Úlcera de piel
724Dolor lumbar
733Osteoporosis
737Deformidad de columna
780Síntomas generales
783Síntomas de nutrición
785Síntomas cardiovasculares
786Síntomas respiratorios
790Hallazgos de laboratorio
794Hallazgos de estudios
799Causa desconocida
826Fractura de dedo
891Herida abierta
920Contusión
945Quemadura
962Envenenamiento
995Reacción adversa
E849Lugar de accidente
E880Caída
E885Caída en escalera
E932Efecto adverso de medicamento
E950Suicidio/intento
V12Historia personal de enfermedad
V58Atención post-quirúrgica
max_glu_serum Categórica
Código Significado
0>200 mg/dL (Glucosa alta >200)
1>300 mg/dL (Glucosa muy alta >300)
2Norm (Normal)
A1Cresult Categórica
Código Significado
0>7% (HbA1c elevada >7)
1>8% (HbA1c muy elevada >8)
2Norm (Normal)
metformin Categórica
Código Significado
0Down (Dosis disminuida)
1No (No recibe)
2Steady (Dosis estable)
3Up (Dosis aumentada)
repaglinide Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
2Up (Dosis aumentada)
nateglinide Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
glimepiride Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
2Up (Dosis aumentada)
glipizide Categórica
Código Significado
0Down (Dosis disminuida)
1No (No recibe)
2Steady (Dosis estable)
3Up (Dosis aumentada)
glyburide Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
2Up (Dosis aumentada)
pioglitazone Categórica
Código Significado
0Down (Dosis disminuida)
1No (No recibe)
2Steady (Dosis estable)
rosiglitazone Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
2Up (Dosis aumentada)
acarbose Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
2Up (Dosis aumentada)
insulin Categórica
Código Significado
0Down (Dosis disminuida)
1No (No recibe)
2Steady (Dosis estable)
3Up (Dosis aumentada)
glyburide-metformin Categórica
Código Significado
0No (No recibe)
1Steady (Dosis estable)
change Categórica
Código Significado
0Ch (Cambio en medicación antidiabética)
1No (Sin cambio en medicación antidiabética)
diabetesMed Categórica
Código Significado
0No (No recibe medicación para diabetes)
1Yes (Sí recibe medicación para diabetes)
Variables Binarias Binario

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

chlorpropamideClorpropamida (antidiabético oral)
glipizide-metforminGlipizida-Metformina (combinación)
glimepiride-pioglitazoneGlimepirida-Pioglitazona (combinación)
metformin-rosiglitazoneMetformina-Rosiglitazona (combinación)
metformin-pioglitazoneMetformina-Pioglitazona (combinación)
acetohexamideAcetohexamida (no presente)
tolbutamideTolbutamida (no presente)
miglitolMiglitol (no presente)
troglitazoneTroglitazona (no presente)
tolazamideTolazamida (no presente)
examideExamide (no presente)
citogliptonCitoglipton (no presente)
readmitted🎯 Variable Objetivo: Readmisión temprana (<30 días)
ℹ️

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

📊
Variables categóricas: 15
  • race (5 categorías)
  • gender (2 categorías)
  • age (8 rangos de edad)
  • admission_type_id (4 categorías)
  • discharge_disposition_id (6 categorías)
  • admission_source_id (3 categorías)
  • diag_1, diag_2, diag_3 (códigos ICD-9)
  • max_glu_serum (3 niveles de glucosa)
  • A1Cresult (3 niveles de HbA1c)
  • Medicamentos: metformin, repaglinide, glimepiride, glipizide, glyburide, pioglitazone, rosiglitazone, acarbose, insulin
  • change (cambio en medicación)
  • diabetesMed (medicación antidiabética)
🎯
Variables binarias: 11
  • 7 medicamentos antidiabéticos
  • 4 combinaciones de medicamentos
  • 1 variable objetivo: readmitted (<30 días)
📈
Variables numéricas: 15
  • time_in_hospital (1-14 días)
  • num_lab_procedures (36-105)
  • num_procedures (0-6)
  • num_medications (1-34)
  • Número de visitas: outpatient, emergency, inpatient
  • number_diagnoses (3-9)
  • Medicamentos con codificación 0-3
⚠️
Recomendaciones:
  • Dataset de readmisión en diabetes - UCI
  • La variable objetivo readmitted está binarizada como: 1 = readmisión <30 días, 0 = no readmisión temprana
  • Los medicamentos con solo código 0 tienen valor constante y pueden ser eliminados
  • Los códigos de diagnóstico ICD-9 deben agruparse para reducir dimensionalidad
  • Verificar variables con datos ausentes (especialmente en glucemia y HbA1c)
  • La variable change indica si hubo cambio en la medicación antidiabética durante la hospitalización

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

📐 Método Principal

SMOTE RSB* Refinado

Versión: 2.1.0

DOI: 10.xxxx/zenodo.xxxxxxx

Código fuente: https://github.com/tu-usuario/dataset-sintetico-uci

📏 Reglas de restricción

  • discharge_disposition_id ∈ {11, 19, 20, 21} → readmitted = 0
  • discharge_disposition_id ∈ {13, 14} → readmitted = 0
  • admission_source_id ∈ {11, 12, 13, 14, 23, 24} → admission_type_id = 4 (Newborn)
  • admission_type_id == 4 → age = 5 (Rango [0-10))
  • admission_type_id == 7 → admission_source_id = 7
  • admission_source_id == 7 → admission_type_id ≠ 3 (Electivo)
  • insulin > 1 (Up/Down/Steady) → num_lab_procedures ≥ 1
  • num_medications == 0 → diabetesMed = 0
  • diabetesMed == 0 → insulin = 0
  • diabetesMed == 0 → metformin = 0
  • diabetesMed == 1 → (insulin = 1) OR (metformin = 1) OR (glipizide = 1) OR (glyburide = 1) OR (pioglitazone = 1) OR (rosiglitazone = 1) OR (glimepiride = 1) OR (repaglinide = 1)
  • glyburide-metformin y metformin son mutuamente excluyentes
  • glyburide-metformin y glyburide son mutuamente excluyentes
  • glipizide-metformin y glipizide son mutuamente excluyentes
  • glipizide-metformin y metformin son mutuamente excluyentes
  • number_diagnoses == 1 → diag_2 = 0

⚙️ Hiperparámetros SMOTE RSB* Adaptado

Valor escala0.03
Probabilidad Base0.1

🔄 Hiperparámetros CTGAN

epochs500
batch_size20
generator_lr0.0002
discriminator_lr0.0002
pac2
generator_dim(128, 128)
discriminator_dim(128, 128)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 400
batch_size 50
embedding_dim 64
compress_dims (64, 64)
decompress_dims (64, 64)
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 304 0.508 0.823 0.879 9.577 0.048 0.880 0.051 0.950 55.813 0 304 0.482 🏆
Smote 1 304 0.423 0.805 0.845 6.376 0.052 0.904 0.072 0.961 41.118 0.054 173 0.450
Borderline SMOTE 1 304 0.395 0.814 0.862 7.028 0.052 0.871 0.071 0.952 40.059 0.054 173 0.464
ADASYN 1 304 0.426 0.787 0.810 4.419 0.053 0.888 0.069 0.961 53.629 0.057 173 0.482
SMOTE RSB* Adaptado 1.034 299 0.329 0.796 0.828 4.968 0.048 0.875 0.044 0.961 61.402 0.053 173 0.464
SMOTE RSB* Adaptado + Reglas 1.034 299 0.524 0.805 0.845 7.881 0.051 0.870 0.047 0.963 61.190 0.057 173 0.485
OOF PSO para Balanceo 1 304 0.328 0.823 0.879 4.310 0.164 0.353 0.173 0.789 66.553 0.154 173 0.475
OOF PSO para Balanceo + Reglas 1 304 0.406 0.823 0.879 5.055 0.198 0.324 0.171 0.783 65.520 0.162 60 0.501
Mejor seleccionado: Random Oversampling (TabDSFidelity: 9.577, AUC: 0.508, F1: 0.823, MIA: 0.482). 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 2.308 5091 0.282 0.823 0.879 8.070 0.037 0.958 0.103 0.949 84.485 0.112 0 0.457
SMOTE RSB* + Ruido Gaussiano + Reglas 2.308 5091 0.366 0.823 0.879 8.157 0.077 0.839 0.108 0.937 230.992 0.121 1 0.462
CTGAN 1.120 10000 0.605 0.629 0.552 6.177 0.113 0.563 0.089 0.914 371.426 0.148 0 0.450
CTGAN + Reglas del Dominio 1.120 10000 0.515 0.670 0.603 6.087 0.135 0.556 0.090 0.913 596.048 0.153 0 0.504
TVAE 1.381 10000 0.629 0.495 0.431 3.706 0.133 0.513 0.549 0.867 193.640 0.109 0 0.487
TVAE + Reglas del Dominio 1.381 10000 0.612 0.510 0.431 3.663 0.137 0.513 0.549 0.857 396.339 0.112 0 0.490
OOF PSO para Aumento 1 10000 0.321 0.782 0.776 3.657 0.330 0.360 0.625 0.657 166.960 0.264 0 0.537
OOF PSO para Aumento + Reglas 1 10000 0.255 0.727 0.690 2.658 0.334 0.360 0.645 0.684 400.645 0.264 0 0.549
SMOTE RSB* Refinado 2.267 5387 0.451 0.823 0.879 9.032 0.035 0.981 0.095 0.949 93.361 0.125 0 0.467 🏆
SMOTE RSB* Refinado + Reglas 2.267 5387 0.434 0.823 0.879 8.572 0.077 0.861 0.100 0.936 247.187 0.133 0 0.466
Mejor seleccionado: SMOTE RSB* Refinado (TabDSFidelity: 9.032, AUC: 0.451, F1: 0.823, MIA: 0.467). 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 2.190 5395 0.423 0.823 0.879 8.507 0.037 0.954 0.095 0.950 161.394 0.105 130 0.475
SMOTE RSB* + Ruido Gaussiano + Reglas 2.190 5395 0.461 0.823 0.879 8.400 0.074 0.836 0.096 0.939 304.369 0.114 130 0.456
CTGAN 1.116 10304 0.483 0.630 0.552 3.950 0.109 0.565 0.074 0.917 485.298 0.143 61 0.354
CTGAN + Reglas del Dominio 1.116 10304 0.557 0.793 0.793 7.510 0.131 0.557 0.075 0.915 709.018 0.147 61 0.450
TVAE 1.368 10304 0.622 0.733 0.690 6.234 0.127 0.518 0.221 0.909 306.065 0.106 61 0.423
TVAE + Reglas del Dominio 1.368 10304 0.637 0.781 0.759 7.211 0.130 0.518 0.221 0.901 504.793 0.109 61 0.464
OOF PSO para Aumento 1 10304 0.406 0.805 0.845 4.108 0.320 0.360 0.550 0.663 280.926 0.256 61 0.447
OOF PSO para Aumento + Reglas 1 10304 0.354 0.805 0.845 3.846 0.324 0.360 0.569 0.688 521.704 0.256 61 0.432
SMOTE RSB* Refinado 2.160 5691 0.466 0.823 0.879 8.846 0.036 0.977 0.088 0.950 172.128 0.119 129 0.447 🏆
SMOTE RSB* Refinado + Reglas 2.160 5691 0.332 0.823 0.879 7.603 0.074 0.858 0.090 0.939 326.958 0.127 129 0.466
Mejor seleccionado: SMOTE RSB* Refinado (TabDSFidelity: 8.846, AUC: 0.466, F1: 0.823, MIA: 0.447). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_13
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
Random Oversampling
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* Refinado
⭐ Mejor Aumentado
SMOTE RSB* Refinado
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 Diabetes Hospitals Readmission Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32931173.v1