CD_21 Original + Derivados

CD_21: Oxford Parkinson's Disease Detection

Conjunto de datos biomédico (Universidad de Oxford) para la clasificación binaria de la Enfermedad de Parkinson (status) mediante el análisis acústico de la voz. Consta de 195 instancias y 22 características continuas que cuantifican la disfonía. Las variables incluyen medidas de frecuencia fundamental, perturbación de micro-temblor (Jitter), variación de amplitud (Shimmer), ruido (NHR/HNR) y, crucialmente, métricas de dinámica no lineal basadas en la teoría del caos (RPDE, D2, DFA) para capturar degradaciones vocales sutiles.

📈 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.35 0.60 0.44 10
Clase 1 0.82 0.62 0.71 29
Accuracy 0.62
Macro Avg 0.59 0.61 0.58 39
Weighted Avg 0.70 0.62 0.64 39
AUC-ROC: 0.71
F1-Score (weighted): 0.64
Accuracy: 0.62
➡️ Mejora
⬆ +0.24 AUC ⬆ +0.28 F1 ⬆ +0.30 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.89 0.80 0.84 10
Clase 1 0.93 ⬆ +0.11 0.97 ⬆ +0.35 0.95 ⬆ +0.24 29
Accuracy 0.92 ⬆ +0.30
Macro Avg 0.91 ⬆ +0.32 0.88 ⬆ +0.27 0.90 ⬆ +0.32 39
Weighted Avg 0.92 ⬆ +0.22 0.92 ⬆ +0.30 0.92 ⬆ +0.28 39
AUC-ROC: 0.96 ⬆ +0.24
F1-Score (weighted): 0.92 ⬆ +0.28
Accuracy: 0.92 ⬆ +0.30

📊 Resumen de Mejoras en Clase Minoritaria

🎯
Precisión (Clase 0)
Original: 0.35
Sintético: 0.89
⬆ +0.54
📈
Recall (Clase 0)
Original: 0.60
Sintético: 0.80
⬆ +0.20
⚖️
F1-Score (Clase 0)
Original: 0.44
Sintético: 0.84
⬆ +0.40

🚀 Mejora espectacular en la clase minoritaria: El modelo sintético transforma completamente el rendimiento en la Clase 0, aumentando la precisión de 0.35 a 0.89 (+0.54), el recall de 0.60 a 0.80 (+0.20) y el F1-Score de 0.44 a 0.84 (+0.40). La accuracy global salta de 0.62 a 0.92 (+0.30) y el AUC-ROC mejora de 0.71 a 0.96 (+0.24), demostrando una capacidad de discriminación excepcional.

📚 Fuente Original del Conjunto

Oxford Parkinson's Disease Detection Dataset

v1.0
Little, M. A., McSharry, P. E., Hunter, E. J., & Ramig, L. O.
Publicado: 25 de junio de 2008

📄 Resumen (Abstract)

El conjunto de datos de Detección de Enfermedad de Parkinson de Oxford está compuesto por un conjunto de mediciones biomédicas de voz de 31 personas, de las cuales 23 tienen enfermedad de Parkinson (PD). Cada columna representa una medida de voz particular, y cada fila corresponde a una de las 195 grabaciones de voz de estos individuos (identificados en la columna "name"). El objetivo principal del dataset es discriminar entre personas sanas y aquellas con enfermedad de Parkinson basándose en la columna "status" (0 = sano, 1 = Parkinson). Existen aproximadamente 6 grabaciones por paciente, lo que permite análisis tanto a nivel de grabación como a nivel de paciente.

🔬 Métodos y Contexto

Este dataset fue desarrollado por el equipo de Max Little de la Universidad de Oxford como parte de la investigación sobre el uso de mediciones de voz para el telemonitoreo de la enfermedad de Parkinson. La enfermedad de Parkinson afecta el control motor, y la voz es una de las funciones que se ven afectadas tempranamente. Los síntomas vocales incluyen:

  • Reducción del rango de frecuencia fundamental (Fo)
  • Inestabilidad en la frecuencia vocal (jitter)
  • Inestabilidad en la amplitud vocal (shimmer)
  • Aumento del ruido en relación a los componentes tonales

