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.
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.
Igual que BG/NBD, Pareto/NBD combina dos procesos latentes, pero el segundo es estructuralmente distinto.
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.
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.
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).
Sobre el mismo dataset CDNOW de 2.357 clientes, el ajuste produce:
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.
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.
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.
Tomando varios clientes que aparecían en el artículo de BG/NBD y viendo cómo los trata Pareto/NBD:
| Cliente | x | t_x | T | P(alive) BG/NBD | P(alive) Pareto/NBD |
|---|---|---|---|---|---|
| 1901 | 21 | 4,7 | 68 | — | 0,0000 |
| 1081 | 15 | 65,9 | 72 | 0,8831 | 0,9402 |
| 1467 | 8 | 62,1 | 70 | 0,8613 | 0,9333 |
| 1696 | 8 | 61,4 | 69 | 0,8658 | 0,9371 |
| 1560 | 12 | 68,9 | 70 | 0,9502 | 0,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 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.
Dado que tarda varias veces más que BG/NBD en ajustarse, conviene saber cuándo esa inversión se justifica:
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.
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.
Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…
Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…
La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…
Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…
Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…
En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…
This website uses cookies.