Ciencia de datos

De la Regresión Logística al Scorecard: La Transformación Matemática

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.

El punto de partida: la regresión logística sobre variables WOE

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:

  • P(\text{default}) es la probabilidad de impago que el modelo asigna a cada cliente
  • \alpha es el coeficiente de intersección
  • \beta_i es el coeficiente de la variable i
  • WOE_i es el valor de WOE de la variable i para ese cliente

Supongamos que tras ajustar el modelo obtenemos estos coeficientes para cinco variables:

VariableCoeficiente β
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.

Por qué necesitamos transformar los coeficientes

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:

  • No es interpretable para el que toma la decisión: Un gestor de riesgos necesita entender por qué un cliente recibe una puntuación determinada. “Su log-odds es −2,43” no comunica una información clara. “Su ingreso le aporta +40 puntos y su antigüedad laboral +15 puntos” sí lo hace.
  • No es fácil de implementar en sistemas legados: Muchas entidades financieras tienen sistemas con décadas de antigüedad que no pueden ejecutar funciones exponenciales o logarítmicas. Una tabla de consulta (lookup table) de puntos por bin es implementable en cualquier sistema.
  • No permite comparación directa entre clientes: Una probabilidad de 8,3% vs 9,1% es difícil de interpretar. Un score de 623 vs 587 es inmediatamente comparable.
  • No tiene una escala estable en el tiempo: Las probabilidades de default cambian con los ciclos económicos. Una escala de puntos con significado fijo (por ejemplo “600 equivale a odds 50:1”) es más estable como referencia de decisión.

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.

Los tres parámetros del scorecard

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.

Score base (B)

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).

PDO (Points to Double the Odds)

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.

Odds de referencia (θ₀)

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.

La transformación matemática

Con los tres parámetros definidos podemos derivar la fórmula de transformación. El razonamiento es el siguiente.

Paso 1: relacionar score y log-odds

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.

Paso 2: determinar Factor a partir del PDO

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

Paso 3: determinar Offset a partir del score base y las odds de referencia

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

Paso 4: sustituir las log-odds por el modelo logístico

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*}

Paso 5: separar la contribución de cada variable

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}}

Un ejemplo numérico completo

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:

  • Factor = 20 / ln(2) ≈ 28,85
  • Offset = 600 − 28,85 × ln(50) ≈ 487,1
  • Coeficiente de intersección repartido por variable = −2,841 / 5 = −0,568

Tabla de puntos para ingreso_anual (β = −0,876):

BinRangoWOEPuntos
1[Missing]−1,35−18
2(-∞, 15K]−1,05−10
3(15K, 25K]−0,650
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):

BinRangoWOEPuntos
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:

VariableValorBinPuntos
ingreso_anual75.000€6+47
edad42 años4+18
categoria_empleoAsalariado3+22
antiguedad_laboral8 años4+19
num_productos23+14
Score total487,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.

Verificación: del score a la probabilidad

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.

Propiedades del scorecard resultante

Aditividad

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:

  • Calcular la contribución de cada variable al score final
  • Explicar a un cliente por qué tiene ese score
  • Identificar qué variables “pesan” más en la decisión
  • Hacer análisis de sensibilidad (“si el ingreso fuera mayor, ¿cuánto subiría el score?”)

Monotonía

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.

Escala fija

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.

Rango teórico

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.

Elección de los parámetros: implicaciones prácticas

El impacto del PDO en la granularidad

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.

El impacto de las odds de referencia

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.

Recalibración del scorecard

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.

Implementación práctica

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.

La curva de calibración: verificar que las probabilidades son correctas

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.

Conclusiones

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.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

1 día ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

5 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring

En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…

2 semanas ago

This website uses cookies.