Ciencia de datos

Pareto/NBD: cuando el abandono silencioso cambia el CLV

En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste estadístico casi idéntico (log-verosimilitud -17.135,8 vs -17.138,2) pero un CLV medio bastante más bajo (15 € vs 29 €). Quedó pendiente explicar por qué. Este artículo cierra ese hueco: la diferencia entre ambos modelos no está en cómo se ajustan a los datos observados, sino en qué asumen sobre el momento exacto en que un cliente puede dejar de comprar.

Es el modelo más antiguo de los dos, Schmittlein, Morrison y Colombo lo propusieron en 1987, casi veinte años antes que BG/NBD, y también el más fiel a la intuición de cómo abandonan realmente los clientes en muchos negocios reales. La contrapartida es un coste computacional mayor, como ya vimos en el Dashboard. Puedes ajustarlo sobre tus propios datos en la herramienta Pareto/NBD del laboratorio.

El problema con “solo se puede abandonar tras comprar”

BG/NBD resuelve el problema del comportamiento no contractual con un supuesto conveniente: el cliente, después de cada compra, decide con probabilidad p si esa fue su última compra. El abandono está atado al evento de compra.

Esto funciona razonablemente bien en la práctica, pero tiene una grieta conceptual: ¿qué pasa con el cliente que simplemente deja de interesarse, sin que medie ninguna compra de despedida? Un cliente puede irse de viaje, cambiar de proveedor, perder interés en la categoría, todo eso ocurre en cualquier momento, no justo después de haber comprado. BG/NBD no tiene forma de representar ese tipo de abandono porque, en su estructura, el abandono solo “se activa” tras una transacción.

Pareto/NBD elimina esa restricción.

La estructura del modelo: abandono en tiempo continuo

Igual que BG/NBD, Pareto/NBD combina dos procesos latentes, pero el segundo es estructuralmente distinto.

El proceso de compra: idéntico a BG/NBD

Mientras el cliente está activo, compra según un proceso de Poisson con tasa individual \lambda, y esa tasa varía entre clientes según una distribución Gamma: \lambda \sim \text{Gamma}(r, \alpha)

Hasta aquí, exactamente lo mismo que en BG/NBD.

El proceso de abandono: exponencial en tiempo continuo

Aquí está el cambio. En lugar de una probabilidad de abandono que se evalúa tras cada compra, cada cliente tiene una tasa de “muerte” individual \mu, y el momento de abandono sigue una distribución exponencial con esa tasa. La heterogeneidad de μ entre clientes se modela, de nuevo, con una Gamma: \mu \sim \text{Gamma}(s, \beta)

La diferencia es sutil pero profunda: el “reloj” del abandono corre de forma continua e independiente del reloj de las compras. Un cliente puede “morir”, dejar de estar activo, en cualquier instante entre dos compras, no solo en el momento mismo de comprar.

Por qué “Pareto/NBD”

El nombre viene de que, integrando sobre la heterogeneidad de \lambda y \mu, el tiempo hasta el abandono de un cliente sigue una distribución de tipo Pareto, mientras que el número de compras de un cliente activo sigue, igual que en BG/NBD, una Binomial Negativa (NBD).

Interpretando los parámetros del ejemplo

Sobre el mismo dataset CDNOW de 2.357 clientes, el ajuste produce:

  • Modelo Pareto/NBD: r = 0,563, \alpha = 12,559, s = 0,408, \beta = 10,514
  • Modelo Gamma/Gamma: p = 4,683, q = 4,190, \gamma = 24,391 (idéntico al de BG/NBD, porque el valor monetario se modela igual en ambos casos)

La media de \lambda es r/\alpha = 0,563/12,559 ≈ 0,045 compras por unidad de tiempo, prácticamente la misma tasa de compra que estimaba BG/NBD (0,047), lo cual tiene sentido: el proceso de compra no ha cambiado entre modelos.

