Ciencia de datos

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a toda la cartera con la misma tasa de retención— y la segmentación RFM —que clasifica a cada cliente según su comportamiento pasado pero no predice su comportamiento futuro—. Este artículo cierra esa brecha con el modelo que es, hoy, el estándar de referencia para CLV en negocios no contractuales: BG/NBD combinado con Gamma/Gamma.

A diferencia del CLV clásico, este modelo no necesita asumir una tasa de retención fija. A diferencia del RFM, no se limita a describir: estima, para cada cliente individual, la probabilidad de que siga activo, cuántas transacciones hará en el próximo período, y cuánto va a gastar. La combinación de esas tres piezas es lo que permite obtener el CLV.

Puedes ajustar el modelo sobre tus propios datos en la herramienta BG/NBD del laboratorio. O probar el modelo sobre el conjunto de datos clásico CDNow, incluido en la herramienta como ejemplo.

El problema que resuelve: comportamiento no contractual

En un negocio contractual (una suscripción o un seguro) sabes exactamente cuándo un cliente se va: cuando cancela. En un negocio no contractual (e-commerce, retail o donaciones puntuales) el cliente nunca te dice que se ha ido. Simplemente deja de comprar, y solo tras un período de silencio puedes empezar a sospechar que ha abandonado.

Esto crea un problema estadístico genuino: con los mismos datos observados, digamos, un cliente que compró 5 veces y la última hace 60 días, pueden coexistir dos historias completamente distintas. Puede ser un cliente de baja frecuencia que comprará otra vez en cualquier momento, o puede ser un cliente que ya abandonó hace 59 días y nunca volverá. El dato observado es identico; la interpretación correcta depende de un proceso latente que no observamos directamente.

El modelo BG/NBD fue diseñado exactamente para esta situación. No intenta adivinar si un cliente concreto se ha ido; en su lugar, modela la probabilidad de que siga activo dado todo lo que sabemos sobre su comportamiento y el de clientes similares.

La estructura del modelo: dos procesos latentes

BG/NBD combina dos supuestos sobre el comportamiento de cada cliente, ambos no observables directamente. El desarrollo matemático de este modelo se puede consultar en una entrada anterior.

El proceso de compra: Poisson con heterogeneidad Gamma

Mientras un cliente está activo, sus compras siguen un proceso de Poisson con tasa individual \lambda. Esto significa que las compras ocurren de forma aleatoria en el tiempo, con una frecuencia esperada constante mientras dure la actividad.

Pero no todos los clientes compran con la misma frecuencia. Algunos son compradores intensivos, otros ocasionales. Esta heterogeneidad se modela asumiendo que \lambda varía entre clientes según una distribución Gamma con parámetros r y \alpha: \lambda \sim \text{Gamma}(r, \alpha)

La distribución Gamma es la elección natural aquí porque es conjugada con Poisson, lo que simplifica enormemente las matemáticas, y porque su forma flexible captura bien la asimetría típica de las tasas de compra reales: muchos clientes con frecuencia baja y una cola de clientes con frecuencia alta.

El proceso de abandono: geométrico con heterogeneidad Beta

Después de cada compra, el cliente puede abandonar con probabilidad p, o seguir activo con probabilidad 1-p. Esto convierte el tiempo de vida del cliente en una variable geométrica: el número de compras hasta el abandono sigue esa distribución.

Igual que con \lambda, p varía entre clientes. Se modela con una distribución Beta: p \sim \text{Beta}(a, b)

La Beta es la elección natural para modelar probabilidades porque está acotada entre 0 y 1 y es muy flexible en su forma.

Por qué “Beta-Geometric/NBD”

El nombre del modelo viene de esta estructura compuesta: el proceso de abandono es Beta-Geométrico (Beta-Geometric, BG) y, cuando se integra sobre la heterogeneidad de \lambda, el número de compras de un cliente activo sigue una distribución Binomial Negativa (Negative Binomial Distribution, NBD). De ahí BG/NBD.

Interpretando los parámetros ajustados

En el ejemplo del laboratorio, sobre el dataset CDNOW con 2.357 clientes, el ajuste produce:

  • Modelo BG/NBD: r = 0,254, α = 5,447, a = 0,607, b = 2,647
  • Modelo Gamma/Gamma: p = 4,683, q = 4,190, γ = 24,391
Parámetros del modelo ajustado para el conjunto de datos CDNOW en la herramienta BG/NBD + Gamma/Gamma del laboratorio de Analytics Lane

¿Qué nos dicen estos números?

La media de la distribución Gamma de \lambda es r/α = 0,254/5,447 ≈ 0,047 compras por unidad de tiempo, lo que confirma que estamos ante un negocio de baja frecuencia transaccional, compatible con CDNOW, donde las compras de CDs no son diarias.

La media de la distribución Beta de p es a/(a+b) = 0,607/3,254 ≈ 0,187. Esto significa que, en promedio, cada cliente activo tiene aproximadamente un 18,7% de probabilidad de abandonar después de cualquier compra dada. Pero esto es solo la media: la verdadera utilidad del modelo está en cómo combina esta heterogeneidad poblacional con el historial específico de cada cliente para producir una estimación individual.

El ajuste se realiza por máxima verosimilitud. El log-verosimilitud de -17.138,2 con 272 iteraciones no tiene una interpretación absoluta —solo es comparable entre modelos ajustados sobre los mismos datos— pero las iteraciones bajas y el valor estable indican convergencia limpia del optimizador.

RFM resumido: las tres estadísticas suficientes

Una propiedad elegante del modelo BG/NBD es que no necesita el historial completo de transacciones de cada cliente. Le basta con tres números, conocidos como las estadísticas suficientes:

  • x: número de transacciones repetidas (excluyendo la primera compra)
  • t_x: momento de la última compra, medido desde la primera
  • T: tiempo total observado desde la primera compra hasta la fecha de corte

Esto explica por qué el resumen de cartera reporta que 1.218 clientes (52%) tienen x=0: son clientes de una sola compra, sin repetición observada. El modelo trata este grupo de forma especial, porque para ellos la información disponible es mínima: solo sabemos que compraron una vez hace T unidades de tiempo, sin ninguna señal adicional sobre su tasa de compra o su probabilidad de abandono específica.

La probabilidad P(alive): el corazón del modelo

La pregunta que todo el modelo busca responder el modelo es: dado el historial (x, t_x, T) de un cliente, ¿cuál es la probabilidad de que siga activo hoy?

La fórmula de P(alive) combina la verosimilitud de dos escenarios, que el cliente siga activo y simplemente no haya comprado en el intervalo (t_x, T), o que haya abandonado en algún momento de ese intervalo, ponderados por sus probabilidades relativas bajo el modelo ajustado. El resultado es un número entre 0 y 1 para cada cliente.

En el ejemplo, la P(alive) media de la cartera es 0,7870, y 1.926 clientes (82%) tienen P(alive) > 0,5. Esto no significa que el 82% de los clientes vaya a comprar pronto: significa que, según el patrón de compra observado y el modelo ajustado a toda la cartera, es más probable que sigan activos que que hayan abandonado.

Es importante notar el patrón en los datos de la tabla: los clientes con P(alive) más alta (0,93-0,98) tienden a tener frecuencia alta (x entre 8 y 43) y última compra reciente respecto a T. Por ejemplo, el cliente 1203 tiene x=40, última compra en t_x=71,0 sobre un T=72: compró 40 veces y la última fue casi en el momento de corte, lo que produce P(alive) = 0,9807. En cambio, un cliente con la misma frecuencia pero cuya última compra fuera mucho antes de T tendría una P(alive) sensiblemente menor, porque el silencio prolongado después de un patrón de compra frecuente es más sugestivo de abandono que el mismo silencio en un comprador esporádico.

Este es exactamente el tipo de matiz que el CLV clásico no puede capturar: dos clientes con la misma frecuencia histórica pueden tener probabilidades de actividad muy distintas según cuándo fue su última compra relativa a su patrón habitual.

Figuras con el resumen de los resultados obtenidos para el conjunto de datos CDNOW, con la distribución de clientes en base a la probabilidad de seguir activos y valor monetario. También se pueden ver los mapas de calor Frecuencia Recencia para el valor monetario y probabilidad de seguir activos.

Transacciones esperadas: la proyección a futuro