Las mediciones se realizaron a partir de grabaciones de voz sostenida de la vocal /a/. Este enfoque no invasivo y de bajo costo tiene el potencial de ser utilizado como herramienta de diagnóstico temprano y monitoreo remoto de la progresión de la enfermedad, especialmente en áreas con acceso limitado a especialistas.

📊 Descripción de Datos

El dataset contiene 197 instancias (195 registros de voz + 1 encabezado) con 22 atributos (21 variables predictoras y 1 variable objetivo). Las características son de tipo continuo (real) y no presentan valores faltantes. Los datos están en formato ASCII CSV.

📋 Variables del Dataset
Variable Tipo Descripción Unidades
name ID Categórica Nombre del sujeto y número de grabación -
MDVP:Fo Continuo Frecuencia fundamental vocal promedio Hz
MDVP:Fhi Continuo Frecuencia fundamental vocal máxima Hz
MDVP:Flo Continuo Frecuencia fundamental vocal mínima Hz
MDVP:Jitter(%) Continuo Variación en frecuencia fundamental (porcentaje) %
MDVP:Jitter(Abs) Continuo Variación absoluta en frecuencia fundamental Abs
MDVP:RAP Continuo Amplitud de perturbación relativa -
MDVP:PPQ Continuo Cociente de perturbación de período -
Jitter:DDP Continuo Diferencia de diferencias de período -
MDVP:Shimmer Continuo Variación en amplitud -
MDVP:Shimmer(dB) Continuo Variación en amplitud (decibelios) dB
Shimmer:APQ3 Continuo Cociente de perturbación de amplitud (3 puntos) -
Shimmer:APQ5 Continuo Cociente de perturbación de amplitud (5 puntos) -
MDVP:APQ Continuo Cociente de perturbación de amplitud -
Shimmer:DDA Continuo Diferencia de diferencias de amplitud -
NHR Continuo Cociente de ruido a componentes tonales -
HNR Continuo Cociente de tono a ruido -
status Binaria (Target) Estado de salud: 0 = sano, 1 = Parkinson -
RPDE Continuo Medida de complejidad dinámica no lineal -
DFA Continuo Exponente de escala fractal de la señal -
spread1 Continuo Medida no lineal de variación de frecuencia fundamental -
spread2 Continuo Medida no lineal de variación de frecuencia fundamental -
D2 Continuo Medida de complejidad dinámica no lineal -
PPE Continuo Medida no lineal de variación de frecuencia fundamental -

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Parkinson vs. Sano)
  • Dimensión: Multivariante
  • Tipo de características: Reales (continuas)
  • Valores faltantes: No
  • Área de aplicación: Salud y Medicina, Neurología, Procesamiento de señales de voz
  • Número de sujetos: 31 (23 con Parkinson, 8 sanos)
  • Grabaciones por sujeto: Aproximadamente 6

📖 Publicación Introductoria

El artículo fundamental que describe el uso de mediciones de voz para la detección de la enfermedad de Parkinson es:

Little, M. A., McSharry, P. E., Hunter, E. J., & Ramig, L. O. (2008). Suitability of dysphonia measurements for telemonitoring of Parkinson's disease. IEEE Transactions on Biomedical Engineering, 56(4), 1015-1022. https://doi.org/10.1109/TBME.2008.2005954

También se recomienda citar el artículo anterior:

Little, M. A., McSharry, P., Roberts, S., Costello, D., & Moroz, I. (2007). Exploiting Nonlinear Recurrence and Fractal Scaling Properties for Voice Disorder Detection. BioMedical Engineering OnLine, 6(1), 23. https://doi.org/10.1186/1475-925X-6-23

⚖️ Ética y Privacidad

El conjunto de datos ha sido anonimizado para proteger la privacidad de los participantes. Los nombres de los sujetos en la columna name han sido codificados para evitar la identificación personal. 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.

📋 Notas de Uso

