Evaluación de modelos de machine learning aplicados al cálculo de pérdidas esperadas en entidades de microfinanzas
Este repositorio contiene los códigos para replicar los resultados de mi proyecto de titulación. Puedes revisar el proyecto en este enlace. El objetivo fue evaluar cómo los algoritmos de Machine Learning (Random Forest y XGBoost) influyen en el cálculo de pérdidas esperadas, en comparación con la metodología tradicional (Regresión Logística), en una institución financiera del Ecuador.
La pérdida esperada (
En esta fórmula,
Durante el análisis, se consideró
Los datos utilizados provienen de microcréditos y créditos de consumo de una institución financiera ecuatoriana entre agosto de 2020 y julio de 2021. Estos datos están disponibles en el archivo InfoTratamientoInicial.RData en la carpeta BDD de este repositorio, lo que facilita la replicación de los resultados.
El objetivo principal del proyecto fue evaluar si los enfoques de Random Forest y XGBoost pueden reducir el monto de aprovisionamiento en comparación con la metodología tradicional. Esta evaluación es importante, ya que un menor aprovisionamiento, fundamentado en criterios técnicos sólidos, posibilitaría que las instituciones financieras dispongan de más capital para otorgar créditos, a tasas de interés superiores a las ofrecidas por el BCE por el aprovisionamiento de pérdidas.
Los principales resultados del proyecto se presentan a continuación. Si deseas obtener más detalles, te recomiendo visitar el siguiente enlace.
Modelos | ||||||
---|---|---|---|---|---|---|
RGL | RF | XGB | ||||
Métrica | Mod | Val | Mod | Val | Mod | Val |
KS | 55.1 | 52.3 | 56.2 | 51.2 | 53.3 | 52.6 |
ROC | 84.5 | 83.6 | 86.1 | 83.6 | 83.9 | 83.5 |
GINI | 68.9 | 67.2 | 72.3 | 67.3 | 67.9 | 66.9 |
IPS | 0.85% | 1.90% | 1.06% |
Los tres modelos muestran valores sólidos en las métricas de discriminación (KS, GINI, ROC). Además, el Índice de Estabilidad Poblacional (IPS) indica que mantienen su capacidad discriminativa al trasladarse de la base de modelado (Mod) a la de validación (Val), cumpliendo con los estándares para modelos de Credit Scoring. Por lo tanto, los tres modelos son aplicables para el cálculo de las pérdidas esperadas.
Durante todo el horizonte de estudio, se obtuvieron los siguientes resultados para la cartera de crédito en la base de validación:
Modelos | |||
---|---|---|---|
RGL | RF | XGB | |
PE ($) | 2,825,789 | 2,865,695 | 2,804,761 |
EAD ($) | 79,615,050 | ||
r_Pérdida (%) | 3.549315 | 3.599439 | 3.522903 |
De esta manera, se observa que el modelo XGB es el que logra la mayor reducción en el aprovisionamiento de pérdidas, con una disminución del 0.74% y 2.13% en comparación con los modelos de Regresión Logística y Random Forest, respectivamente.
La estructura del repositorio es la siguiente:
- BDD: Contiene una subcarpeta llamada RData, donde se encuentran almacenadas las bases en formato RData utilizadas y generadas a lo largo del proyecto.
- Scripts Adicionales: Aquí se encuentra el script
Tidy_data.R
, que contiene funciones utilizadas para la selección de variables como el Test de Kolmogorov-Smirnov (KS) y el test de Valor de Información (VI). - Resultados: Incluye los resultados del Análisis Exploratorio de los Datos, así como los resultados del Test KS y VI para la selección de variables. Además, presenta los resultados de las grillas de hiperparámetros para los modelos RF y XGB, junto con la plantilla de las tablas performance y las tablas resultantes para cada modelo. También, se incluyen los gráficos generados para el documento de la TIC.
El orden para ejecutar los scripts es el siguiente:
000_Configuracion_Proyecto.R
: Carga las librerías y establece las direcciones base para todo el proyecto.200_tratamiento_identificacion_variables.R
: Realiza la Ingeniería de Variables y la identificación de Variables candidatas para los modelos (KS-VI).300_Regresion_Logistica.R
: Realiza el modelo de credit scoring ajustándolo mediante una regresión logística.301_Random_Forest_VC.R
: Realiza el modelo de credit scoring ajustándolo mediante un random forest bajo Validación Cruzada.302_XGBoost.R
: Realiza el modelo de credit scoring ajustándolo mediante un XGB bajo Validación Cruzada.303_Perdidas_Esperadas.R
: Calcula las pérdidas esperadas.400_Graficos.R
: Genera gráficos para el documento de la TIC.
Además, se puede ejecutar el proyecto de forma ordenada a través del script 001_Ejecutar_Proyecto.R
.
Si tienes alguna pregunta o comentario, ¡no dudes en ponerte en contacto conmigo! :)