En un entrada previa explicamos qué son el WOE y el IV y por qué son la base matemática del credit scoring. En esta entrada vamos un paso más alla: una vez que tenemos las variables transformadas a WOE y hemos ajustado la regresión logística, ¿cómo convertimos los coeficientes estadísticos en una tabla de puntos que cualquier analista puede aplicar con una hoja de cálculo?
Esta transformación — de coeficientes abstractos a puntos concretos — es lo que convierte un modelo estadístico en un scorecard. Es el paso que hace que el credit scoring sea interpretable, auditable y desplegable en cualquier sistema informático, desde una aplicación bancaria moderna hasta una hoja de Excel en una sucursal.
El proceso tiene una elegancia matemática que raramente se explica con detalle. Aquí lo haremos paso a paso, con números concretos y sin saltarnos ningún eslabón de la cadena.
Todos los cálculos de este artículo se pueden reproducir de forma interactiva en el constructor de scorecards del laboratorio de Analytics Lane.
Tabla de contenidos
Para comenzar, asumimos que ya tenemos un conjunto de datos donde cada variable ha sido transformada a su valor de WOE según el binning que hemos definido. La variable ingreso_anual ya no tiene valores como 45.000€ sino el WOE del bin al que pertenece ese valor — por ejemplo +0,39.
Sobre este conjunto de datos transformado ajustamos una regresión logística. El modelo tiene la forma: \ln\left(\frac{P(\text{default})}{1 - P(\text{default})}\right) = \alpha + \beta_1 \cdot WOE_1 + \beta_2 \cdot WOE_2 + \ldots + \beta_n \cdot WOE_n, donde:
Supongamos que tras ajustar el modelo obtenemos estos coeficientes para cinco variables:
| Variable | Coeficiente β |
|---|---|
| Intersección (α) | −2,841 |
| ingreso_anual | −0,876 |
| edad | −0,654 |
| categoria_empleo | −0,521 |
| antiguedad_laboral | −0,389 |
| num_productos | −0,312 |
Todos los coeficientes son negativos — lo esperado con la convención WOE = \ln\left(\frac{\% \text{ no eventos}}{\% \text{ eventos}}\right). A mayor WOE (menor riesgo), el coeficiente negativo reduce las log-odds de default.
Los coeficientes de la regresión logística son perfectamente válidos para calcular probabilidades de default. Dado un cliente con sus valores de WOE, podemos calcular: P(\text{default}) = \frac{1}{1 + e^{-(\alpha + \sum_i \beta_i \cdot WOE_i)}}.
Pero esta fórmula tiene varios problemas prácticos en el contexto del credit scoring:
Al realizar la transformación a un scorecard se resuelven todos estos problemas convirtiendo los coeficientes en puntos con una escala definida, interpretable y estable.
La transformación de coeficientes a puntos requiere definir tres parámetros. Estos parámetros no los determina el modelo estadístico — los elige el analista según las convenciones de la entidad y el uso previsto del scorecard.
El score que se asigna a un cliente cuyas posibilidades (odds) de buen/mal pagador son exactamente las odds de referencia. En la industria el valor más común es 600.
Este valor no tiene una justificación matemática específica — es una convención que hace que los scores típicos caigan en un rango cómodo para la toma de decisiones (generalmente entre 300 y 850 en consumer credit).
Cuántos puntos adicionales en el score corresponden a doblar las posibilidades (odds) de buen pagador. Si un cliente tiene un score de 600 con odds 50:1, un cliente con score 620 tendría odds 100:1 (con PDO = 20).
El valor más común en la industria es 20, aunque puede variar entre 15 y 40 según la entidad y el producto.
El PDO determina la “sensibilidad” del scorecard — un PDO pequeño hace que pequeñas diferencias en el score correspondan a grandes diferencias en el riesgo. Un PDO grande hace el scorecard más “plano” y requiere mayores diferencias de score para distinguir niveles de riesgo.
Las odds de buen pagador (no eventos / eventos) que corresponden al score base. El valor más común es 50:1 — por cada cliente que impaga hay 50 que pagan.
Las odds de referencia deben ser coherentes con la tasa de eventos del portfolio al que se aplicará el scorecard. Si la tasa de default del portfolio es del 2%, las odds son aproximadamente 49:1, lo que hace que 50:1 sea una elección natural.
Con los tres parámetros definidos podemos derivar la fórmula de transformación. El razonamiento es el siguiente.
Queremos que el score sea una función lineal de las log-odds: \text{Score} = \text{Offset} + \text{Factor} \times \ln(\text{odds}), donde \text{Offset} y \text{Factor} son constantes que determinamos a partir de los parámetros del scorecard.
Si el score aumenta en PDO puntos cuando las odds se doblan: \begin{align*}\text{Score} + PDO &= \text{Offset} + \text{Factor} \times \ln(2 \times \text{odds}) \\ & = \text{Offset} + \text{Factor} \times \ln(\text{odds}) + \text{Factor} \times \ln(2) \\ & = \text{Score} + \text{Factor} \times \ln(2)\end{align*}. Por tanto: PDO = \text{Factor} \times \ln(2) \\ \boxed{\text{Factor} = \frac{PDO}{\ln(2)}} Con PDO = 20: \text{Factor} = \frac{20}{\ln(2)} = \frac{20}{0{,}6931} \approx 28{,}85
El score base B corresponde a las odds de referencia \theta_0: B = \text{Offset} + \text{Factor} \times \ln(\theta_0) \\ \boxed{\text{Offset} = B - \text{Factor} \times \ln(\theta_0)}
Con B = 600, \text{Factor} = 28{,}85 y \theta_0 = 50: \text{Offset} = 600 - 28{,}85 \times \ln(50) = 600 - 28{,}85 \times 3{,}912 = 600 - 112{,}9 \approx 487{,}1
Las log-odds del modelo logístico son: \ln(\text{odds}) = \alpha + \sum_{i=1}^{n} \beta_i \times WOE_i
Sustituyendo en la fórmula del score: \begin{align*} \text{Score} &= \text{Offset} + \text{Factor} \times \left(\alpha + \sum_{i=1}^{n} \beta_i \times WOE_i\right) \\ & = \text{Offset} + \text{Factor} \times \alpha + \text{Factor} \times \sum_{i=1}^{n} \beta_i \times WOE_i \end{align*}
Para que el scorecard sea aditivo — la suma de los puntos de cada variable da el score total — distribuimos el coeficiente de intersección entre todas las variables: \text{Score} = \underbrace{\left(\text{Offset} + \text{Factor}_\alpha\right)}_{\text{Score base ajustado}} + \sum_{i=1}^{n} \underbrace{\text{Factor} \times \beta_i \times WOE_i}_{\text{Puntos variable } i}
En la práctica el coeficiente de intersección se distribuye uniformemente entre todas las variables — cada variable absorbe \alpha/n del coeficiente de intersección: \text{Puntos}_{ij} = -\left(\beta_i \times WOE_{ij} + \frac{\alpha}{n}\right) \times \text{Factor}
El signo negativo es intencional: con coeficientes \beta_i negativos y WOE positivo para bins de bajo riesgo, los puntos resultantes son positivos — más puntos equivalen a menor riesgo. Y el score final: \boxed{\text{Score} = \text{Offset} + \sum_{i=1}^{n} \text{Puntos}_{ij}}
Usando los coeficientes del modelo que definimos anteriormente y los parámetros estándar (B = 600, PDO = 20, \theta_0 = 50:1) se puede realizar un ejemplo numérico.
Constantes calculadas:
Tabla de puntos para ingreso_anual (β = −0,876):
| Bin | Rango | WOE | Puntos |
|---|---|---|---|
| 1 | [Missing] | −1,35 | ≈ −18 |
| 2 | (-∞, 15K] | −1,05 | ≈ −10 |
| 3 | (15K, 25K] | −0,65 | ≈ 0 |
| 4 | (25K, 40K] | 0,00 | ≈ +16 |
| 5 | (40K, 60K] | +0,39 | ≈ +26 |
| 6 | (60K, 100K] | +1,23 | ≈ +47 |
| 7 | (100K, +∞) | +1,96 | ≈ +66 |
Tabla de puntos para edad (β = −0,654):
| Bin | Rango | WOE | Puntos |
|---|---|---|---|
| 1 | [Missing] | −0,92 | ≈ −10 |
| 2 | (-∞, 25] | −1,45 | ≈ −22 |
| 3 | (25, 35] | −0,63 | ≈ +1 |
| 4 | (35, 50] | +0,48 | ≈ +18 |
| 5 | (50, +∞) | +1,12 | ≈ +32 |
Score de un cliente específico:
| Variable | Valor | Bin | Puntos |
|---|---|---|---|
| ingreso_anual | 75.000€ | 6 | +47 |
| edad | 42 años | 4 | +18 |
| categoria_empleo | Asalariado | 3 | +22 |
| antiguedad_laboral | 8 años | 4 | +19 |
| num_productos | 2 | 3 | +14 |
| Score total | 487,1 + 47 + 18 + 22 + 19 + 14 = 607 |
Este cliente obtiene un score de 607, ligeramente por encima del score base de 600, lo que corresponde a odds algo mejores que 50:1.
Ahora podemos verificar que la transformación es correcta calculando la probabilidad de default que corresponde al score 607.
Primero calculamos las log-odds a partir del score: \ln(\text{odds}) = \frac{\text{Score} - \text{Offset}}{\text{Factor}} = \frac{607 - 487{,}1}{28{,}85} = \frac{119{,}9}{28{,}85} \approx 4{,}155
Las odds de buen pagador son: \text{odds} = e^{4{,}155} \approx 63{,}5
Es decir, aproximadamente 63,5 buenos pagadores por cada impago. La probabilidad de default es: P(\text{default}) = \frac{1}{1 + \text{odds}} = \frac{1}{1 + 63{,}5} \approx 1{,}55%
Hay una pequeña diferencia respecto al cálculo directo con el modelo logístico debida al redondeo de los puntos a números enteros — en la práctica los puntos se redondean para mantener la aditividad del scorecard, lo que introduce una pequeña imprecisión aceptable a la hora de recuperar la probabilidad.
La propiedad más importante del scorecard es que el score total es la suma de los puntos de cada variable más el offset. Esto permite:
Si el binning es monótono (WOE siempre creciente con la variable), los puntos también son monótonos. A mayor ingreso, más puntos — sin excepciones. Esta propiedad es importante para la interpretabilidad regulatoria y para la coherencia del modelo.
Con los parámetros estándar (B = 600, PDO = 20, \theta_0 = 50:1) un score de 620 siempre corresponde al doble de odds que un score de 600, independientemente del modelo específico. Esto permite comparar scorecards de distintos modelos o distintas épocas en la misma escala.
El score mínimo teórico corresponde al cliente que cae en el bin de mayor riesgo de todas las variables, y el score máximo al cliente que cae en el bin de menor riesgo de todas. En la práctica la distribución de scores en la población se concentra en un rango mucho más estrecho — generalmente entre 400 y 800 para los parámetros estándar.
Un PDO de 20 significa que doblar las odds requiere 20 puntos. Con una escala de 300 a 850 (550 puntos de rango) tenemos 550 / 20 \approx 27 duplicaciones de odds en el rango del scorecard. Con PDO = 40 tendríamos solo 13 — el scorecard sería menos granular.
Un PDO más pequeño hace el scorecard más sensible — pequeñas diferencias en el score corresponden a grandes diferencias en el riesgo. Un PDO más grande hace el scorecard más estable — las fluctuaciones en el score tienen menos impacto en las odds.
Las odds de referencia determinan el nivel de riesgo que corresponde al score base. Si la tasa de default del portfolio es del 5%, las odds son 19:1. Si definimos el score base con odds 50:1, el score medio del portfolio será inferior a 600 — la mayoría de los clientes quedarán por debajo del score base.
En la práctica las odds de referencia se calibran para que la distribución de scores en el portfolio de entrenamiento tenga media aproximadamente igual al score base.
Cuando la tasa de default del portfolio cambia — por ejemplo por un ciclo económico adverso — el scorecard no necesita reconstruirse desde cero. Basta con recalibrar el offset para que el score base corresponda a las nuevas odds de referencia. Los puntos de cada variable permanecen iguales — solo cambia la interpretación del score en términos de probabilidad.
Una vez calculados los puntos de cada bin de cada variable el scorecard se reduce a una tabla de consulta implementable en SQL:
SELECT
cliente_id,
487.1
+ CASE
WHEN ingreso_anual IS NULL THEN -18
WHEN ingreso_anual <= 15000 THEN -10
WHEN ingreso_anual <= 25000 THEN 0
WHEN ingreso_anual <= 40000 THEN 16
WHEN ingreso_anual <= 60000 THEN 26
WHEN ingreso_anual <= 100000 THEN 47
ELSE 66
END
+ CASE
WHEN edad IS NULL THEN -10
WHEN edad <= 25 THEN -22
WHEN edad <= 35 THEN 1
WHEN edad <= 50 THEN 18
ELSE 32
END
-- + resto de variables
AS score
FROM solicitudes Esta es una de las razones por las que los scorecards han perdurado en el sector financiero décadas después de su introducción — se pueden implementar y auditar con las herramientas más básicas.
El scorecard produce probabilidades de default a través de la relación: P(\text{default}) = \frac{1}{1 + e^{(\text{Score} - \text{Offset}) / \text{Factor}}}
Pero ¿son estas probabilidades correctas? Un modelo puede discriminar bien — separar buenos de malos pagadores — y a la vez estar mal calibrado — las probabilidades predichas no coinciden con las tasas de default observadas.
La curva de calibración responde a esta pregunta dividiendo el dataset en 10 grupos por score y comparando la probabilidad predicha media con la tasa de default observada real en cada grupo. Si el modelo está bien calibrado los puntos deberían caer sobre la diagonal.
La calibración es especialmente importante en credit scoring cuando el scorecard se usa para estimar pérdidas esperadas — si la probabilidad de default predicha es sistemáticamente inferior a la real, las provisiones del banco serán insuficientes.
La transformación de la regresión logística al scorecard es un proceso matemático elegante que resuelve un problema práctico fundamental: cómo convertir un modelo estadístico abstracto en una herramienta de decisión interpretable, auditable y desplegable en cualquier sistema.
Los tres parámetros del scorecard — score base, PDO y odds de referencia — no son arbitrarios sino que definen una escala con significado económico preciso. La fórmula de transformación preserva toda la información del modelo logístico mientras la convierte a una forma que cualquier analista puede entender y cualquier sistema puede implementar.
La cadena completa es: \text{Datos} \xrightarrow{\text{Binning}} \text{WOE} \xrightarrow{\text{Regresión logística}} \beta_i \xrightarrow{\text{Transformación}} \text{Puntos}_{ij} \xrightarrow{\text{Suma}} \text{Score}
Cada eslabón de esta cadena tiene su justificación matemática y su implicación práctica. Entender la cadena completa es lo que distingue a un analista que usa un scorecard de uno que lo construye y puede defenderlo ante el regulador.
Si quieres reproducir todos los cálculos de este artículo con tus propios datos, el constructor de scorecards del laboratorio de Analytics Lane implementa cada paso de esta cadena de forma interactiva y completamente en tu navegador
Nota: Las imágenes de este artículo fueron generadas utilizando un modelo de inteligencia artificial.
Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…
“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…
Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…
Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…
Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…
En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…
This website uses cookies.