Consolidado financiero (2000-2013) de manufactura polaca para la predicción binaria de quiebra (Bankrupt). Unifica 5 horizontes temporales en un dataset compuesto por 64 ratios financieros continuos (rentabilidad, liquidez, apalancamiento).
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.
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.95 | 1.00 | 0.97 | 190 |
| Clase 1 | 0.00 | 0.00 | 0.00 | 10 |
| Accuracy | 0.95 | |||
| Macro Avg | 0.47 | 0.50 | 0.49 | 200 |
| Weighted Avg | 0.90 | 0.95 | 0.93 | 200 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.96 | 0.94 | 0.95 | 190 |
| Clase 1 | 0.15 ⬆ +0.15 | 0.20 ⬆ +0.20 | 0.17 ⬆ +0.17 | 10 |
| Accuracy | 0.91 ⬇ -0.04 | |||
| Macro Avg | 0.56 ⬆ +0.09 | 0.57 ⬆ +0.07 | 0.56 ⬆ +0.07 | 200 |
| Weighted Avg | 0.92 ⬆ +0.02 | 0.91 ⬇ -0.04 | 0.91 ⬇ -0.02 | 200 |
El conjunto de datos de Predicción de Quiebras de Empresas Polacas contiene información financiera de empresas polacas recopilada de Emerging Markets Information Service (EMIS), una base de datos que contiene información sobre mercados emergentes en todo el mundo. Las empresas en quiebra fueron analizadas en el período 2000-2012, mientras que las empresas aún en funcionamiento fueron evaluadas desde 2007 hasta 2013. Basándose en los datos recopilados, se distinguieron cinco casos de clasificación que dependen del período de pronóstico (1 a 5 años antes de la quiebra). El objetivo es predecir la quiebra de empresas utilizando 64 ratios financieros como variables predictoras.
La predicción de quiebras es un problema crítico en la gestión financiera y la evaluación de riesgos. La capacidad de predecir la quiebra de una empresa con anticipación permite a:
Este dataset es particularmente valioso porque cubre múltiples horizontes de predicción (1 a 5 años), permitiendo evaluar la capacidad predictiva de los modelos en diferentes plazos. El estudio de Ziȩba et al. (2016) propuso árboles potenciados con generación de características sintéticas para mejorar la precisión de la predicción.
| Caso | Año de Datos | Período de Pronóstico | Instancias | Quiebras | No Quiebras |
|---|---|---|---|---|---|
| 1er Año | Año 1 | 5 años | 7,027 | 271 (3.86%) | 6,756 (96.14%) |
| 2do Año | Año 2 | 4 años | 10,173 | 400 (3.93%) | 9,773 (96.07%) |
| 3er Año | Año 3 | 3 años | 10,503 | 495 (4.71%) | 10,008 (95.29%) |
| 4to Año | Año 4 | 2 años | 9,792 | 515 (5.26%) | 9,277 (94.74%) |
| 5to Año | Año 5 | 1 año | 5,910 | 410 (6.94%) | 5,500 (93.06%) |
Nota: El conjunto de datos más utilizado es el 3er Año con 10,503 instancias y 495 quiebras (4.71%).
El dataset contiene 65 atributos (64 variables predictoras y 1 variable objetivo). Las características son en su mayoría de tipo real (continuo) y representan ratios financieras calculadas a partir de los estados financieros de las empresas. El conjunto presenta valores faltantes en varias variables.
Las variables A1 a A64 representan ratios financieras (ver lista completa abajo). La variable year indica el año del estado financiero y class es la variable objetivo.
| Variable | Tipo | Descripción (Ratio Financiero) | Valores Faltantes |
|---|---|---|---|
| year | Entero | Año del estado financiero | No |
| Ratios Financieros (A1 - A64) | |||
| A1 | Continuo | net profit / total assets | No |
| A2 | Continuo | total liabilities / total assets | No |
| A3 | Continuo | working capital / total assets | No |
| A4 | Continuo | current assets / short-term liabilities | Sí |
| A5 | Continuo | [(cash + short-term securities + receivables - short-term liabilities) / (operating expenses - depreciation)] * 365 | Sí |
| A6 | Continuo | retained earnings / total assets | No |
| A7 | Continuo | EBIT / total assets | No |
| A8 | Continuo | book value of equity / total liabilities | Sí |
| A9 | Continuo | sales / total assets | No |
| A10 | Continuo | equity / total assets | No |
| A11 | Continuo | (gross profit + extraordinary items + financial expenses) / total assets | No |
| A12 | Continuo | gross profit / short-term liabilities | Sí |
| A13 | Continuo | (gross profit + depreciation) / sales | No |
| A14 | Continuo | (gross profit + interest) / total assets | No |
| A15 | Continuo | (total liabilities * 365) / (gross profit + depreciation) | No |
| A16 | Continuo | (gross profit + depreciation) / total liabilities | Sí |
| A17 | Continuo | total assets / total liabilities | Sí |
| A18 | Continuo | gross profit / total assets | No |
| A19 | Continuo | gross profit / sales | No |
| A20 | Continuo | (inventory * 365) / sales | No |
| A21 | Continuo | sales (n) / sales (n-1) | Sí |
| A22 | Continuo | profit on operating activities / total assets | No |
| A23 | Continuo | net profit / sales | No |
| A24 | Continuo | gross profit (in 3 years) / total assets | Sí |
| A25 | Continuo | (equity - share capital) / total assets | No |
| A26 | Continuo | (net profit + depreciation) / total liabilities | Sí |
| A27 | Continuo | profit on operating activities / financial expenses | Sí |
| A28 | Continuo | working capital / fixed assets | Sí |
| A29 | Continuo | logarithm of total assets | No |
| A30 | Continuo | (total liabilities - cash) / sales | No |
| A31 | Continuo | (gross profit + interest) / sales | No |
| A32 | Continuo | (current liabilities * 365) / cost of products sold | Sí |
| A33 | Continuo | operating expenses / short-term liabilities | Sí |
| A34 | Continuo | operating expenses / total liabilities | Sí |
| A35 | Continuo | profit on sales / total assets | No |
| A36 | Continuo | total sales / total assets | No |
| A37 | Continuo | (current assets - inventories) / long-term liabilities | Sí |
| A38 | Continuo | constant capital / total assets | No |
| A39 | Continuo | profit on sales / sales | No |
| A40 | Continuo | (current assets - inventory - receivables) / short-term liabilities | Sí |
| A41 | Continuo | total liabilities / ((profit on operating activities + depreciation) * (12/365)) | Sí |
| A42 | Continuo | profit on operating activities / sales | No |
| A43 | Continuo | rotation receivables + inventory turnover in days | No |
| A44 | Continuo | (receivables * 365) / sales | Sí |
| A45 | Continuo | net profit / inventory | Sí |
| A46 | Continuo | (current assets - inventory) / short-term liabilities | Sí |
| A47 | Continuo | (inventory * 365) / cost of products sold | Sí |
| A48 | Continuo | EBITDA (profit on operating activities - depreciation) / total assets | No |
| A49 | Continuo | EBITDA (profit on operating activities - depreciation) / sales | No |
| A50 | Continuo | current assets / total liabilities | Sí |
| A51 | Continuo | short-term liabilities / total assets | No |
| A52 | Continuo | (short-term liabilities * 365) / cost of products sold | Sí |
| A53 | Continuo | equity / fixed assets | Sí |
| A54 | Continuo | constant capital / fixed assets | Sí |
| A55 | Entero | working capital | No |
| A56 | Continuo | (sales - cost of products sold) / sales | No |
| A57 | Continuo | (current assets - inventory - short-term liabilities) / (sales - gross profit - depreciation) | No |
| A58 | Continuo | total costs / total sales | No |
| A59 | Entero | long-term liabilities / equity | No |
| A60 | Continuo | sales / inventory | Sí |
| A61 | Continuo | sales / receivables | Sí |
| A62 | Continuo | (short-term liabilities * 365) / sales | No |
| A63 | Continuo | sales / short-term liabilities | Sí |
| A64 | Continuo | sales / fixed assets | Sí |
| F. Variable Objetivo | |||
| class | Entero (Target) | Indica si la empresa quebró en el período de pronóstico | 0 = No quiebra, 1 = Quiebra |
El artículo fundamental que describe la aplicación de árboles potenciados con generación de características sintéticas para la predicción de quiebras es:
Ziȩba, M., Tomczak, S., & Tomczak, J. M. (2016). Ensemble boosted trees with synthetic features generation in application to bankruptcy prediction. Expert Systems with Applications, 58, 93-101. https://doi.org/10.1016/j.eswa.2016.02.036
El conjunto de datos ha sido anonimizado para proteger la privacidad de las empresas. Los nombres de las empresas y otros identificadores no están incluidos en el dataset. 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 identificación de empresas específicas.
Este conjunto de datos presenta desafíos significativos debido a la alta dimensionalidad (65 variables), la presencia de valores faltantes y el desbalanceo de clases. Se recomienda:
La predicción de quiebras empresariales es un área fundamental de la investigación financiera con importantes implicaciones prácticas:
El estudio de Ziȩba et al. (2016) demostró que los métodos de ensemble con generación de características sintéticas logran una alta precisión en la predicción de quiebras, incluso en presencia de datos desbalanceados y valores faltantes.
Ziȩba, M., Tomczak, S., & Tomczak, J. M. (2016). Ensemble boosted trees with synthetic features generation in application to bankruptcy prediction. Expert Systems with Applications, 58, 93-101. https://doi.org/10.1016/j.eswa.2016.02.036
scipy.io.arff para la carga correcta del formato ARFF y decodificación de tipos de datos.📊 Resultado: Dataset fusionado de empresas polacas con 64 variables predictoras (ratios financieros), 1 variable de contexto temporal (Forecasting_Year) y 1 variable objetivo binaria (Bankrupt). Desbalance extremo (~95% solventes / ~5% en bancarrota) — escenario crítico para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de predicción de quiebra financiera, donde la detección temprana de empresas en riesgo es fundamental y el análisis de ratios financieros es el pilar del diagnóstico.
🏢 Fuente: Polish Companies Bankruptcy Dataset (UCI Machine Learning Repository) - Datos financieros de empresas polacas para predicción de bancarrota.
📊 Variables financieras: 64 ratios financieros (X01 a X64) que incluyen métricas de rentabilidad, liquidez, endeudamiento, eficiencia y solvencia.
⏱️ Variable de contexto: Forecasting_Year (1 a 5) indica el horizonte de predicción: 1 = pronóstico a 5 años, 5 = pronóstico a 1 año.
📁 Leyenda disponible: Archivo leyenda_polish_bankruptcy.txt con descripción de la variable objetivo, variable de contexto, y lista completa de ratios financieros.
🎯 Variable objetivo: Bankrupt (1 = Empresa en bancarrota, 0 = Empresa solvente).
🧹 Limpieza aplicada: Fusión de 5 archivos ARFF, renombrado de Attr1-64 a X01-64, decodificación de target, imputación con mediana de valores perdidos.
| Variable | Descripción Financiera | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
Forecasting_Year |
Horizonte temporal del pronóstico (años) | Categórico | 1: 5 años, 2: 4 años, 3: 3 años, 4: 2 años, 5: 1 año | N/A | No |
X01 |
Beneficio neto / Activos totales | Numérico | -61.602 - 1.218 | N/A | No |
X02 |
Pasivos totales / Activos totales | Numérico | 0 - 441.5 | N/A | No |
X03 |
Capital de trabajo / Activos totales | Numérico | -440.5 - 1.385 | N/A | No |
X04 |
Activos corrientes / Pasivos a corto plazo (Current Ratio) | Numérico | 0.002 - 127.41 | N/A | No |
X05 |
[(Efectivo + valores CP + cobrar - pasivos CP) / (gastos op. - dep.)] * 365 | Numérico | -163,090 - 48,305 | días | No |
X06 |
Ganancias retenidas / Activos totales | Numérico | -397.89 - 35.551 | N/A | No |
X07 |
EBIT / Activos totales | Numérico | -61.602 - 1.377 | N/A | No |
X08 |
Valor contable del patrimonio / Pasivos totales | Numérico | -0.998 - 1,452.2 | N/A | No |
X09 |
Ventas / Activos totales (Rotación de activos) | Numérico | 0 - 109.5 | N/A | No |
X10 |
Patrimonio (Equity) / Activos totales | Numérico | -440.55 - 74.434 | N/A | No |
X11 |
(Beneficio bruto + partidas extraord. + gastos fin.) / Activos totales | Numérico | -0.996 - 1.377 | N/A | No |
X12 |
Beneficio bruto / Pasivos a corto plazo | Numérico | -78.1 - 331.46 | N/A | No |
X13 |
(Beneficio bruto + depreciación) / Ventas | Numérico | -668.15 - 2.703 | N/A | No |
X14 |
(Beneficio bruto + intereses) / Activos totales | Numérico | -61.602 - 1.377 | N/A | No |
X15 |
(Pasivos totales * 365) / (Beneficio bruto + depreciación) | Numérico | -301,630 - 1,331,700 | días | No |
X16 |
(Beneficio bruto + depreciación) / Pasivos totales | Numérico | -38.286 - 405.33 | N/A | No |
X17 |
Activos totales / Pasivos totales | Numérico | 0.002 - 1,529.9 | N/A | No |
X18 |
Beneficio bruto / Activos totales | Numérico | -61.602 - 1.377 | N/A | No |
X19 |
Beneficio bruto / Ventas | Numérico | -668.5 - 2.377 | N/A | No |
X20 |
(Inventario * 365) / Ventas | Numérico | 0 - 1,062.5 | días | No |
X21 |
Ventas (n) / Ventas (n-1) [Crecimiento de ventas] | Numérico | 0 - 6,964.2 | N/A | No |
X22 |
Beneficio de actividades operativas / Activos totales | Numérico | -1.383 - 1.377 | N/A | No |
X23 |
Beneficio neto / Ventas | Numérico | -668.5 - 2.272 | N/A | No |
X24 |
Beneficio bruto (3 años) / Activos totales | Numérico | -61.602 - 4.458 | N/A | No |
X25 |
(Patrimonio - Capital social) / Activos totales | Numérico | -459.56 - 48.669 | N/A | No |
X26 |
(Beneficio neto + depreciación) / Pasivos totales | Numérico | -38.286 - 612.88 | N/A | No |
X27 |
Beneficio de actividades operativas / Gastos financieros | Numérico | -157,160 - 57,716 | N/A | No |
X28 |
Capital de trabajo / Activos fijos | Numérico | -121.77 - 2,249.8 | N/A | No |
X29 |
Logaritmo de Activos Totales (Tamaño de la empresa) | Numérico | 0.976 - 9.698 | N/A | No |
X30 |
(Pasivos totales - Efectivo) / Ventas | Numérico | -1,055.9 - 656.45 | N/A | No |
X31 |
(Beneficio bruto + intereses) / Ventas | Numérico | -668.41 - 2.377 | N/A | No |
X32 |
(Pasivos corrientes * 365) / Costo de productos vendidos | Numérico | 0 - 351,630 | días | No |
X33 |
Gastos operativos / Pasivos a corto plazo | Numérico | 0 - 135.67 | N/A | No |
X34 |
Gastos operativos / Pasivos totales | Numérico | -12.369 - 337.65 | N/A | No |
X35 |
Beneficio en ventas / Activos totales | Numérico | -1.502 - 1.384 | N/A | No |
X36 |
Ventas totales / Activos totales | Numérico | 0.0007 - 110.97 | N/A | No |
X37 |
(Activos corrientes - inventarios) / Pasivos a largo plazo | Numérico | -89.392 - 79,762 | N/A | No |
X38 |
Capital constante / Activos totales | Numérico | -440.55 - 74.689 | N/A | No |
X39 |
Beneficio en ventas / Ventas | Numérico | -648.8 - 0.695 | N/A | No |
X40 |
(Activos corrientes - inventario - cuentas por cobrar) / Pasivos a corto plazo | Numérico | -1.726 - 125.58 | N/A | No |
X41 |
Pasivos totales / ((Beneficio operativo + depreciación) * (12/365)) | Numérico | -388.7 - 462.11 | N/A | No |
X42 |
Beneficio de actividades operativas / Ventas | Numérico | -648.8 - 1.028 | N/A | No |
X43 |
Rotación de cuentas por cobrar + Rotación de inventario (días) | Numérico | 0 - 40,515 | días | No |
X44 |
(Cuentas por cobrar * 365) / Ventas | Numérico | 0 - 40,515 | días | No |
X45 |
Beneficio neto / Inventario | Numérico | -711.43 - 512.67 | N/A | No |
X46 |
(Activos corrientes - inventario) / Pasivos a corto plazo | Numérico | -0.153 - 127.41 | N/A | No |
X47 |
(Inventario * 365) / Costo de productos vendidos | Numérico | 0 - 1,121.2 | días | No |
X48 |
EBITDA / Activos totales | Numérico | -13.147 - 1.377 | N/A | No |
X49 |
EBITDA / Ventas | Numérico | -649.16 - 0.968 | N/A | No |
X50 |
Activos corrientes / Pasivos totales | Numérico | 0.002 - 125.23 | N/A | No |
X51 |
Pasivos a corto plazo / Activos totales | Numérico | 0 - 441.5 | N/A | No |
X52 |
(Pasivos a corto plazo * 365) / Costo de productos vendidos | Numérico | 0 - 453.96 | días | No |
X53 |
Patrimonio / Activos fijos | Numérico | -225.31 - 86,795 | N/A | No |
X54 |
Capital constante / Activos fijos | Numérico | -120.77 - 87,092 | N/A | No |
X55 |
Capital de trabajo (Valor absoluto) | Numérico | -232,950 - 484,930 | N/A | No |
X56 |
(Ventas - Costo de productos vendidos) / Ventas | Numérico | -648.8 - 1 | N/A | No |
X57 |
(Activos corrientes - inventario - pasivos CP) / (Ventas - Ben. Bruto - Deprec.) | Numérico | -24.536 - 6.392 | N/A | No |
X58 |
Costos totales / Ventas totales | Numérico | 1.5e-6 - 668.75 | N/A | No |
X59 |
Pasivos a largo plazo / Patrimonio | Numérico | -256.99 - 58.899 | N/A | No |
X60 |
Ventas / Inventario | Numérico | 0.344 - 5,500 | N/A | No |
X61 |
Ventas / Cuentas por cobrar | Numérico | 0 - 298.19 | N/A | No |
X62 |
(Pasivos a corto plazo * 365) / Ventas | Numérico | 0 - 127,450 | días | No |
X63 |
Ventas / Pasivos a corto plazo | Numérico | 0.003 - 485.71 | N/A | No |
X64 |
Ventas / Activos fijos | Numérico | 0.0008 - 127,680 | N/A | No |
Bankrupt |
Estado de bancarrota de la empresa (objetivo) | Binario | 0: Solvente, 1: Bancarrota | N/A | Sí |
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 de Bancarrota de Empresas Polacas. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados financieros.
Forecasting_Year
Categórica
| Código | Significado |
|---|---|
| 1 | Pronóstico a 5 años (Datos del 1er año) |
| 2 | Pronóstico a 4 años (Datos del 2do año) |
| 3 | Pronóstico a 3 años (Datos del 3er año) |
| 4 | Pronóstico a 2 años (Datos del 4to año) |
| 5 | Pronóstico a 1 año (Datos del 5to año) |
Importancia: El horizonte temporal afecta la precisión de los modelos. Pronósticos a 1 año son más precisos que a 5 años.
Bankrupt
🎯 Objetivo
| Código | Significado |
|---|---|
| 0 | Solvente - Empresa operativa, sin quiebra (Clase Mayoritaria ~95%) |
| 1 | Bancarrota - Empresa en quiebra (Clase Minoritaria ~5%) |
Variable Objetivo: El modelo debe predecir la bancarrota empresarial basándose en ratios financieros.
Formato: 0 = Solvente, 1 = Bancarrota
Bankrupt
🎯 Variable Objetivo: Estado de bancarrota (0: Solvente, 1: Bancarrota)
Nota: Única variable binaria en el dataset.
X01 (ROA) negativo y X02 (Deuda/Activos) > 1 tienen alto riesgoX04 (Current Ratio) < 1 indica problemas de liquidez a corto plazoX02 > 1 significa deuda mayor que activos (alto riesgo)X01, X07 (ROA), X18 (Margen bruto) negativos son señales de alertaX09 baja indica mala utilización de activosX29 (log activos) - empresas más grandes tienden a tener menor riesgoForecasting_Year = 5 (5 años) son menos precisos que con año 1X02 > 1 → Bankrupt = 1 (Pasivos > Activos → bancarrota)Bankrupt == 0 → X02 ≤ 1 (Sin bancarrota → pasivos ≤ activos)X02 > 0.9 → X10 < 0.1 (Deuda alta → patrimonio bajo)X10 > 0.9 → X02 < 0.1 (Patrimonio alto → deuda baja)X09 == 0 → X19 = 0 (Sin ventas → beneficio bruto 0)X09 == 0 → X23 = 0 (Sin ventas → beneficio neto 0)X18 < X07 → X07 ≤ X18 (Beneficio Bruto ≥ EBIT)X07 < X01 → X01 ≤ X07 (EBIT ≥ Beneficio Neto)X04 < 1 → Bankrupt = 1 (Current ratio < 1 → bancarrota)X02 < X51 → X51 ≤ X02 (Pasivos totales ≥ pasivos a corto plazo)X01 > 0.5 → Bankrupt = 0 (ROA alto → sin bancarrota)X01 > 0.5 y X18 < 0 son mutuamente excluyentes (ROA positivo vs beneficio bruto negativo)X02 > 1 → X17 < 1 (Pasivos > Activos → Activos/Pasivos < 1)| Valor escala | 0.03 |
|---|---|
| Probabilidad Base | 0.1 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| generator_lr | 0.0002 |
| discriminator_lr | 0.0002 |
| pac | 10 |
| generator_dim | (256, 256) |
| discriminator_dim | (256, 256) |
| embedding_dim | 128 |
| l2scale | 1e-05 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| embedding_dim | 128 |
| compress_dims | (128, 128) |
| decompress_dims | (128, 128) |
| l2scale | 1e-5 |
| loss_factor | 2 |
| Random Seed | 42 |
|---|---|
| Python | 3.12.12 |
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.
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:
El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.
| 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 | 1142 | 0.659 | 0.928 | 0.945 | 8.401 | 0.373 | 0.053 | 0.258 | 0.958 | 101.586 | 0 | 1142 | 0.413 | 🏆 |
| Smote | 1 | 1142 | 0.634 | 0.936 | 0.940 | 7.778 | 0.447 | 0.099 | 0.268 | 0.976 | 81.136 | 0.003 | 604 | 0.548 | |
| Borderline SMOTE | 1 | 1142 | 0.623 | 0.917 | 0.915 | 6.332 | 0.446 | 0.044 | 0.282 | 0.966 | 80.274 | 0.004 | 609 | 0.432 | |
| ADASYN | 1.018 | 1132 | 0.542 | 0.918 | 0.925 | 6.308 | 0.444 | 0.110 | 0.264 | 0.977 | 78.114 | 0.003 | 608 | 0.445 | |
| SMOTE RSB* Adaptado | 1.036 | 1122 | 0.681 | 0.914 | 0.910 | 7.844 | 0.441 | 0.090 | 0.255 | 0.965 | 100.752 | 0.005 | 600 | 0.466 | |
| SMOTE RSB* Adaptado + Reglas | 1.036 | 1122 | 0.609 | 0.923 | 0.925 | 7.171 | 0.441 | 0.096 | 0.258 | 0.964 | 102.026 | 0.005 | 600 | 0.541 | |
| OOF PSO para Balanceo | 1 | 1142 | 0.622 | 0.928 | 0.945 | 5.943 | 0.444 | 0.000 | 0.255 | 0.513 | 80.913 | 0.221 | 600 | 0.471 | |
| OOF PSO para Balanceo + Reglas | 1.904 | 848 | 0.696 | 0.801 | 0.720 | 3.114 | 0.329 | 0.000 | 0.185 | 0.566 | 77.113 | 0.124 | 496 | 0.514 |
| 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.581 | 6170 | 0.571 | 0.931 | 0.950 | 8.569 | 0.666 | 0.086 | 0.091 | 0.967 | 158.588 | 0.032 | 0 | 0.479 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.079 | 6170 | 0.561 | 0.805 | 0.725 | 7.233 | 0.666 | 0.086 | 0.234 | 0.967 | 450.348 | 0.032 | 0 | 0.490 | |
| CTGAN | 1.270 | 10000 | 0.656 | 0.446 | 0.325 | 3.756 | 0.773 | 0.000 | 0.310 | 0.840 | 1559.540 | 0.071 | 0 | 0.549 | |
| CTGAN + Reglas del Dominio | 1.057 | 10000 | 0.598 | 0.448 | 0.330 | 3.154 | 0.773 | 0.000 | 0.241 | 0.839 | 2106.190 | 0.070 | 0 | 0.566 | |
| TVAE | 2.238 | 10000 | 0.494 | 0.886 | 0.865 | 5.156 | 0.830 | 0.008 | 0.226 | 0.878 | 932.031 | 0.004 | 0 | 0.470 | |
| TVAE + Reglas del Dominio | 1.141 | 10000 | 0.564 | 0.767 | 0.670 | 4.795 | 0.830 | 0.008 | 0.340 | 0.878 | 1497.430 | 0.004 | 0 | 0.509 | |
| OOF PSO para Aumento | 1 | 10000 | 0.500 | 0.933 | 0.955 | 4.090 | 0.826 | 0.000 | 0.836 | 0.583 | 220.002 | 0.258 | 0 | 0.494 | |
| OOF PSO para Aumento + Reglas | 1.077 | 10000 | 0.613 | 0.818 | 0.745 | 4.227 | 0.826 | 0.000 | 0.853 | 0.604 | 719.409 | 0.244 | 0 | 0.480 | |
| SMOTE RSB* Refinado | 2.742 | 6047 | 0.680 | 0.923 | 0.935 | 9.820 | 0.677 | 0.111 | 0.085 | 0.965 | 147.317 | 0.017 | 0 | 0.512 | 🏆 |
| SMOTE RSB* Refinado + Reglas | 1.708 | 6047 | 0.648 | 0.801 | 0.720 | 8.290 | 0.677 | 0.111 | 0.149 | 0.961 | 429.398 | 0.017 | 0 | 0.510 |
| 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.187 | 7312 | 0.530 | 0.925 | 0.940 | 7.813 | 0.606 | 0.067 | 0.112 | 0.966 | 317.215 | 0.032 | 0 | 0.480 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.066 | 7312 | 0.608 | 0.794 | 0.710 | 4.800 | 0.606 | 0.067 | 0.237 | 0.965 | 608.206 | 0.032 | 0 | 0.527 | |
| CTGAN | 1.239 | 11142 | 0.674 | 0.926 | 0.930 | 7.464 | 0.706 | 0.000 | 0.304 | 0.846 | 1852.290 | 0.064 | 208 | 0.438 | |
| CTGAN + Reglas del Dominio | 1.051 | 11142 | 0.627 | 0.907 | 0.905 | 6.486 | 0.706 | 0.000 | 0.242 | 0.845 | 2391.530 | 0.063 | 208 | 0.542 | |
| TVAE | 2.045 | 11142 | 0.508 | 0.897 | 0.885 | 4.814 | 0.744 | 0.011 | 0.201 | 0.945 | 1236.280 | 0.004 | 208 | 0.503 | |
| TVAE + Reglas del Dominio | 1.126 | 11142 | 0.565 | 0.859 | 0.815 | 4.285 | 0.744 | 0.011 | 0.305 | 0.945 | 1801.130 | 0.004 | 208 | 0.455 | |
| OOF PSO para Aumento | 1 | 11142 | 0.697 | 0.931 | 0.950 | 6.038 | 0.739 | 0.000 | 0.618 | 0.604 | 486.295 | 0.233 | 208 | 0.410 | |
| OOF PSO para Aumento + Reglas | 1.069 | 11142 | 0.672 | 0.928 | 0.945 | 5.755 | 0.739 | 0.000 | 0.634 | 0.624 | 970.077 | 0.221 | 208 | 0.489 | |
| SMOTE RSB* Refinado | 2.287 | 7189 | 0.651 | 0.925 | 0.940 | 9.304 | 0.611 | 0.090 | 0.107 | 0.963 | 299.741 | 0.017 | 0 | 0.430 | 🏆 |
| SMOTE RSB* Refinado + Reglas | 1.564 | 7189 | 0.641 | 0.801 | 0.720 | 5.535 | 0.611 | 0.090 | 0.164 | 0.961 | 584.791 | 0.017 | 0 | 0.534 |
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:
¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).
Interpretación:
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.
¿Qué mide? Media armónica entre precisión y sensibilidad (recall).
Interpretación:
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).
¿Qué mide? Proporción de predicciones correctas sobre el total.
Interpretación:
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.
¿Qué mide? Calidad global del conjunto sintético comparado con el original.
Interpretació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).
¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.
Interpretación:
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.
¿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:
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.
¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.
Interpretación:
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.
¿Qué mide? Preservación de las relaciones entre variables del conjunto original.
Interpretación:
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.
¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.
Interpretación:
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.
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.
¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.
Interpretación:
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.
¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.
Interpretació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.
¿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:
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.
Formatos incluidos: CSV.
Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Polish Companies Bankruptcy Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32945870.v1