La Cooperativa Financiera XYZ ofrece créditos de libre inversión a sus asociados, pero cerca del 20 % de estos créditos terminan en incumplimiento. Esta situación representa un problema importante para la entidad, ya que aumenta la cartera morosa, exige mayores provisiones de seguridad y afecta la liquidez de la organización. Para enfrentar este reto, la cooperativa busca contar con una herramienta que le permita anticipar, antes de aprobar un crédito, qué clientes tienen mayor probabilidad de no cumplir con su obligación.
En este sentido, los modelos de clasificación son una alternativa útil para predecir el riesgo de impago a partir de las características sociodemográficas y financieras de los clientes. Con esta información, la cooperativa puede mejorar sus decisiones de otorgamiento de crédito, disminuir pérdidas por morosidad y optimizar la gestión del riesgo.
El archivo Data Clientes Cooperativa.txt contiene información histórica de los clientes, con diferentes variables y la etiqueta de pago (V: Impago, F: Cumplimiento). A partir de estos datos, se entrenarán y validarán distintos modelos de clasificación, que irán desde enfoques estadísticos tradicionales hasta métodos más avanzados de aprendizaje automático, como Random Forest y XGBoost.
El objetivo de este laboratorio es desarrollar un modelo supervisado que permita identificar de manera precisa a los clientes con mayor riesgo de impago. Para lograrlo, se realizará un análisis exploratorio de los datos, se prepararán adecuadamente las variables y se comparará el desempeño de diferentes algoritmos. Con base en estos resultados, se propondrá el modelo más adecuado para apoyar la toma de decisiones en la Cooperativa Financiera XYZ, ayudando a reducir la morosidad y mejorar la eficiencia en la gestión crediticia.
La base de datos utilizada en este laboratorio corresponde a la información de 4.117 clientes de una cooperativa financiera. Cada fila representa un cliente y contiene características demográficas, financieras y de comportamiento de pago, junto con una variable objetivo asociada al riesgo de incumplimiento.
Las variables disponibles son:
Esta base de datos resulta adecuada para problemas de clasificación supervisada, ya que incluye una variable dependiente categórica (RIESGO) que puede ser explicada a partir de las características de cada cliente. Además, presenta tanto variables cualitativas como cuantitativas, lo que permite explorar diferentes enfoques de modelado y técnicas de preprocesamiento de datos.
¿Qué es un crédito de libre inversión?
Un crédito de libre inversión es un tipo de préstamo que ofrece flexibilidad al cliente, ya que el dinero recibido puede destinarse a cualquier finalidad que este considere conveniente. A diferencia de otros créditos con un propósito específico, como la compra de vivienda o vehículo, este préstamo permite financiar proyectos personales o familiares de diversa índole: realizar un viaje, cubrir gastos educativos, remodelar la vivienda o solventar necesidades imprevistas. Esta libertad de uso lo convierte en una alternativa muy atractiva para los usuarios, aunque para la entidad financiera implica un mayor desafío en la evaluación del riesgo de impago.
Datos Faltantes
Con estos pasos se obtuvo una base de datos limpia, consistente y con 4.116 registros válidos, lista para el análisis posterior.
En general, la edad promedio de los clientes es de aproximadamente 32 años, con un rango entre 18 y 50 años. Los ingresos presentan una media cercana a 25 millones anuales, aunque con valores máximos significativamente más altos que la mediana, lo que indica asimetría hacia la derecha.
La mayoría de los clientes tiene entre 1 y 2 hijos, posee en promedio 2 tarjetas de crédito y cuenta con alrededor de 1 a 2 préstamos activos. Estos resultados permiten tener una primera visión del perfil típico de los solicitantes antes de profundizar en análisis por grupos de riesgo.
Gráficos Individuales Variables Categóricas, Excepto RIESGO e ID
Gráficos Individuales Variables Categóricas, Excepto RIESGO e ID
Gráficos Individuales Variables Numéricas, Excepto RIESGO e ID
Gráficos Individuales Variables Numéricas, Excepto RIESGO e ID
Los gráficos permiten ver que la base de datos está balanceada en género y modalidad de pago, mientras que la mayoría de clientes son casados y cuentan con hipoteca. Las variables numéricas muestran que la edad y los ingresos se concentran en rangos medios, aunque con algunos valores atípicos en ingresos. El número de hijos, tarjetas y préstamos tiende a ser bajo, con la mayoría de clientes teniendo entre una y dos unidades en cada caso.
Gráficos Bivariados con RIESGO sin ID
Gráficos Bivariados con RIESGO sin ID
Los gráficos comparan las variables numéricas según el nivel de riesgo. Se observa que los clientes en impago tienden a tener mayor edad e ingresos en comparación con quienes cumplen. Además, presentan menos tarjetas y préstamos activos, lo que podría sugerir un menor historial crediticio. En cuanto al número de hijos, no se aprecian diferencias marcadas entre los grupos. Estos patrones iniciales indican que algunas variables podrían ser útiles para discriminar el riesgo en los modelos de clasificación.
Gráficos Bivariados con RIESGO
Los gráficos muestran la relación de los ingresos con otras variables. Se aprecia que los ingresos tienden a aumentar ligeramente con la edad hasta alrededor de los 40 años. No se observa una relación clara con el número de tarjetas ni con el número de hijos, aunque los clientes con menos préstamos parecen concentrar mayores ingresos.
Visualización Multivariada Apoyada en Componentes Principales
El gráfico de PCA muestra la proyección de los individuos según las dos primeras dimensiones principales, que explican alrededor del 82.% de la variabilidad total. Se observan grupos parcialmente diferenciados entre clientes en cumplimiento y impago, aunque con cierta superposición, lo que indica que las variables utilizadas aportan información relevante, pero no separan completamente a los dos perfiles de riesgo. Esto sugiere que será necesario aplicar modelos supervisados para mejorar la capacidad de clasificación y aprovechar la información combinada de las variables.
Componentes Principales
El biplot de la PCA permite interpretar la relación de las variables con las dos primeras dimensiones. La Dimensión 1 (54.6 %) está asociada principalmente a número de tarjetas y préstamos, mientras que la Dimensión 2 (27.4 %) se relaciona más con edad e ingresos. Se aprecia que los clientes en impago tienden a ubicarse hacia valores más altos de edad e ingresos, mientras que quienes cumplen se concentran más en el lado positivo de la Dim.1, asociado con mayor número de productos financieros.
Esto sugiere que tener más productos de crédito podría asociarse con mayor probabilidad de cumplimiento, mientras que los clientes de mayor edad e ingresos aparecen más dispersos, reflejando distintos comportamientos frente al pago.
Conclusión
El análisis exploratorio permitió identificar variables con potencial valor predictivo para la condición de impago. Se observó que los clientes en impago suelen tener mayor edad e ingresos, pero poseen menos tarjetas y préstamos activos, lo que podría reflejar un menor historial crediticio. El PCA mostró que la edad y los ingresos contribuyen a diferenciar parcialmente a los grupos, mientras que el número de tarjetas y préstamos se asocia más con los clientes en cumplimiento.
En conjunto, estas variables (edad, ingresos, número de tarjetas y préstamos) aparecen como las más relevantes para predecir el riesgo de impago, por lo que serán fundamentales en la construcción y validación de los modelos supervisados.
Regresión Logística
## Analysis of Deviance Table
##
## Model: binomial, link: logit
##
## Response: RIESGO
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 2881 2869.3
## EDAD 1 138.51 2880 2730.8 < 2.2e-16 ***
## INGRESOS 1 484.49 2879 2246.3 < 2.2e-16 ***
## GENERO 1 0.47 2878 2245.8 0.4942
## ESTADO_CIVIL 2 83.84 2876 2162.0 < 2.2e-16 ***
## NUM_HIJOS 1 30.76 2875 2131.2 2.920e-08 ***
## NUM_TARJETAS 1 50.84 2874 2080.4 1.004e-12 ***
## MODALIDAD_PAGO 1 22.69 2873 2057.7 1.899e-06 ***
## HIPOTECA 1 22.49 2872 2035.2 2.113e-06 ***
## PRESTAMOS 1 73.44 2871 1961.8 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se ajustó un modelo de regresión logística binaria para predecir la condición de impago. El ANOVA mostró que la mayoría de las variables son significativas para explicar el riesgo, destacando ingresos, edad, estado civil, número de hijos, número de tarjetas, modalidad de pago, hipoteca y préstamos. La variable género no resultó significativa. Estos resultados indican que la mayor parte de las características disponibles aportan información relevante para la clasificación de los clientes.
## Start: AIC=1983.75
## RIESGO ~ (ID + EDAD + INGRESOS + GENERO + ESTADO_CIVIL + NUM_HIJOS +
## NUM_TARJETAS + MODALIDAD_PAGO + HIPOTECA + PRESTAMOS) - ID
##
## Df Deviance AIC
## - GENERO 1 1961.8 1981.8
## <none> 1961.8 1983.8
## - NUM_HIJOS 1 1971.9 1991.9
## - MODALIDAD_PAGO 1 1973.7 1993.7
## - HIPOTECA 1 1977.4 1997.4
## - EDAD 1 1978.1 1998.1
## - NUM_TARJETAS 1 1978.6 1998.6
## - INGRESOS 1 2018.0 2038.0
## - PRESTAMOS 1 2035.2 2055.2
## - ESTADO_CIVIL 2 2134.3 2152.3
##
## Step: AIC=1981.76
## RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS + NUM_TARJETAS +
## MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
##
## Df Deviance AIC
## <none> 1961.8 1981.8
## - NUM_HIJOS 1 1971.9 1989.9
## - MODALIDAD_PAGO 1 1973.7 1991.7
## - HIPOTECA 1 1977.4 1995.4
## - EDAD 1 1978.1 1996.1
## - NUM_TARJETAS 1 1978.6 1996.6
## - INGRESOS 1 2018.4 2036.4
## - PRESTAMOS 1 2035.3 2053.3
## - ESTADO_CIVIL 2 2134.3 2150.3
##
## Call: glm(formula = RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS +
## NUM_TARJETAS + MODALIDAD_PAGO + HIPOTECA + PRESTAMOS, family = "binomial",
## data = data_train)
##
## Coefficients:
## (Intercept) EDAD INGRESOS
## 0.7639522 0.0381975 0.0000667
## ESTADO_CIVILCasado ESTADO_CIVILSoltero NUM_HIJOS
## -4.2013277 -4.1494377 -0.2900727
## NUM_TARJETAS MODALIDAD_PAGOSemanal HIPOTECASí
## -0.3022184 -0.7288074 0.6903298
## PRESTAMOS
## -1.0625656
##
## Degrees of Freedom: 2881 Total (i.e. Null); 2872 Residual
## Null Deviance: 2869
## Residual Deviance: 1962 AIC: 1982
Tras aplicar selección backward, se obtuvo el modelo logístico final y se realizaron predicciones en el conjunto de prueba.
El modelo alcanzó una exactitud de 83.9 % (IC95 %: 81.7 % – 85.9 %) y un Balanced Accuracy de 0.80. La sensibilidad fue 72.9 %, indicando que identifica correctamente a la mayoría de clientes en impago, mientras que la especificidad fue 86.4 %, mostrando buen desempeño en la clasificación de clientes cumplidos.
La regresión logística tiene un desempeño ligeramente menor en precisión global, pero una sensibilidad mayor, lo que la hace más efectiva para detectar clientes morosos, aspecto importante en la gestión del riesgo crediticio.
El siguiente gráfico muestra el árbol de decisión entrenado para predecir el riesgo de impago.
Árbol de Clasificación Podado
El siguiente gráfico muestra el árbol de decisión
podado utilizando el valor óptimo de cp que
minimiza el error de validación cruzada.
##
## Classification tree:
## rpart(formula = RIESGO ~ ., data = data_train, method = "class",
## control = rpart.control(cp = 1e-04))
##
## Variables actually used in tree construction:
## [1] EDAD ESTADO_CIVIL GENERO HIPOTECA ID
## [6] INGRESOS PRESTAMOS
##
## Root node error: 571/2882 = 0.19813
##
## n= 2882
##
## CP nsplit rel error xerror xstd
## 1 0.37653240 0 1.00000 1.00000 0.037474
## 2 0.00437828 1 0.62347 0.62347 0.030936
## 3 0.00350263 3 0.61471 0.64448 0.031378
## 4 0.00269433 7 0.60070 0.66900 0.031880
## 5 0.00175131 23 0.55692 0.69002 0.032299
## 6 0.00125094 28 0.54816 0.73205 0.033107
## 7 0.00116754 43 0.52715 0.75482 0.033530
## 8 0.00058377 46 0.52364 0.77933 0.033972
## 9 0.00010000 52 0.52014 0.79860 0.034312
El árbol de decisión podado obtuvo una exactitud del 86.9 %, con un intervalo de confianza del 95 % entre 84.9 % y 88.8 %. Presentó una sensibilidad de 63.5 %, lo que significa que identifica correctamente a casi dos tercios de los clientes en impago, y una especificidad de 92.4 %, mostrando buen desempeño para reconocer a los clientes cumplidos.
El modelo también alcanzó un Balanced Accuracy de 0.78, lo que refleja un equilibrio aceptable entre la capacidad de identificar correctamente tanto a morosos como a cumplidos. Además, sus valores predictivos positivo y negativo fueron de 66.1 % y 91.6 %, respectivamente, lo que indica que es más confiable al predecir cumplimiento que al predecir impago.
El modelo SVM con kernel radial se entrenó sobre la base de datos y se evaluó en el conjunto de prueba. Los resultados muestran una exactitud de 87.1 % con un intervalo de confianza del 95 % entre 85.1 % y 88.9 %. La sensibilidad alcanzó 64.4 %, evidenciando que el modelo identifica correctamente a cerca de dos tercios de los clientes en impago, mientras que la especificidad fue de 92.4 %, mostrando un buen desempeño para clasificar a los clientes cumplidos.
El Balanced Accuracy fue de 0.78, con valores predictivos positivo y negativo de 66.4 % y 91.8 %, respectivamente. Estos resultados indican que el modelo logra un buen equilibrio entre la detección de clientes morosos y cumplidos, con un desempeño general competitivo.
El siguiente gráfico muestra el comportamiento del AUC
(ROC) para diferentes valores de mtry, lo que
permite identificar cuántas variables predictoras candidatas en cada
división producen el mejor desempeño del modelo.
Se realizó la división de la base de datos en un 70 % para entrenamiento y 30 % para prueba, manteniendo la proporción de las clases de la variable objetivo. Posteriormente, se entrenó un modelo Random Forest utilizando validación cruzada de 5 pliegues (cv, number = 5) y la métrica ROC como criterio de evaluación, dado que se trata de un problema de clasificación binaria.
Para el hiperparámetro mtry (número de predictores aleatorios considerados en cada división), se evaluaron valores entre 2 y 6. El gráfico muestra que el mejor desempeño se alcanzó con mtry = 4, con un valor máximo de ROC cercano a 0.873.
Se entrenó un segundo modelo de Random Forest usando la función randomForest() con 500 árboles (ntree) y 4 predictores aleatorios por división (mtry = 4), de acuerdo con el mejor valor encontrado previamente.
A continuación, se visualiza la importancia de cada predictor según dos métricas internas del Random Forest:
El gráfico muestra la importancia de las variables en la clasificación:
Para predecir impago, las variables más influyentes fueron préstamos, edad e ingresos, seguidas del número de tarjetas e hijos.
Para predecir cumplimiento, los ingresos y la edad fueron los factores más relevantes, junto con la modalidad de pago y el número de productos financieros.
Estos resultados confirman la relevancia de las variables identificadas en el análisis exploratorio y respaldan su uso en la construcción de los modelos finales de clasificación.
El modelo de Random Forest entrenado se evaluó utilizando el conjunto de prueba para medir su capacidad predictiva sobre datos no vistos. Los resultados de la matriz de confusión muestran que el modelo clasificó correctamente a 913 clientes como cumplimiento y a 140 clientes como impago. Sin embargo, presentó 80 falsos positivos (clientes predichos como impago que en realidad cumplían) y 101 falsos negativos (clientes predichos como cumplimiento que realmente estaban en impago).
A partir de estas predicciones, se obtuvo una exactitud global de 85.3 %, con un intervalo de confianza del 95 % entre 83.2 % y 87.3 %. El modelo presentó una sensibilidad de 58 %, indicando que detecta correctamente a poco más de la mitad de los clientes morosos, y una especificidad de 91.9 %, lo que refleja un mejor desempeño para identificar a los clientes cumplidos.
Estos resultados indican que el modelo tiene buen desempeño general, aunque la sensibilidad es menor que la especificidad, lo que sugiere que tiende a clasificar mejor a los clientes cumplidos que a los morosos.
El modelo XGBoost se entrenó usando validación cruzada y un conjunto de hiperparámetros definidos en la grilla. En el conjunto de prueba, el modelo obtuvo una exactitud del 75.4 % (IC 95 %: 72.9 % – 77.8 %).
Se destaca su alta sensibilidad (88.4 %), lo que indica una muy buena capacidad para identificar a los clientes en impago. Sin embargo, la especificidad fue de 72.3 %, mostrando un menor desempeño para clasificar correctamente a los clientes cumplidos.
El Balanced Accuracy fue 0.80, y los valores predictivos positivo y negativo fueron 42.7 % y 96.4 %, respectivamente. Esto refleja que, aunque el modelo detecta la mayoría de los impagos, también genera una proporción importante de falsos positivos.
Comparación de modelos
Los resultados muestran que SVM y el árbol podado alcanzan la mayor exactitud global (87 % aprox.), aunque con sensibilidades moderadas (alrededor de 64 %). El Random Forest presenta una buena exactitud y la mayor especificidad, pero es el modelo que peor detecta a los clientes morosos.
El XGBoost destaca por su alta sensibilidad (88 %), siendo el modelo que mejor identifica impagos, aunque a costa de una menor exactitud y un alto número de falsos positivos.
Finalmente, la regresión logística ofrece un equilibrio adecuado entre sensibilidad (73 %), especificidad (86 %) y Balanced Accuracy (0.80), con la ventaja adicional de ser un modelo interpretable y fácil de implementar en la práctica.
Para la cooperativa, el objetivo principal es identificar correctamente a los clientes en impago, ya que aprobar créditos a personas con alta probabilidad de incumplimiento implica un riesgo financiero considerable.
El modelo XGBoost ofrece la sensibilidad más alta (88.4 %), detectando la mayor proporción de morosos. Sin embargo, su exactitud y valor predictivo positivo son bajos, generando muchos falsos positivos.
La regresión logística, aunque con menor sensibilidad que XGBoost, presenta un mejor balance entre detección de impagos, exactitud y simplicidad de interpretación.
SVM y el árbol podado muestran buena exactitud y especificidad, pero con menor capacidad para detectar impagos.
Random Forest tiene buena exactitud y especificidad, pero la sensibilidad más baja, por lo que es menos adecuado para identificar morosos.
Recomendación Final
Se recomienda utilizar la regresión logística con selección backward, ya que:
Presenta buen equilibrio entre sensibilidad (73 %) y especificidad (86 %), lo que permite detectar a la mayoría de morosos sin generar demasiados falsos positivos.
Es fácil de interpretar, lo que facilita su implementación como herramienta de apoyo a la decisión crediticia.
Puede ajustarse con distintos umbrales de probabilidad para priorizar la detección de impagos según las políticas de riesgo de la cooperativa.
Adicionalmente, se sugiere evaluar un modelo híbrido, combinando la probabilidad de la regresión logística con reglas de negocio (por ejemplo, establecer límites mínimos de ingresos o historial de productos financieros) para mejorar la gestión del riesgo crediticio.