La media de \mu es s/\beta = 0,408/10,514 ≈ 0,039, la tasa de abandono “instantánea” media. Este parámetro no es directamente comparable con la probabilidad p de BG/NBD (que era una probabilidad por compra, no una tasa continua), pero cumple un papel análogo: cuantifica cuán propensos son los clientes a desactivarse.

El ajuste necesitó 521 iteraciones frente a las 272 de BG/NBD — el coste computacional mayor que vimos en el Dashboard se refleja también aquí, en un optimizador que tarda más en converger porque la verosimilitud de Pareto/NBD es más compleja de evaluar.

El caso que lo explica todo: cliente 1901

La tabla de clientes del laboratorio contiene un ejemplo que vale más que cualquier explicación abstracta. El cliente 1901 tiene x=21, veintiuna compras repetidas, un historial de frecuencia alta, pero su última compra fue en t_x=4,7 sobre una ventana observada de T=68. Es decir: compró mucho, pero hace mucho que no compra.

Su P(alive) según Pareto/NBD es 0,0000.

Comparemos con el cliente 1081: x=15, t_x=65,9, T=72. Compró menos veces que el 1901, pero su última compra fue reciente respecto al período total observado. Su P(alive) es 0,9402.

La diferencia entre ambos no es la frecuencia, el 1901 compró más, sino el patrón temporal del silencio. Bajo Pareto/NBD, un cliente que compraba con cierta regularidad y de repente desaparece durante un tramo largo del tiempo observado recibe una penalización fuerte en su probabilidad de actividad, precisamente porque el modelo permite que el abandono haya ocurrido en cualquier punto de ese silencio, no solo justo después de la compra 21.

Este es el “abandono silencioso” que menciona la documentación de la herramienta: clientes con historial de compra sólido que el modelo detecta como casi seguramente inactivos, simplemente por la duración del silencio relativo a su ventana de observación.

El contraste con BG/NBD usando los mismos clientes

Vale la pena confrontar esto con lo que vimos en el artículo de BG/NBD. Para perfiles de alta frecuencia y recencia alta, como el cliente 1203 (x=40, P(alive)=0,98 en BG/NBD), ambos modelos coinciden en darle una probabilidad de actividad muy alta. Donde divergen es precisamente en los casos como el 1901: alta frecuencia histórica combinada con un silencio largo.

BG/NBD, al atar el abandono al evento de compra, tiende a ser más generoso con estos clientes: si compraron mucho, “deben” seguir teniendo una probabilidad razonable de estar activos, porque el modelo solo permite que se hayan “ido” en alguna de esas 21 compras, no en el silencio posterior. Pareto/NBD, en cambio, permite que el abandono haya ocurrido en cualquier punto del silencio, y para un silencio de la magnitud que muestra el cliente 1901 (4,7 de 68 unidades de tiempo, es decir, sin comprar durante el 93% de la ventana observada), la probabilidad resultante colapsa a prácticamente cero.

Esto explica directamente el patrón agregado que vimos en el Dashboard: con el 52% de la cartera siendo compradores de una sola transacción y una proporción relevante de clientes con patrones de silencio largo tras un historial de frecuencia moderada-alta, Pareto/NBD penaliza más a ese segmento, lo que arrastra hacia abajo tanto las transacciones esperadas (1.031 vs 1.967) como el CLV medio (15 € vs 29 €) frente a BG/NBD.

Comparando filas completas de ambas tablas

Tomando varios clientes que aparecían en el artículo de BG/NBD y viendo cómo los trata Pareto/NBD:

Clientext_xTP(alive) BG/NBDP(alive) Pareto/NBD
1901214,7680,0000
10811565,9720,88310,9402
1467862,1700,86130,9333
1696861,4690,86580,9371
15601268,9700,95020,9945

Para los clientes con recencia alta respecto a su ventana observada, Pareto/NBD da P(alive) consistentemente más altas que BG/NBD, no más bajas. La penalización fuerte de Pareto/NBD se concentra específicamente en los casos de silencio prolongado como el 1901, mientras que para los clientes “normales”, con compra reciente, el modelo es, si acaso, ligeramente más optimista. Es un matiz importante: Pareto/NBD no es uniformemente “más pesimista”; es más sensible al patrón temporal exacto del silencio, en ambas direcciones.

El mapa F/R bajo Pareto/NBD

El mapa de dispersión Frecuencia-Recencia que vimos en el artículo de BG/NBD tiene aquí una lectura distinta. Bajo BG/NBD, la zona de “alta frecuencia, recencia baja” (clientes que compraban mucho pero llevan tiempo sin hacerlo) muestra P(alive) moderadas porque el modelo no puede penalizar fuertemente el silencio puro. Bajo Pareto/NBD, esa misma zona se vuelve mucho más heterogénea: dentro de “alta frecuencia, recencia baja” hay clientes como el 1901 que caen a P(alive)≈0 y otros que mantienen probabilidades razonables, dependiendo de la duración exacta del silencio relativa a T.

Si tienes ambos modelos ejecutados sobre el mismo dataset en el Dashboard, comparar los dos mapas F/R de P(alive) lado a lado es la forma más visual de entender esta diferencia.

Cuándo Pareto/NBD vale el coste computacional extra

Dado que tarda varias veces más que BG/NBD en ajustarse, conviene saber cuándo esa inversión se justifica:

  • Vale la pena cuando: tu cartera tiene una proporción significativa de clientes con historial de frecuencia moderada-alta que muestran períodos de silencio largos, el patrón exacto del cliente 1901. Si ese segmento es relevante para tus decisiones (por ejemplo, campañas de reactivación dirigidas a “antiguos buenos clientes”), la diferencia entre ambos modelos no es un matiz académico: cambia directamente a quién consideras prioritario reactivar.
  • Probablemente no vale la pena cuando: la mayoría de tu cartera son compradores recientes con poca variación en el patrón de silencio, o cuando necesitas recalcular el modelo con mucha frecuencia sobre carteras grandes y el coste computacional es una restricción operativa real, como vimos en la fila de tiempo de cómputo del Dashboard.

Cómo usar la herramienta

La herramienta Pareto/NBD del laboratorio tiene la misma interfaz que BG/NBD: fecha de corte, unidad de tiempo, horizonte de predicción, margen bruto y tasa de descuento como parámetros configurables. Los outputs, parámetros ajustados, resumen de cartera, distribuciones de P(alive) y CLV, mapas F/R, tabla de clientes y validación de calibración, siguen la misma estructura, lo que facilita comparar directamente fila por fila con los resultados de BG/NBD.

Un ejercicio revelador: ordena la tabla de clientes por x descendente y observa la columna de P(alive). Si encuentras clientes de alta frecuencia con P(alive) muy baja, como el 1901, has localizado exactamente el segmento de “abandono silencioso” que este modelo está diseñado para detectar y que BG/NBD, por construcción, no puede ver con la misma claridad.

Cierre de la serie (por ahora)

Con CLV Simple, RFM, BG/NBD, BG/BB, el Dashboard comparativo y ahora Pareto/NBD, la suite de CLV del laboratorio queda documentada en su totalidad actual. Cada modelo responde una pregunta distinta sobre el valor del cliente, y la elección correcta depende menos de cuál es “más avanzado” y más de qué decisión de negocio vas a tomar con el resultado, la lección que atraviesa toda esta serie, desde la fórmula más simple hasta el modelo matemáticamente más elaborado.

Imagen de Pexels en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Por qué migrar tus proyectos TypeScript a ES Modules en 2026

Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…

5 días ago

Método del codo: interpretación correcta y limitaciones

Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…

1 semana ago

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

2 semanas ago

Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…

2 semanas ago

Curiosidad: Por qué la criptografía habla siempre de Alice y Bob

Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…

3 semanas ago

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…

3 semanas ago

This website uses cookies.