Este conjunto de datos es ampliamente utilizado como referencia en problemas de clasificación biomédica y procesamiento de señales. Se recomienda:

  • Excluir la variable name del modelado por ser un identificador único sin valor predictivo
  • Tener en cuenta que existen múltiples grabaciones por paciente (aproximadamente 6), lo que introduce dependencia intra-sujeto. Se recomienda utilizar validación cruzada por paciente (leave-one-subject-out) para evitar el sobreajuste y evaluar la generalización a nuevos pacientes
  • Estandarizar/normalizar las características dado que tienen rangos muy diferentes
  • Las variables de jitter y shimmer son las más relevantes para el diagnóstico diferencial
  • Considerar técnicas de selección de características debido a la alta dimensionalidad relativa al número de instancias (22 variables para 195 registros)
  • La variable objetivo status está codificada como 0 (sano) y 1 (Parkinson)

💡 Importancia Clínica

La enfermedad de Parkinson es un trastorno neurodegenerativo progresivo que afecta aproximadamente a 10 millones de personas en todo el mundo. Se caracteriza por síntomas motores como temblores, rigidez y bradicinesia, así como por síntomas no motores. El diagnóstico temprano es crucial para:

  • Iniciar tratamientos farmacológicos que mejoren la calidad de vida
  • Retrasar la progresión de la enfermedad
  • Planificar intervenciones terapéuticas y de rehabilitación
  • Reducir el impacto socioeconómico de la enfermedad

Las mediciones de voz ofrecen una herramienta no invasiva, de bajo costo y accesible para el cribado y monitoreo de la enfermedad de Parkinson, especialmente en regiones con acceso limitado a neurólogos. Este dataset ha sido fundamental para demostrar el potencial del análisis acústico como biomarcador de la enfermedad.

📖 Cómo citar la fuente original

Little, M. A., McSharry, P. E., Hunter, E. J., & Ramig, L. O. (2008). Suitability of dysphonia measurements for telemonitoring of Parkinson's disease. IEEE Transactions on Biomedical Engineering, 56(4), 1015-1022. https://doi.org/10.1109/TBME.2008.2005954

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Parkinsons Dataset)

  • Limpieza inicial y eliminación de variables no predictivas:
    • Eliminación de la columna name (identificador único de paciente) por no aportar valor predictivo y para evitar sobreajuste en los modelos.
    • Preservación de las 22 variables biomédicas derivadas de mediciones de voz (características de frecuencia, variabilidad, amplitud, ruido y no lineales).
  • Verificación y tratamiento de valores faltantes:
    • Comprobación de la calidad del dataset: Excelente calidad de datos sin valores perdidos en las mediciones.
    • Implementación de imputación con mediana como medida preventiva en caso de detección de valores nulos.
    • Garantía de integridad total del conjunto de datos para modelado directo.
  • Generación de documentación y leyenda:
    • Creación del archivo leyenda_parkinsons.txt con la semántica completa de la variable objetivo.
    • Documentación de la variable status (0 = Sano/Control, 1 = Parkinson - PD).
    • Descripción de las 22 variables predictoras numéricas continuas agrupadas por tipo de característica biomédica:
      • Características de frecuencia (Hz): MDVP:Fo, MDVP:Fhi, MDVP:Flo.
      • Características de variabilidad (Jitter): MDVP:Jitter(%), MDVP:Jitter(Abs), MDVP:RAP, MDVP:PPQ, Jitter:DDP.
      • Características de amplitud (Shimmer): MDVP:Shimmer, MDVP:Shimmer(dB), Shimmer:APQ3, Shimmer:APQ5, Shimmer:APQ11, Shimmer:DDA.
      • Características de ruido: NHR (Relación de ruido armónico), HNR (Relación armónico-ruido).
      • Características no lineales: RPDE (Densidad de entropía de recurrencia), D2 (Dimensión de correlación), DFA (Análisis de fluctuación sin tendencia), spread1, spread2, PPE (Entropía de probabilidad de período).
  • Preservación de la estructura original:
    • Mantenimiento de las 195 instancias (pacientes) sin eliminación de filas.
    • Conservación de las 23 variables originales (tras eliminar name): 1 variable objetivo binaria + 22 predictoras numéricas.
    • Todas las variables predictoras son numéricas continuas, sin necesidad de codificación categórica.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.
  • Control de calidad y verificaciones:
    • Verificación de ausencia de valores nulos para garantizar la integridad estadística.
    • Vista previa del dataset resultante para validación visual.
    • Confirmación de la estructura dimensional final (195 filas × 23 columnas).