Una vez ajustado el modelo, se puede proyectar cuántas transacciones esperamos de cada cliente en un horizonte futuro (por ejemplo, las próximas 52 semanas). Esta proyección combina dos cosas: la tasa de compra individual estimada de cada cliente (informada tanto por su historial como por la distribución poblacional) y su probabilidad de seguir activo durante ese horizonte.

En el ejemplo, la cartera completa de 2.357 clientes genera una proyección de 1.967 transacciones totales esperadas en las próximas 52 semanas. Eso es menos de una transacción por cliente en promedio, lo que es coherente con el carácter de baja frecuencia que vimos en los parámetros del modelo Gamma.

Mirando la tabla de clientes top, el rango de transacciones esperadas (columna E[X]) va de 4,23 a 23,80 para los clientes de mayor valor, una dispersión enorme que refleja la heterogeneidad real de comportamiento dentro de la cartera. El cliente 1203, con 40 compras históricas y P(alive) de 0,98, tiene una expectativa de 22,72 transacciones futuras, prácticamente una compra cada dos semanas durante el año siguiente.

Gamma/Gamma: añadiendo el valor monetario

BG/NBD predice cuántas transacciones hará un cliente, pero no cuánto va a gastar en cada una. Para eso se necesita un segundo modelo: Gamma/Gamma, que estima el valor monetario esperado por transacción.

El supuesto central de Gamma/Gamma es que el valor monetario de cada transacción de un cliente se distribuye Gamma con un parámetro de forma común p y un parámetro de escala ν específico de cada cliente. A su vez, ν entre clientes se distribuye Gamma con parámetros q y γ. Esta estructura jerárquica permite que el modelo distinga entre la variabilidad del gasto dentro de las transacciones de un mismo cliente (ruido) y la variabilidad real entre clientes (heterogeneidad genuina de valor).

Un supuesto importante del modelo Gamma/Gamma es que el valor monetario por transacción es independiente de la frecuencia de compra. Esto no siempre se cumple en la práctica, algunos negocios tienen clientes que compran mucho y gastan poco por transacción, o viceversa, pero es una simplificación razonable en la mayoría de los casos y permite que BG/NBD y Gamma/Gamma se ajusten de forma independiente y luego se combinen.

En el ejemplo, los parámetros ajustados son p = 4,683, q = 4,190, γ = 24,391, con log-verosimilitud de -4.884,6. El valor monetario esperado de cada cliente (columna E[M] en la tabla) se calcula combinando estos parámetros poblacionales con el historial de gasto observado de cada cliente individual, mediante un estimador bayesiano tipo shrinkage: clientes con poco historial se ajustan hacia la media poblacional, mientras que clientes con historial extenso confían más en su propio patrón observado.

El cálculo del CLV: combinando ambos modelos

El CLV de cada cliente se obtiene combinando las tres piezas: CLV = E[\text{Transacciones futuras}] \times E[\text{Valor monetario por transacción}] \times \text{Margen} \times \text{Factor de descuento}

En la práctica, esto significa: tomar la proyección de transacciones del modelo BG/NBD para el horizonte elegido, multiplicarla por el valor monetario esperado del modelo Gamma/Gamma, aplicar el margen bruto configurado, y descontar al presente según la tasa de descuento anual.

Con los parámetros del ejemplo, margen bruto y tasa de descuento configurados en la herramienta, el resultado agregado es un CLV medio por cliente de 29,14 € y un CLV total de cartera de 68.682 € sobre las próximas 52 semanas.

Mirando la tabla de clientes individuales, el cliente con mayor CLV (1981) alcanza 939,88 €, casi 32 veces el promedio de cartera. Esto ilustra una característica típica de las distribuciones de CLV calculadas con estos modelos: están fuertemente concentradas, con un pequeño número de clientes aportando una fracción desproporcionada del valor total. La distribución de CLV que muestra la herramienta hace visible esta asimetría de un vistazo.

Validar el modelo: calibración

Ajustar un modelo no garantiza que represente bien la realidad. La herramienta incluye una validación de calibración que compara las frecuencias de compra predichas por el modelo contra las frecuencias observadas realmente en los datos, agregadas por número de transacciones.

