• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
      • Ajuste de Curvas
      • Calculadora de Matrices
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Pareto/NBD: cuando el abandono silencioso cambia el CLV

CLV, Laboratorio

septiembre 22, 2026 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 7 minutos

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.

Tabla de contenidos

  • 1. El problema con “solo se puede abandonar tras comprar”
  • 2. La estructura del modelo: abandono en tiempo continuo
    • 2.1. El proceso de compra: idéntico a BG/NBD
    • 2.2. El proceso de abandono: exponencial en tiempo continuo
    • 2.3. Por qué “Pareto/NBD”
  • 3. Interpretando los parámetros del ejemplo
  • 4. El caso que lo explica todo: cliente 1901
  • 5. El contraste con BG/NBD usando los mismos clientes
  • 6. Comparando filas completas de ambas tablas
  • 7. El mapa F/R bajo Pareto/NBD
  • 8. Cuándo Pareto/NBD vale el coste computacional extra
  • 9. Cómo usar la herramienta
  • 10. Cierre de la serie (por ahora)

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.

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

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.

Publicidad


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

Publicidad


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.

Publicidad


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,768—0,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.

Publicidad


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?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling
  • Por qué migrar tus proyectos TypeScript a ES Modules en 2026
  • Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper
  • Curiosidad: Por qué la criptografía habla siempre de Alice y Bob
  • BG/BB: el modelo de CLV para compras en períodos discretos
  • Errores comunes al interpretar resultados estadísticos
  • Método del codo: interpretación correcta y limitaciones
  • Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Publicado en: Ciencia de datos Etiquetado como: CLV, Laboratorio

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Pareto/NBD: cuando el abandono silencioso cambia el CLV

septiembre 22, 2026 Por Daniel Rodríguez

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

septiembre 17, 2026 Por Daniel Rodríguez

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

septiembre 15, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Cómo validar nombres de hojas (sanitizar) y archivos Excel con Python publicado el noviembre 4, 2024 | en Herramientas, Python
  • El valor esperado: la mejor herramienta que casi nadie usa publicado el febrero 5, 2026 | en Ciencia de datos
  • Cómo instalar paquetes en Jupyter Notebook de forma eficiente: Guía completa con ejemplo publicado el febrero 3, 2025 | en Python
  • Chatbots vs redes sociales: la diferencia clave entre la inteligencia artificial y los algoritmos de recomendación – Conversar con una inteligencia artificial – Parte II publicado el abril 21, 2026 | en Opinión
  • 7 extensiones de Visual Studio Code para ciencia de datos publicado el enero 27, 2023 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.1 (11)

Aplicar el método D’Hondt en Excel

Comentarios recientes

  • Daniel Rodríguez en Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios
  • Hatepi en Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios
  • Daniel Rodríguez en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • Juan en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto