Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la primera pregunta que recibe es invariablemente la misma: ¿cómo de bueno es el modelo? La respuesta técnica correcta implica tres métricas: Gini, KS y AUC. Con la que se mide la capacidad del modelo de separar a los buenos pagadores de los malos pagadores.
Estas tres métricas son las más usadas en la industria del credit scoring para evaluar la discriminación de un modelo. No son independientes, están matemáticamente relacionadas, pero cada una tiene una interpretación distinta y enfatiza aspectos diferentes del comportamiento del modelo. Entender qué mide cada una, cómo se calculan y cuáles son sus limitaciones es imprescindible para evaluar correctamente la calidad de un scorecard.
En una entrada anterior de esta serie explicamos la diferencia entre discriminación y calibración. Un concepto importante, ya que un modelo puede discriminar bien y estar mal calibrado. En esta entrada nos centramos en la discriminación: qué miden estas métricas, cómo se interpretan y cuándo cada una es más apropiada.
El constructor de scorecards del laboratorio de Analytics Lane calcula las tres métricas en el paso 7 de validación, con las curvas ROC, de Lorenz y KS representadas gráficamente para train y test simultáneamente.
Antes de entender las métricas hay que entender el problema que resuelven.
Un scorecard asigna una puntuación a cada cliente. El objetivo es que los clientes con score más alto sean mejores pagadores que los clientes con score más bajo, es decir, que el modelo ordene correctamente el riesgo. La discriminación mide precisamente eso: cuánto mejor que el azar es el modelo ordenando los clientes por su riesgo real.
Un modelo perfectamente aleatorio asigna scores independientemente del riesgo real, los buenos y los malos pagadores se distribuyen uniformemente en toda la escala de scores. Un modelo perfecto asigna los scores más altos a todos los buenos pagadores y los más bajos a todos los malos, sin ningún solapamiento.
En la realidad los modelos se sitúan entre estos dos extremos. Gini, KS y AUC miden dónde está el modelo en ese espectro, cuánto se acerca a la discriminación perfecta y cuánto mejor es que el azar.
La curva ROC (Receiver Operating Characteristic) se construye variando el umbral de clasificación del modelo desde el score más alto hasta el más bajo y calculando en cada punto la tasa de verdaderos positivos (sensibilidad) y la tasa de falsos positivos (1 − especificidad).
En el contexto del credit scoring:
Para cada umbral de score posible: TPR = \frac{\text{Malos correctamente rechazados}}{\text{Total de malos}} \quad FPR = \frac{\text{Buenos incorrectamente rechazados}}{\text{Total de buenos}}
La curva ROC representa los pares (FPR, TPR) para todos los umbrales posibles. Un modelo perfecto pasa por la esquina superior izquierda (FPR = 0, TPR = 1), rechaza todos los malos sin rechazar ningún bueno. Un modelo aleatorio produce la diagonal, por cada malo rechazado se rechaza proporcionalmente el mismo número de buenos.
El AUC (Area Under the Curve) es el área bajo la curva ROC. Por definición está entre 0 y 1:
La interpretación probabilística del AUC es especialmente intuitiva: el AUC es la probabilidad de que, tomando un buen pagador y un mal pagador al azar, el modelo asigne un score más alto al buen pagador.
Con AUC = 0,82 el modelo asigna correctamente un score más alto al buen pagador en el 82% de los pares posibles. En el 18% restante el mal pagador tiene un score más alto que el buen pagador, una clasificación incorrecta.
Esta interpretación hace el AUC especialmente útil para comunicar la calidad del modelo a audiencias no técnicas: “nuestro modelo identifica correctamente al mejor pagador de cada par en el 82% de los casos” es inmediatamente comprensible.
La curva de Lorenz, también llamada curva de Gini o curva de poder predictivo en el contexto del credit scoring, se construye de forma distinta a la curva ROC.
Se ordenan todos los clientes de mayor a menor score. Para cada percentil de la población ordenada se calcula qué porcentaje acumulado de los malos pagadores ha sido capturado:
Un modelo perfecto captura todos los malos pagadores antes de llegar al umbral donde terminan los buenos, la curva sube verticalmente hasta el 100% de malos y luego se mantiene horizontal. Un modelo aleatorio captura los malos pagadores de forma proporcional a su representación en la población, la curva coincide con la diagonal.
El Gini se calcula como el doble del área entre la curva de Lorenz y la diagonal: Gini = 2 \times \text{Área entre la curva de Lorenz y la diagonal}
O equivalentemente, a partir del AUC: \boxed{Gini = 2 \times AUC - 1}
Esta relación matemática entre el Gini y el AUC es fundamental. Con AUC = 0,82: Gini = 2 \times 0,82 - 1 = 0,64$$
El Gini tiene rango entre −1 y 1, aunque en la práctica se sitúa entre 0 y 1:
El Gini mide cuánto mejor es el modelo que el azar para capturar malos pagadores concentrándolos en los scores más bajos. Un Gini de 0,64 significa que el modelo es un 64% mejor que el azar en esta tarea.
Otra interpretación práctica: si se rechaza al 20% de los solicitantes con los scores más bajos, ¿qué porcentaje de los malos pagadores se habrá rechazado? Con un Gini alto se rechaza una proporción de malos pagadores muy superior al 20%. Con un Gini de cero se rechaza exactamente el 20%, sin ninguna selección.
El KS (Kolmogorov-Smirnov) se basa en las distribuciones acumuladas de scores de buenos y malos pagadores por separado.
Se ordena la población por score de mayor a menor. Para cada punto de corte posible se calcula:
Representadas en el mismo gráfico, estas dos curvas empiezan en 0% (nadie supera el umbral máximo) y terminan en 100% (todos superan el umbral mínimo). En un modelo aleatorio las dos curvas coinciden. En un modelo con discriminación la curva de buenos está por encima de la de malos, los buenos tienen scores sistemáticamente más altos.
El KS es la máxima distancia vertical entre las dos distribuciones acumuladas: KS = \max_{\text{score}} |F_{\text{buenos}}(\text{score}) - F_{\text{malos}}(\text{score})|
El punto donde se alcanza esa distancia máxima es el punto KS, el umbral de score que maximiza la separación entre buenos y malos pagadores. Es el umbral óptimo de clasificación si el objetivo es maximizar la diferencia entre la tasa de captura de malos y la tasa de captura de buenos.
El KS tiene rango entre 0 y 1:
El KS mide la máxima separación alcanzable entre buenos y malos en un único punto de corte. Un KS de 0,42 significa que en el mejor umbral posible la diferencia entre la tasa de captura de malos y la tasa de captura de buenos es del 42%.
A diferencia del Gini y el AUC, que evalúan el modelo en todos los umbrales posibles, el KS se centra en el mejor umbral. Esto tiene ventajas e inconvenientes:
Las tres métricas están relacionadas pero no son equivalentes. La relación matemática exacta es: Gini = 2 \times AUC - 1
El KS no tiene una relación algebraica simple con el Gini y el AUC, depende de la forma específica de las distribuciones de scores de buenos y malos. Pero empíricamente en credit scoring suele cumplirse aproximadamente: KS \approx Gini \times 0,65 \text{ (aproximación empírica)}
Con un Gini de 0,60 se espera un KS de aproximadamente 0,39. Esta aproximación es útil para verificar la consistencia de las métricas, si el KS está muy alejado de este valor esperado puede indicar un problema en el cálculo.
Aunque en la mayoría de los casos el ranking de los modelos es el mismo según las tres métricas, pueden discrepar cuando:
La industria del credit scoring usa convenciones establecidas para interpretar estas métricas. Los umbrales más utilizados para el Gini son:
| Gini | Interpretación |
|---|---|
| < 0,20 | Discriminación muy pobre — modelo no apto para producción |
| 0,20 – 0,35 | Discriminación débil — marginal para producción |
| 0,35 – 0,50 | Discriminación aceptable — estándar mínimo en consumer credit |
| 0,50 – 0,65 | Buena discriminación — estándar típico en entidades competitivas |
| 0,65 – 0,75 | Muy buena discriminación — difícil de superar con datos estándar |
| > 0,75 | Discriminación excepcional — sospechoso, revisar data leakage |
Estos umbrales varían según el producto y el mercado:
Para el KS los umbrales equivalentes son aproximadamente:
| KS | Interpretación |
|---|---|
| < 0,20 | Discriminación muy pobre |
| 0,20 – 0,30 | Discriminación débil |
| 0,30 – 0,40 | Discriminación aceptable |
| 0,40 – 0,50 | Buena discriminación |
| > 0,50 | Muy buena discriminación |
Una de las comprobaciones más importantes en la validación de un scorecard es la diferencia entre el Gini en el conjunto de entrenamiento y el Gini en el conjunto de test.
Si el modelo ha sobreajustado, memorizado el dataset de entrenamiento en lugar de aprender relaciones generalizables, el Gini en train será significativamente mayor que en test. La diferencia esperada en un modelo bien construido es pequeña:
| Diferencia Gini (train − test) | Interpretación |
|---|---|
| < 0,03 | Sin sobreajuste — modelo bien generalizado |
| 0,03 – 0,05 | Sobreajuste leve — aceptable |
| 0,05 – 0,08 | Sobreajuste moderado — revisar el modelo |
| > 0,08 | Sobreajuste severo — el modelo no es válido para producción |
Un sobreajuste elevado en un scorecard basado en WOE y regresión logística — que es un modelo relativamente simple, suele indicar uno de estos problemas:
Como vimos en el artículo sobre el PSI, la validación out-of-time (OOT), entrenar con datos de un período y validar con datos de un período posterior, es la prueba más exigente para un scorecard.
El Gini OOT mide si el modelo mantiene su poder discriminativo cuando se aplica a clientes de un período temporal distinto al de entrenamiento. Es la mejor aproximación disponible al rendimiento real en producción.
La diferencia esperada entre el Gini en test y el Gini OOT depende de cuánto tiempo separa ambos períodos y de cuánto ha cambiado la distribución de clientes. Con un PSI bajo (distribución estable) la diferencia debería ser pequeña. Con un PSI alto (distribución cambiada) la diferencia puede ser mayor y es una señal de que el modelo puede degradarse en producción.
Una caída del Gini OOT superior a 5-8 puntos respecto al Gini en test es una señal de alerta que merece investigación antes de desplegar el modelo.
Esta es la limitación más importante y la que más frecuentemente se olvida. Como explicamos en el artículo sobre calibración vs discriminación, un Gini excelente no garantiza que las probabilidades predichas sean correctas.
Un modelo con Gini de 0,65 puede estar prediciendo que todos sus clientes tienen una probabilidad de default del 2-4% cuando la tasa real es del 8%. El modelo discrimina bien, identifica correctamente quiénes son relativamente mejores o peores, pero sus probabilidades absolutas son incorrectas. Para la estimación de pérdidas esperadas y para la gestión del capital regulatorio eso es un problema grave.
Por eso el Gini siempre debe complementarse con el análisis de calibración, la curva de calibración, el ECE y el Brier Score.
Un Gini de 0,60 a nivel global puede esconder un Gini de 0,75 en el segmento de clientes jóvenes y un Gini de 0,40 en el segmento de autónomos. Si la cartera está concentrada en autónomos, el modelo es mucho peor de lo que sugiere el Gini global.
Por eso la validación de un scorecard siempre debe incluir el análisis por segmento: Gini y KS calculados por producto, canal, rango de importe y cualquier otra dimensión relevante para el negocio.
Un Gini excelente en el momento de la validación puede degradarse rápidamente si la distribución de los clientes cambia. El PSI, y no el Gini, es la métrica que monitoriza esa estabilidad. El Gini dice cuánto discrimina el modelo hoy. El PSI dice si el modelo seguirá discriminando igual de bien mañana.
Con tasas de eventos muy bajas (< 1%) el AUC puede ser artificialmente alto aunque el modelo tenga poco poder predictivo práctico. Con tasas muy altas (> 30%) el Gini puede parecer bajo aunque el modelo discrimine razonablemente bien. En estos casos el Gini debe interpretarse con precaución y complementarse con análisis de las tasas de captura en distintos umbrales.
Presentar las tres métricas con sus curvas. Mostrar train vs test y, si está disponible, out-of-time. Incluir el análisis de calibración junto a las métricas de discriminación. Discutir la brecha de sobreajuste y las diferencias por segmento.
Centrarse en el Gini como métrica principal, es la más conocida y la más usada en los informes de gestión. Mostrar la comparativa con el modelo anterior (Champion vs Challenger) y con los benchmarks del sector. Traducir la mejora del Gini a términos financieros: cuántos malos pagadores adicionales se capturan con el mismo umbral de rechazo.
Presentar todas las métricas exigidas por las guías de validación (Gini, KS, AUC en train, test y OOT). Documentar la metodología de cálculo. Incluir el análisis de calibración. Mostrar la estabilidad temporal con el PSI. Todo con la trazabilidad del log de decisiones del proceso de construcción.
El constructor de scorecards del laboratorio calcula las tres métricas en el paso 7 de validación:
La aplicación Champion vs Challenger usa estas mismas métricas para comparar dos modelos sobre el mismo dataset, añadiendo la comparativa directa y el análisis de concordancia.
Gini, KS y AUC son las tres caras de la misma realidad: la capacidad del modelo de ordenar correctamente los clientes por su riesgo de crédito. Son matemáticamente relacionadas, el Gini es exactamente el doble del AUC menos uno, pero enfatizan aspectos distintos:
Las tres son necesarias y ninguna es suficiente por sí sola. Un Gini excelente sin análisis de calibración, sin validación out-of-time, sin análisis por segmento y sin monitorización del PSI es solo una parte de la historia. La validación completa de un scorecard requiere todas estas piezas juntas.
Esta serie de artículos ha cubierto el proceso completo de construcción y validación de un scorecard, desde el WOE y el IV hasta el Champion vs Challenger, pasando por el binning, la regresión logística, la calibración y el PSI. El constructor de scorecards del laboratorio implementa cada uno de estos pasos de forma interactiva, completamente en el navegador y sin que los datos salgan de tu dispositivo.
Nota: Las imágenes de este artículo fueron generadas utilizando un modelo de inteligencia artificial.
Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…
Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…
Hay un momento muy concreto en la vida de casi todo análisis: el código que…
Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…
Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…
En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…
This website uses cookies.