En el ejemplo, el resultado es “Ajuste aceptable. Algunas frecuencias se desvían moderadamente (desviación L1 = 0,06)”. La desviación L1 mide la distancia total entre la distribución predicha y la observada; valores cercanos a 0 indican mejor ajuste. Un 0,06 es razonable pero no perfecto, lo que es habitual en datos reales con cierta heterogeneidad que el modelo no captura completamente.

Cuando el ajuste no es bueno, las causas más comunes son: una población de clientes que en realidad mezcla varios segmentos de comportamiento muy distintos (lo que sugeriría ajustar modelos separados por segmento), un período de calibración demasiado corto para estimar bien la heterogeneidad, o un negocio donde el supuesto de proceso de Poisson no se sostiene bien, por ejemplo, si hay fuerte estacionalidad o promociones puntuales que generan picos de compra no aleatorios.

Entrenamiento y validación temporal

La herramienta permite escoger una fecha de corte para entrenar el modelo y reservar el período posterior para validar las predicciones contra el comportamiento real observado. Esta práctica, habitual en cualquier ejercicio de modelado predictivo, es especialmente importante aquí porque permite responder a la pregunta que de verdad importa: ¿el modelo ajustado sobre el pasado predice razonablemente bien lo que pasó después?

Una mejora pendiente en la herramienta es visualizar esto mediante una curva de supervivencia agregada de la cartera, mostrando el ajuste del modelo en el período de entrenamiento y su proyección en el período de validación frente al comportamiento real. Es la visualización clásica de los papers originales de Fader y Hardie, y complementa la métrica de calibración añadiendo la dimensión temporal que el P(alive) puntual no muestra.

Resultados por cliente y validación del modelo para los datos de CDNOW en la aplicación del laboratorio de Analytics Lane.

Cuándo usar BG/NBD

BG/NBD es apropiado cuando se cumplen estas condiciones:

  • El negocio es no contractual: el cliente puede comprar o no en cualquier momento, sin un calendario fijo de renovación
  • Las compras pueden ocurrir con frecuencia variable y continua: no hay un número fijo de “oportunidades” de compra por período
  • Existe suficiente historial transaccional por cliente para estimar el patrón individual (aunque el modelo funciona razonablemente incluso con clientes de una sola compra, como vimos)

Cuando las oportunidades de compra son discretas y regulares —una renovación anual, una campaña periódica— el modelo apropiado es BG/BB, que cubriremos en el próximo artículo de la serie. La diferencia no es solo técnica: refleja una estructura de negocio fundamentalmente distinta, y aplicar el modelo equivocado produce estimaciones de CLV poco fiables aunque el ajuste estadístico parezca razonable.

Cómo usar la herramienta

La herramienta BG/NBD del laboratorio permite cargar cualquier CSV de transacciones (cliente, fecha, valor) además del conjunto de datos CDNOW de ejemplo. Los parámetros configurables son la fecha de corte, la unidad de tiempo, el horizonte de predicción, el margen bruto y la tasa de descuento anual.

Los outputs incluyen los parámetros ajustados de ambos modelos con su log-verosimilitud, el resumen de cartera, las distribuciones de P(alive) y CLV, los mapas F/R de transacciones esperadas y P(alive), la tabla completa de clientes con todas las métricas individuales, y la validación de calibración.

Un ejercicio útil: ordena la tabla de clientes por CLV descendente y compara el top 50 con la segmentación RFM del artículo anterior. Es muy probable que la mayoría coincida con el segmento Campeones, pero encontrarás excepciones interesantes, clientes con frecuencia moderada pero valor monetario muy alto que el RFM no destacaría tanto como lo hace el CLV probabilístico.

Próximo artículo: BG/BB para compras discretas

El siguiente artículo de la serie cubre el modelo BG/BB, la contraparte de BG/NBD para negocios donde las oportunidades de compra son discretas: campañas periódicas, renovaciones, o cualquier contexto donde el cliente tiene o no una transacción en cada “slot” de tiempo bien definido. Veremos cómo cambia la estructura matemática al pasar de procesos continuos (Poisson) a procesos discretos (Binomial), y por qué esa diferencia importa tanto para la precisión del CLV estimado.

Imagen de StockSnap en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

5 días ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

1 semana ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

2 semanas ago

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

2 semanas ago

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

3 semanas ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

3 semanas ago

This website uses cookies.