📊 Resultado: Dataset de 195 pacientes con 22 variables predictoras numéricas continuas (derivadas de mediciones de voz) y 1 variable objetivo binaria (status). Desbalance moderado (~75% casos Parkinson / ~25% controles sanos) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de enfermedades neurodegenerativas con alta dimensionalidad y correlación entre variables.

🏥 Fuente: Parkinsons Dataset (UCI Machine Learning Repository) - Creado por Max A. Little et al. (2007).

🗣️ Método de recolección: Mediciones de voz extraídas de grabaciones de pacientes que sostienen la vocal "a" durante varios segundos, utilizando el software Praat para análisis acústico.

📁 Leyenda disponible: Archivo leyenda_parkinsons.txt con descripción completa de la variable objetivo y agrupación de características biomédicas.

🎯 Variable objetivo: status (1 = Enfermedad de Parkinson - PD, 0 = Sano/Control).

📈 Características clave: Alta correlación entre variables (jitter, shimmer, medidas de frecuencia), adecuada para evaluar técnicas de reducción de dimensionalidad y generación de datos sintéticos que preserven correlaciones complejas.

📋 Diccionario de Datos Detallado

Variable Descripción Clínica Tipo Rango / Categorías Unidad ¿Objetivo?
status Estado de salud (diagnóstico de Parkinson) Binario 0: Sano, 1: Parkinson (PD) N/A
MDVP:Fo(Hz) Frecuencia fundamental media (tono promedio) Numérico 88.33 - 260.11 Hz No
MDVP:Fhi(Hz) Frecuencia fundamental máxima Numérico 102.15 - 592.03 Hz No
MDVP:Flo(Hz) Frecuencia fundamental mínima Numérico 65.48 - 239.17 Hz No
MDVP:Jitter(%) Jitter porcentual (variación ciclo a ciclo del tono) Numérico 0.0017 - 0.0332 % No
MDVP:Jitter(Abs) Jitter absoluto (variación absoluta del tono) Numérico 7.0e-6 - 0.00026 s No
MDVP:RAP Amplitud de perturbación relativa (variación de tono) Numérico 0.00068 - 0.02144 N/A No
MDVP:PPQ Índice de perturbación del tono (variación de tono) Numérico 0.00092 - 0.01958 N/A No
Jitter:DDP Diferencia de período a período (variación de tono) Numérico 0.00204 - 0.06433 N/A No
MDVP:Shimmer Shimmer (variación ciclo a ciclo de la amplitud) Numérico 0.00954 - 0.11908 % No
MDVP:Shimmer(dB) Shimmer en decibelios Numérico 0.085 - 1.302 dB No
Shimmer:APQ3 Amplitud de perturbación (3 puntos) Numérico 0.00455 - 0.05647 N/A No
Shimmer:APQ5 Amplitud de perturbación (5 puntos) Numérico 0.00570 - 0.07940 N/A No
MDVP:APQ Índice de perturbación de amplitud Numérico 0.00719 - 0.13778 N/A No
Shimmer:DDA Amplitud de diferencia de período Numérico 0.01364 - 0.16942 N/A No
NHR Relación Ruido-Armónico (ruido en la voz) Numérico 0.00072 - 0.31482 N/A No
HNR Relación Armónico-Ruido (calidad tonal) Numérico 8.441 - 32.684 dB No
RPDE Entropía de densidad de periodo de recurrencia Numérico 0.25657 - 0.67713 N/A No
DFA Análisis de fluctuación sin tendencia (escala fractal) Numérico 0.57428 - 0.82348 N/A No
spread1 Medida no lineal de variación de tono (entropía del periodo) Numérico -7.69573 - -2.43403 N/A No
spread2 Medida no lineal de variación de tono (entropía del periodo) Numérico 0.01869 - 0.45049 N/A No
D2 Dimensión de correlación (complejidad fractal) Numérico 1.51228 - 3.67116 N/A No
PPE Entropía de periodo de tono (no lineal) Numérico 0.05614 - 0.52737 N/A No
23 Variables totales
22 Numéricas
0 Categóricas
1 Binarias
Objetivo: Parkinson (status)
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 Detección de Parkinson (Oxford Parkinson's). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.

status 🎯 Objetivo
Código Significado
0 Sano (Control) - Sujeto sin diagnóstico de Parkinson
1 Parkinson (PD) - Sujeto diagnosticado con Enfermedad de Parkinson
🎯

Variable Objetivo: El modelo debe clasificar si el sujeto padece Parkinson basándose en características acústicas de la voz.

💡

Contexto clínico: La disfonía (alteración de la voz) es uno de los primeros síntomas de Parkinson, detectable antes que los síntomas motores.

Variables Binarias Binario

Formato: 0 = Sano, 1 = Parkinson

status 🎯 Variable Objetivo: Diagnóstico de Parkinson (0: Sano, 1: Parkinson)
ℹ️

Nota: Única variable binaria en el dataset.

📊
Variables binarias: 1
  • 🎯 status (Objetivo - Diagnóstico de Parkinson)
📈
Variables numéricas: 22
  • 3 Frecuencia fundamental (tono)
  • 5 Jitter (variación de frecuencia)
  • 6 Shimmer (variación de amplitud)
  • 2 Ruido/Calidad tonal
  • 6 Dinámica no lineal
🏥
Información Clínica:
  • Institución: Universidad de Oxford
  • Pacientes: 31 individuos (~6 grabaciones por paciente)
  • Grabación: Fonación sostenida de la vocal 'a'
  • Contexto: Telemonitorización no invasiva
  • Referencia: Little et al. (2007)
⚠️
Recomendaciones Técnicas:
  • Predictores clave: RPDE, D2, PPE, MDVP:Jitter(%)
  • Jitter elevado: Mayor variación del tono (temblor vocal)
  • Shimmer elevado: Mayor variación de amplitud (inestabilidad vocal)
  • NHR alto / HNR bajo: Mayor ruido en la voz (ronquera)
  • D2 y DFA: Capturan cambios en la complejidad de la señal

🔬 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

  • MDVP:Fhi(Hz) < 150 → MDVP:Fo(Hz) < 150
  • MDVP:Flo(Hz) > 200 → MDVP:Fo(Hz) > 200
  • MDVP:Flo(Hz) > 200 → MDVP:Fhi(Hz) > 200
  • MDVP:RAP > 0.01 → Jitter:DDP > 0.025
  • Shimmer:APQ3 > 0.03 → Shimmer:DDA > 0.08
  • HNR < 10 → NHR > 0.02
  • HNR > 30 → NHR < 0.02
  • NHR > 0.1 → RPDE > 0.3
  • MDVP:Jitter(%) > 0.03 → MDVP:Shimmer > 0.02
  • PPE > 0.35 → status = 1 (Patología)
  • HNR > 33 → status = 0 (Salud)
  • MDVP:Jitter(%) > 0.02 → status = 1 (Disfonía severa)
  • spread1 > -3.0 → status = 1 (Caos vocal)

⚙️ Hiperparámetros SMOTE RSB* Adaptado

Valor escala0.03
Probabilidad Base0.1

🔄 Hiperparámetros CTGAN

epochs300
batch_size20
generator_lr0.0002
discriminator_lr0.0002
pac2
generator_dim(64, 64)
discriminator_dim(64, 64)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 300
batch_size 10
embedding_dim 32
compress_dims (32, 32)
decompress_dims (32, 32)
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 178 0.940 0.897 0.897 5.112 0.201 0.116 0.143 0.955 48.117 0 178 0.309
Smote 1 178 0.929 0.893 0.897 3.028 0.366 0.070 0.143 0.945 48.331 0.006 117 0.319
Borderline SMOTE 1 178 0.929 0.850 0.846 1.037 0.366 0.163 0.143 0.958 47.495 0.006 117 0.318
ADASYN 1.034 181 0.938 0.870 0.872 3.695 0.372 0.259 0.152 0.972 47.994 0.007 117 0.344
SMOTE RSB* Adaptado 1.060 173 0.945 0.846 0.846 2.855 0.354 0.244 0.128 0.964 41.342 0.009 117 0.309
SMOTE RSB* Adaptado + Reglas 1.060 173 0.926 0.846 0.846 0.699 0.355 0.181 0.128 0.961 42.320 0.009 117 0.315
OOF PSO para Balanceo 3.069 118 0.936 0.918 0.923 7.750 0.030 1.000 0.000 0.965 47.034 0.002 117 0.327
OOF PSO para Balanceo + Reglas 3.069 118 0.936 0.918 0.923 8.091 0.029 1.000 0.000 0.975 48.525 0.002 117 0.323 🏆
Mejor seleccionado: OOF PSO para Balanceo + Reglas del Dominio (TabDSFidelity: 8.091, AUC: 0.936, F1: 0.918, MIA: 0.323). 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.799 7108 0.940 0.918 0.923 8.268 0.798 0.953 0.002 0.970 82.777 0.069 0 0.352
SMOTE RSB* + Ruido Gaussiano + Reglas 2.819 7108 0.952 0.918 0.923 8.374 0.798 0.953 0.001 0.970 227.018 0.069 0 0.324 🏆
CTGAN 1.293 10000 0.740 0.755 0.744 1.134 0.793 0.005 0.084 0.565 157.149 0.185 0 0.694
CTGAN + Reglas del Dominio 1.540 10000 0.810 0.733 0.718 1.259 0.793 0.005 0.053 0.566 358.802 0.185 0 0.744
TVAE 5.361 10000 0.766 0.761 0.795 3.291 0.777 0.273 0.023 0.861 144.854 0.076 0 0.410
TVAE + Reglas del Dominio 5.361 10000 0.766 0.761 0.795 3.291 0.777 0.273 0.023 0.861 340.742 0.076 0 0.410
OOF PSO para Aumento 1 10000 0.910 0.853 0.846 4.474 0.811 0.000 0.143 0.645 130.968 0.206 0 0.389
OOF PSO para Aumento + Reglas 1.118 10000 0.890 0.781 0.769 2.775 0.811 0.000 0.115 0.648 317.068 0.207 0 0.332
SMOTE RSB* Refinado 1 7000 0.969 0.918 0.923 6.945 0.821 0.062 0.143 0.921 79.057 0.026 0 0.347
SMOTE RSB* Refinado + Reglas 1 7000 0.969 0.918 0.923 6.945 0.821 0.062 0.143 0.921 216.982 0.026 0 0.347
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano + Reglas del Dominio (TabDSFidelity: 8.374, AUC: 0.952, F1: 0.918, MIA: 0.324). 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.803 7226 0.972 0.918 0.923 8.497 0.779 0.955 0.001 0.970 155.972 0.069 0 0.315 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 2.823 7226 0.966 0.918 0.923 8.393 0.779 0.955 0.001 0.970 298.734 0.069 0 0.296
CTGAN 1.304 10118 0.848 0.801 0.795 1.236 0.775 0.005 0.082 0.568 258.380 0.181 32 0.725
CTGAN + Reglas del Dominio 1.551 10118 0.841 0.823 0.821 1.820 0.775 0.005 0.052 0.569 460.300 0.181 32 0.731
TVAE 5.320 10118 0.872 0.761 0.795 2.500 0.762 0.281 0.022 0.862 242.634 0.074 32 0.356
TVAE + Reglas del Dominio 5.320 10118 0.872 0.761 0.795 2.500 0.762 0.281 0.022 0.862 438.795 0.074 32 0.356
OOF PSO para Aumento 1.012 10118 0.941 0.870 0.872 4.458 0.791 0.000 0.140 0.648 224.614 0.202 32 0.295
OOF PSO para Aumento + Reglas 1.130 10118 0.940 0.874 0.872 4.492 0.791 0.000 0.113 0.651 410.048 0.203 32 0.312
SMOTE RSB* Refinado 1.017 7118 0.971 0.893 0.897 6.212 0.797 0.068 0.138 0.922 149.179 0.026 40 0.366
SMOTE RSB* Refinado + Reglas 1.017 7118 0.971 0.893 0.897 6.212 0.797 0.068 0.138 0.922 285.027 0.026 40 0.366
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 8.497, AUC: 0.972, F1: 0.918, MIA: 0.315). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_21
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
OOF PSO para Balanceo + Reglas del Dominio
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* + Ruido Gaussiano + Reglas del Dominio
⭐ Mejor Aumentado
SMOTE RSB* + Ruido Gaussiano
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 Parkinson's Disease Detection (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32933759.v1