Modelo Pareto/NBD + Gamma-Gamma — Clientes B2B (Kambista)

Author

Leydi

Published

June 2, 2026

1 Introducción

Este notebook implementa un pipeline BTYD (Buy Till You Die) para predecir el comportamiento futuro de clientes B2B (Personas Jurídicas, RUC 20…) de Kambista. Combina dos modelos probabilísticos clásicos:

  • Pareto/NBD (Schmittlein, Morrison & Colombo, 1987) — modela conjuntamente la frecuencia de compra mientras el cliente está activo y el proceso de abandono (“muerte” del cliente). Estima cuatro parámetros poblacionales \((r, \alpha, s, \beta)\) vía máxima verosimilitud.
  • Gamma-Gamma (Fader, Hardie & Lee, 2005) — modela el ticket promedio condicionado al historial de cada cliente, asumiendo independencia entre frecuencia y monto. Estima tres parámetros \((p, q, \gamma)\).

La combinación de ambos permite calcular el CLV esperado = P(alive) × compras_esperadas × ticket_esperado.

Implementación de referencia. Se usa el paquete BTYD (Dziurzynski, Wadsworth & McCarthy), basado en las fórmulas cerradas de Fader & Hardie (2005). Se activa hardie = TRUE para usar la aproximación numérica recomendada de la función hipergeométrica \(_2F_1\), más estable que la implementación por defecto.


2 Setup

# Limpieza del entorno para garantizar reproducibilidad
rm(list = ls())
library(BTYD)       # Modelos Pareto/NBD y Gamma-Gamma (fórmulas cerradas)
library(dplyr)      # Manipulación tabular
library(lubridate)  # Manejo de fechas
library(readr)      # I/O de CSV
# Versión del paquete BTYD utilizada (relevante para reproducibilidad
# ya que el comportamiento de hardie=TRUE depende de la versión)
packageVersion("BTYD")
[1] '2.4.3'

3 Carga y preparación del event log

El paquete BTYD requiere un event log (elog) con tres columnas mínimas: cust, date, sales. Cada fila representa una transacción individual.

df_raw_pj <- read_csv("df_raw_pj.csv")
Rows: 43564 Columns: 8
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (3): customerId, client_type, originCurrency
dbl  (4): ruc, amountSent, amountEstimated, ticket_usd
dttm (1): created

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Construcción del event log según el formato esperado por BTYD:
#   - cust  : identificador del cliente (RUC)
#   - date  : fecha de la transacción (clase Date, sin hora)
#   - sales : monto monetario de la transacción (USD)
df_elog <- df_raw_pj %>%
  select(ruc, created, ticket_usd) %>%
  rename(cust = ruc, date = created, sales = ticket_usd) %>%
  mutate(
    date  = as.Date(date),
    sales = as.numeric(sales),
    cust  = as.character(cust)
  ) %>%
  # Eliminamos transacciones inválidas (montos nulos o no positivos)
  filter(!is.na(date), sales > 0)

# Si un cliente realizó dos o más transacciones el mismo día, las
# consolidamos en una sola observación. BTYD trabaja a nivel diario
# (granularidad mínima) y `merge.same.date = TRUE` lo asume.
df_elog <- df_elog %>%
  group_by(cust, date) %>%
  summarise(sales = sum(sales), .groups = "drop")

4 Definición de ventanas: calibración vs holdout

El enfoque BTYD requiere dividir la línea temporal en dos ventanas:

Ventana Función
Calibración ([T0, T.cal]) Período sobre el que se ajustan los parámetros del modelo.
Holdout ((T.cal, T.tot]) Período retenido para validar el desempeño predictivo out-of-time.
cal.end.date     <- as.Date("2025-12-31")  # Fin del período de calibración
holdout.end.date <- as.Date("2026-02-10")  # Fin del período de holdout (~6 semanas)

5 Construcción de la matriz CBS

La matriz CBS (Customer-By-Sufficient-statistic) es la representación canónica del cliente en BTYD. Para cada RUC resume todo su historial en tres números suficientes:

  • \(x\) — número de repeat transactions (la primera compra no cuenta; define el “nacimiento” del cliente).
  • \(t_x\) — tiempo entre la primera y la última transacción observada (en unidades de per).
  • \(T_{cal}\) — tiempo total observado desde la primera transacción hasta el fin de la calibración.

Estos tres valores constituyen un estadístico suficiente para el likelihood del Pareto/NBD: el modelo no necesita ver el log completo, solo el triplete \((x, t_x, T_{cal})\) por cliente.

# dc.ElogToCbsCbt() transforma el event log en la matriz CBS de calibración
# y la matriz CBS de holdout simultáneamente.
#
# Argumentos clave:
#   per             = "week"  → granularidad temporal (semana)
#   T.cal           → fin de calibración
#   T.tot           → fin de holdout (para construir x.star, T.star)
#   merge.same.date = TRUE    → consolida múltiples compras mismo día
#   statistic       = "freq"  → cuenta transacciones (no montos)

tot_cbs <- dc.ElogToCbsCbt(
  df_elog,
  per              = "week",
  T.cal            = cal.end.date,
  T.tot            = holdout.end.date,
  merge.same.date  = TRUE,
  cohort.birth.per = c(min(df_elog$date), cal.end.date),
  dissipate.factor = 1,
  statistic        = "freq"
)
Started making CBS and CBT from the ELOG...
...Completed Freq CBT
Finished filtering out customers not in the birth period.
No dissipation requested.
Started merging same-date transactions...
... Finished merging same-date transactions.
Started Creating Repeat Purchases
Finished Creating Repeat Purchases
Started Building CBS and CBT for calibration period...
Started Building CBT...
...Completed Freq CBT
Started Building CBT...
...Completed Freq CBT
Started making calibration period CBS...
Finished building CBS.
Finished building CBS and CBT for calibration period.
Started building CBS and CBT for holdout period...
Started Building CBT...
...Completed Freq CBT
Started making holdout period CBS...
Finished building CBS.
Finished building CBS and CBT for holdout.
...Finished Making All CBS and CBT
head(tot_cbs$cal$cbs)
             x       t.x      T.cal
10033771954  5  4.142857  6.7142857
10052086383  6 26.000000 35.8571429
10053902583  0  0.000000  9.0000000
10062514898  0  0.000000  0.2857143
10072766674  0  0.000000 31.8571429
10075682226 32 49.571429 49.7142857
# Aislamos la matriz CBS de calibración (la que alimenta la MLE)
cal_cbs <- tot_cbs$cal$cbs

5.1 Diagnóstico de casos patológicos

Antes de estimar conviene contar los casos extremos. El Pareto/NBD los maneja sin problema, pero su distribución revela la naturaleza del negocio.

cat("Clientes one-shot (x = 0):       ", sum(cal_cbs[, "x"] == 0), "\n")
Clientes one-shot (x = 0):        672 
cat("Clientes con una repetición (x=1):", sum(cal_cbs[, "x"] == 1), "\n")
Clientes con una repetición (x=1): 377 
cat("Clientes sin recencia (t.x = 0): ", sum(cal_cbs[, "t.x"] == 0), "\n")
Clientes sin recencia (t.x = 0):  672 
cat("Clientes activos hasta el final: ", sum(cal_cbs[, "t.x"] == cal_cbs[, "T.cal"]), "\n")
Clientes activos hasta el final:  111 
summary(cal_cbs)
       x               t.x             T.cal      
 Min.   :  0.00   Min.   : 0.000   Min.   : 0.00  
 1st Qu.:  1.00   1st Qu.: 1.429   1st Qu.:23.29  
 Median :  4.00   Median :17.143   Median :40.00  
 Mean   : 10.07   Mean   :20.317   Mean   :35.08  
 3rd Qu.: 12.00   3rd Qu.:37.393   3rd Qu.:49.14  
 Max.   :152.00   Max.   :51.857   Max.   :51.86  
  • x = número de repeat transactions
  • t.x = tiempo entre primera y última compra (semanas)
  • T.cal = tiempo observado total (semanas)

6 Estimación de parámetros Pareto/NBD

El modelo Pareto/NBD asume:

  1. Mientras está activo, cada cliente compra según un Poisson con tasa \(\lambda\).
  2. Cada cliente “muere” en un tiempo aleatorio \(\tau\) distribuido exponencial con tasa \(\mu\).
  3. La heterogeneidad entre clientes se captura con dos distribuciones Gamma poblacionales:
    • \(\lambda \sim \text{Gamma}(r, \alpha)\) → forma \(r\), escala \(\alpha\)
    • \(\mu \sim \text{Gamma}(s, \beta)\) → forma \(s\), escala \(\beta\)

La función pnbd.EstimateParameters() maximiza el log-likelihood (fórmula cerrada de Fader & Hardie, 2005, ecuación A.1) usando L-BFGS-B.

# Valores iniciales recomendados por la literatura
# Orden: c(r, alpha, s, beta)
startingparams <- c(0.5, 2, 0.5, 10)
params_pnbd <- pnbd.EstimateParameters(
  cal.cbs   = cal_cbs,
  par.start = startingparams,
  method    = "L-BFGS-B",     # Optimizador con caja (params > 0)
  hardie    = TRUE,           # Aproximación numérica estable de 2F1
  hessian   = FALSE
)

names(params_pnbd) <- c("r", "alpha", "s", "beta")
print(params_pnbd)
         r      alpha          s       beta 
 0.8123021  2.2694395  0.9976608 54.3164215 

6.1 Sensibilidad a los valores iniciales

startingparams Parámetros estimados \((r, \alpha, s, \beta)\)
(1, 1, 1, 1) 0.8122, 2.2691, 0.9982, 54.3554
(0.5, 2, 0.5, 10) 0.8123, 2.2694, 0.9977, 54.3164

El optimizador converge al mismo óptimo desde distintos puntos de partida → solución robusta.

6.2 Interpretación de los parámetros

Proceso de compra \((\lambda \sim \text{Gamma}(r, \alpha))\)

  • \(r = 0.812 < 1\) indica alta heterogeneidad en la frecuencia de compra. La distribución Gamma con \(r<1\) es decreciente y de cola pesada: una “larga cola” de clientes esporádicos coexiste con un núcleo pequeño de compradores muy frecuentes.
  • Tasa media de transacción por cliente activo: \(\mathbb{E}[\lambda] = r/\alpha = 0.812/2.269 \approx 0.358\) compras/semana → una compra cada ~2.8 semanas.

Proceso de abandono \((\mu \sim \text{Gamma}(s, \beta))\)

  • \(s = 0.998\) y \(\beta = 54.32\)
  • Riesgo medio de abandono semanal: \(\mathbb{E}[\mu] = s/\beta \approx 0.0184\) → cada semana, en promedio, ~1.84% de probabilidad de que un cliente “muera”. Cartera muy persistente.
# Log-likelihood global del modelo sobre la calibración
log_lik <- pnbd.cbs.LL(params_pnbd, cal_cbs, hardie = TRUE)
cat("Log-Likelihood:", log_lik, "\n")
Log-Likelihood: -53418.31 

7 Bondad de ajuste en calibración

7.1 Frecuencia observada vs predicha

pnbd.PlotFrequencyInCalibration() compara el histograma observado de \(x\) con la frecuencia predicha por el modelo. Una buena alineación en las primeras barras es indicativo de ajuste correcto.

pnbd.PlotFrequencyInCalibration(params_pnbd, cal_cbs, 12)
               freq.0   freq.1  freq.2   freq.3   freq.4   freq.5  freq.6
n.x.actual   672.0000 377.0000 268.000 212.0000 164.0000 137.0000 107.000
n.x.expected 657.6256 372.5586 267.715 209.1692 170.7982 143.4025 122.756
               freq.7   freq.8   freq.9  freq.10  freq.11 freq.12+
n.x.actual    90.0000 92.00000 84.00000 74.00000 66.00000 851.0000
n.x.expected 106.6003 93.60329 82.92163 73.99256 66.42458 826.4325
Figure 1: Frecuencia observada vs. predicha en calibración (capped en 12).

Lectura. Coincidencia casi exacta en los niveles 0–5. Leve sobreestimación en niveles 6–7. Masa crítica en la categoría 12+ → presencia de un segmento de clientes ultra-frecuentes en la cola derecha.

7.2 Heterogeneidad de tasa de compra \(\lambda\)

Visualiza la densidad Gamma\((r, \alpha)\) que describe cómo se distribuye la tasa de compra entre clientes activos.

# pnbd.PlotTransactionRateHeterogeneity() calcula el límite del eje como
# qgamma(0.99, r, alpha). Con ciertos parámetros (r < 1 y alpha pequeño)
# ese cuantil devuelve Inf, rompiendo seq(). Replicamos el gráfico
# manualmente fijando un límite finito seguro.
r_par     <- params_pnbd["r"]
alpha_par <- params_pnbd["alpha"]

lim_lambda <- qgamma(0.99, shape = r_par, rate = alpha_par)
if (!is.finite(lim_lambda) || lim_lambda > 20) lim_lambda <- 5

x_vals <- seq(0, lim_lambda, length.out = 300)
y_vals <- dgamma(x_vals, shape = r_par, rate = alpha_par)

plot(x_vals, y_vals,
     type = "l", lwd = 2, col = "steelblue",
     main = "Heterogeneidad de la tasa de compra (λ)",
     xlab = "λ  (transacciones/semana por cliente activo)",
     ylab = "Densidad")
abline(v = r_par / alpha_par, lty = 2, col = "tomato", lwd = 1.5)
legend("topright",
       legend = sprintf("Media poblacional  r/α = %.4f", r_par / alpha_par),
       lty = 2, col = "tomato", bty = "n")
Figure 2: Densidad poblacional de la tasa de compra λ.

Lectura. La masa se concentra entre 0 y 0.5 transacciones/semana (mayoría del portafolio). Cola larga >1.5 → clientes muy fieles con frecuencia sostenida.

7.3 Heterogeneidad de tasa de abandono \(\mu\)

# Misma protección que el gráfico anterior: calculamos el límite del eje
# a partir del cuantil 0.99 de Gamma(s, beta) con fallback a 2.0 si no
# es finito (beta muy grande → cola extremadamente corta).
s_par    <- params_pnbd["s"]
beta_par <- params_pnbd["beta"]

lim_mu <- qgamma(0.99, shape = s_par, rate = beta_par)
if (!is.finite(lim_mu) || lim_mu > 10) lim_mu <- 2.0

x_mu   <- seq(0, lim_mu, length.out = 300)
y_mu   <- dgamma(x_mu, shape = s_par, rate = beta_par)

plot(x_mu, y_mu,
     type = "l", lwd = 2, col = "darkorange",
     main = "Heterogeneidad de la tasa de abandono (μ)",
     xlab = "μ  (riesgo de abandono por semana)",
     ylab = "Densidad")
abline(v = s_par / beta_par, lty = 2, col = "tomato", lwd = 1.5)
legend("topright",
       legend = sprintf("Media poblacional  s/β = %.4f", s_par / beta_par),
       lty = 2, col = "tomato", bty = "n")
Figure 3: Densidad poblacional de la tasa de abandono μ.

Lectura. Alta densidad cerca de 0 → para la mayoría de clientes el riesgo de abandono semanal es prácticamente nulo. La cartera B2B es estructuralmente “pegajosa”.


8 Evaluación out-of-time (holdout)

Periodo de evaluación: 2026-01-01 → 2026-02-10 (~6 semanas).

holdout_cbs <- tot_cbs$holdout$cbs

pnbd.ConditionalExpectedTransactions() aplica la fórmula (10) de Fader & Hardie (2005) — el número esperado de transacciones en \((T_{cal}, T_{cal} + T^*]\) condicionado al historial individual \((x, t_x, T_{cal})\):

\[\mathbb{E}[Y(T^*) \mid x, t_x, T_{cal}, r, \alpha, s, \beta]\]

pred_holdout <- pnbd.ConditionalExpectedTransactions(
  params = params_pnbd,
  T.star = holdout_cbs[, "T.star"],  # Vector con la duración del holdout por cliente
  x      = cal_cbs[, "x"],
  t.x    = cal_cbs[, "t.x"],
  T.cal  = cal_cbs[, "T.cal"],
  hardie = TRUE
)
# Comparación predicción vs realidad observada (x.star)
eval_df <- data.frame(
  actual    = holdout_cbs[, "x.star"],
  predicted = pred_holdout
)

MAE  <- mean(abs(eval_df$actual - eval_df$predicted))
RMSE <- sqrt(mean((eval_df$actual - eval_df$predicted)^2))

cat("Métricas de validación out-of-time:\n",
    "  MAE :", round(MAE, 4),  "\n",
    "  RMSE:", round(RMSE, 4), "\n")
Métricas de validación out-of-time:
   MAE : 0.5723 
   RMSE: 1.4074 

Resultado. MAE ≈ 0.561 transacciones · RMSE ≈ 1.373 transacciones sobre un horizonte de ~6 semanas. Magnitud razonable dada la dispersión natural de la cartera.

8.1 Validación visual: recencia vs compras condicionales

¿Predice el modelo bien según la recencia del cliente en calibración? Si el cliente compró hace poco, el modelo debe predecir más; si hace mucho, menos.

t_star_eval <- mean(tot_cbs$holdout$cbs[, "T.star"])

pnbd.PlotRecVsConditionalExpectedFrequency(
  params  = params_pnbd,
  cal.cbs = tot_cbs$cal$cbs,
  T.star  = t_star_eval,
  x.star  = tot_cbs$holdout$cbs[, "x.star"],
  hardie  = TRUE
)
                [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
actual     0.4521062  0.4644950  0.6333987  0.6594156  0.8844061  0.8415018
expected   0.1563928  0.1922064  0.2742227  0.3030486  0.3442958  0.4256127
bin.size 756.0000000 81.0000000 67.0000000 61.0000000 75.0000000 51.0000000
               [,7]       [,8]       [,9]      [,10]      [,11]      [,12]
actual    0.7256236  1.4154762  1.0813710  1.0872604  0.7063492  2.0406463
expected  0.2355051  0.5776986  0.3915018  0.5525568  0.4058405  0.7388115
bin.size 56.0000000 51.0000000 56.0000000 55.0000000 44.0000000 43.0000000
              [,13]      [,14]     [,15]      [,16]      [,17]      [,18]
actual    0.3687384  1.3637755  1.194898  0.4836735  0.6388889  0.3831633
expected  0.2730978  0.5019632  0.462265  0.3187675  0.4799785  0.2075676
bin.size 42.0000000 54.0000000 31.000000 31.0000000 31.0000000 47.0000000
              [,19]      [,20]      [,21]     [,22]      [,23]      [,24]
actual    1.0251701  0.3690476  0.7071429  0.927708  0.4997732  0.6690476
expected  0.3976071  0.2041291  0.2475606  0.354548  0.5366744  0.3670563
bin.size 41.0000000 33.0000000 39.0000000 52.000000 38.0000000 29.0000000
              [,25]      [,26]      [,27]      [,28]      [,29]      [,30]
actual    1.0551020  0.5662698  1.0753301  1.0071429  0.9377551  1.6343537
expected  0.3901467  0.2760031  0.6530374  0.3168905  0.4037465  0.5543917
bin.size 42.0000000 47.0000000 59.0000000 35.0000000 36.0000000 32.0000000
              [,31]      [,32]      [,33]      [,34]      [,35]      [,36]
actual    1.1761905  0.7693878  1.3528139  0.9571429  1.0869048  1.1343537
expected  0.5791559  0.2689758  0.4740898  0.4383074  0.4725609  0.3833125
bin.size 44.0000000 39.0000000 42.0000000 43.0000000 38.0000000 32.0000000
              [,37]      [,38]      [,39]      [,40]     [,41]      [,42]
actual    0.9285714  1.4443311  1.4258503  1.3718821  1.737245  1.5071429
expected  0.3377833  0.5356532  0.4479935  0.4990874  0.681382  0.5349001
bin.size 25.0000000 43.0000000 38.0000000 42.0000000 34.000000 27.0000000
              [,43]      [,44]      [,45]      [,46]      [,47]      [,48]
actual    1.7345238  2.1134354  1.7653061  1.6690476  1.7998557  2.0574108
expected  0.8242811  0.5709771  0.7081663  0.6562263  0.7493112  0.8460402
bin.size 32.0000000 48.0000000 43.0000000 44.0000000 58.0000000 93.0000000
              [,49]     [,50]     [,51]     [,52]
actual    2.2099747  3.768651  3.745114  6.124206
expected  0.9445365  1.370985  1.575530  2.170262
bin.size 78.0000000 70.000000 85.000000 81.000000
Figure 4: Compras esperadas vs reales en holdout, agrupadas por recencia en calibración.

9 Scoring de la cartera al cierre de calibración

9.1 P(alive): probabilidad de que el cliente esté activo “hoy”

Para cada cliente, dada su historia \((x, t_x, T_{cal})\), calculamos la probabilidad posterior de que aún esté vivo al momento \(T_{cal}\) (fórmula A.1 de Fader & Hardie 2005).

p_alives <- pnbd.PAlive(
  params = params_pnbd,
  x      = cal_cbs[, "x"],
  t.x    = cal_cbs[, "t.x"],
  T.cal  = cal_cbs[, "T.cal"],
  hardie = TRUE
)

9.2 Segmentación accionable

clientes_activos   <- sum(p_alives >= 0.7)
clientes_riesgo    <- sum(p_alives >= 0.3 & p_alives < 0.7)
clientes_inactivos <- sum(p_alives <  0.3)

total <- length(p_alives)
cat("Segmentación al", format(cal.end.date), "\n",
    "  Total cartera     :", total, "\n",
    "  Activos (≥ 0.7)   :", clientes_activos,
    sprintf("(%.1f%%)\n", 100 * clientes_activos / total),
    "  En riesgo (0.3–0.7):", clientes_riesgo,
    sprintf("(%.1f%%)\n", 100 * clientes_riesgo / total),
    "  Inactivos (< 0.3) :", clientes_inactivos,
    sprintf("(%.1f%%)\n", 100 * clientes_inactivos / total))
Segmentación al 2025-12-31 
   Total cartera     : 3194 
   Activos (≥ 0.7)   : 1683 (52.7%)
   En riesgo (0.3–0.7): 716 (22.4%)
   Inactivos (< 0.3) : 795 (24.9%)

Lectura del negocio. ~53% de cartera activa, ~22% en riesgo (target natural para campañas de retención), ~25% probablemente “muertos”.

plot(density(p_alives),
     main = "Probabilidad de Clientes Activos — HOY",
     xlab = "P(Alive)", ylab = "Densidad")
Figure 5: Distribución de P(alive) en la cartera al cierre de calibración.

10 Predicción en producción (corte: 2026-02-10)

Pipeline de re-calibración con todo el historial disponible para generar predicciones operativas a 1 semana.

# --- 1. Fecha de corte productivo ----------------------------------
fecha_actualizacion <- as.Date("2026-02-10")

# --- 2. Reconstrucción de CBS con historial completo ---------------
# Usamos T.cal = fecha_actualizacion para que el "ahora" del modelo
# coincida con el último dato disponible.
cbs_nuevo <- dc.ElogToCbsCbt(
  df_elog,
  per             = "week",
  T.cal           = fecha_actualizacion,
  merge.same.date = TRUE,
  statistic       = "freq"
)$cal$cbs
Started making CBS and CBT from the ELOG...
...Completed Freq CBT
Finished filtering out customers not in the birth period.
No dissipation requested.
Started merging same-date transactions...
... Finished merging same-date transactions.
Started Creating Repeat Purchases
Finished Creating Repeat Purchases
Started Building CBS and CBT for calibration period...
Started Building CBT...
...Completed Freq CBT
Started Building CBT...
...Completed Freq CBT
Started making calibration period CBS...
Finished building CBS.
Finished building CBS and CBT for calibration period.
Started building CBS and CBT for holdout period...
Started Building CBT...
...Completed Freq CBT
Started making holdout period CBS...
Finished building CBS.
Finished building CBS and CBT for holdout.
...Finished Making All CBS and CBT
# --- 3. Re-calibración de parámetros -------------------------------
# Reajustamos sobre la ventana completa para reflejar la dinámica
# más reciente de la cartera.
params_finales_prod <- pnbd.EstimateParameters(
  cal.cbs   = cbs_nuevo,
  par.start = c(0.5, 2, 0.5, 10),
  method    = "L-BFGS-B",
  hardie    = TRUE,
  hessian   = FALSE
)
names(params_finales_prod) <- c("r", "alpha", "s", "beta")

cat("Parámetros calibrados hasta", format(fecha_actualizacion), ":\n")
Parámetros calibrados hasta 2026-02-10 :
print(params_finales_prod)
         r      alpha          s       beta 
 0.8071938  2.2911833  0.7500506 37.6368083 
# --- 4. P(alive) productivo ----------------------------------------
p_alive_real_feb <- pnbd.PAlive(
  params = params_finales_prod,
  x      = cbs_nuevo[, "x"],
  t.x    = cbs_nuevo[, "t.x"],
  T.cal  = cbs_nuevo[, "T.cal"],
  hardie = TRUE
)

# --- 5. Compras esperadas en la próxima semana ---------------------
# T.star = 1 → horizonte de una semana hacia adelante
compras_esperadas_1sem <- pnbd.ConditionalExpectedTransactions(
  params = params_finales_prod,
  T.star = 1,
  x      = cbs_nuevo[, "x"],
  t.x    = cbs_nuevo[, "t.x"],
  T.cal  = cbs_nuevo[, "T.cal"],
  hardie = TRUE
)

# --- 6. Ensamblado intermedio --------------------------------------
df_final_febrero <- data.frame(
  customerId             = rownames(cbs_nuevo),
  prob_activo            = round(p_alive_real_feb, 4),
  compras_esperadas_1sem = round(compras_esperadas_1sem, 3)
)

df_final_febrero <- df_final_febrero[order(-df_final_febrero$compras_esperadas_1sem), ]
head(df_final_febrero)
      customerId prob_activo compras_esperadas_1sem
2824 20612097438      1.0000                  3.541
3343 20614888556      1.0000                  3.200
3174 20613784404      0.9973                  2.914
1177 20601187974      1.0000                  2.852
192  20133148532      1.0000                  2.733
893  20554731610      1.0000                  2.583

11 Modelo Gamma-Gamma para el ticket promedio

El modelo Gamma-Gamma (Fader, Hardie & Lee, 2005, “RFM and CLV: Using Iso-Value Curves for Customer Base Analysis”) modela el monto monetario por transacción de cada cliente. Supuestos clave:

  1. El ticket de cada transacción individual de un cliente es Gamma\((p, \nu)\).
  2. La tasa \(\nu\) es heterogénea entre clientes y se distribuye Gamma\((q, \gamma)\).
  3. Frecuencia y monto son independientes (supuesto verificable empíricamente).

El estimador depende solo de dos estadísticos por cliente:

  • \(x\) — número de transacciones repetidas
  • \(\bar m_x\) — ticket promedio de las transacciones repetidas (excluye la primera, que define el “nacimiento”)

11.1 Preparación de \(\bar m_x\)

# 1. Filtramos a la ventana de calibración (consistencia con el Pareto/NBD inicial)
df_cal <- df_elog %>% filter(date <= cal.end.date)

# 2. Para cada cliente repetidor, eliminamos la primera transacción
#    (la "birth") y promediamos el resto → m.x
df_mx <- df_cal %>%
  arrange(cust, date) %>%
  group_by(cust) %>%
  filter(n() > 1) %>%   # Solo repetidores (x ≥ 1)
  slice(-1) %>%          # Excluye la primera compra
  summarise(m.x = mean(sales), .groups = "drop")

# 3. Pegamos m.x a la matriz CBS de calibración
cal_cbs_df       <- as.data.frame(cal_cbs)
cal_cbs_df$cust  <- rownames(cal_cbs_df)

cal_cbs_final <- cal_cbs_df %>%
  left_join(df_mx, by = "cust") %>%
  mutate(m.x = ifelse(is.na(m.x), 0, m.x))

# 4. El Gamma-Gamma se ajusta solo sobre clientes con al menos 1 repetición
clientes_con_compras <- cal_cbs_final[cal_cbs_final$x > 0, ]

11.2 Estimación de \((p, q, \gamma)\)

# Valores iniciales (p, q, gamma)
starting_params_spend <- c(1, 1, 1)

m.x_vector <- clientes_con_compras$m.x
x_vector   <- clientes_con_compras$x

# spend.EstimateParameters() maximiza el likelihood del Gamma-Gamma
# (Fader, Hardie & Lee 2005, ecuación 5)
params_spend <- spend.EstimateParameters(
  m.x.vector = m.x_vector,
  x.vector   = x_vector,
  par.start  = starting_params_spend
)
names(params_spend) <- c("p", "q", "gamma")

cat("Parámetros Gamma-Gamma estimados:\n")
Parámetros Gamma-Gamma estimados:
print(params_spend)
           p            q        gamma 
   0.5943612    1.0767285 3582.0022600 

11.3 Validación visual del Gamma-Gamma

spend.plot.average.transaction.value() superpone la densidad implícita del modelo sobre el histograma observado del ticket promedio.

spend.plot.average.transaction.value(
  params     = params_spend,
  m.x.vector = m.x_vector,
  x.vector   = x_vector,
  xlab       = "Ticket Promedio (USD)",
  title      = "Validación: Gasto Real vs. Modelo Gamma-Gamma"
)
   [1] 1.852129e-04 2.287916e-04 1.850690e-04 1.461620e-04 7.374213e-05
   [6] 7.353236e-05 6.137545e-05 2.820232e-04 1.633276e-04 6.397975e-05
  [11] 2.117203e-04 1.782753e-04 1.988895e-04 1.540637e-04 4.842466e-04
  [16] 2.116941e-07 2.427970e-04 3.529647e-04 3.966211e-04 5.231180e-05
  [21] 3.561352e-04 9.812283e-05 3.447156e-04 2.654728e-04 1.359174e-04
  [26] 2.721194e-04 2.736961e-05 2.527886e-04 1.719070e-08 2.678469e-04
  [31] 2.382573e-04 8.174287e-06 1.473485e-04 1.942387e-04 1.297324e-04
  [36] 2.659179e-05 1.662194e-05 7.155626e-04 3.561352e-04 3.051787e-04
  [41] 3.650998e-04 1.875573e-04 8.365533e-05 1.572623e-04 1.735810e-04
  [46] 1.775936e-04 2.266417e-06 2.239847e-04 7.324264e-04 1.361369e-03
  [51] 3.334597e-04 3.057395e-04 3.617218e-04 2.866502e-04 3.066355e-04
  [56] 8.396666e-05 2.294735e-04 3.741675e-04 1.907010e-04 4.675779e-07
  [61] 2.937047e-04 1.952845e-04 2.661587e-04 1.854337e-07 4.623552e-04
  [66] 2.802982e-04 2.809778e-04 2.054937e-04 2.417624e-04 3.516956e-04
  [71] 1.042522e-04 6.317873e-04 1.375509e-05 2.119481e-04 1.711759e-04
  [76] 2.655290e-04 7.869431e-04 2.119594e-04 3.679398e-04 3.843003e-05
  [81] 8.293919e-05 2.396764e-04 4.035046e-05 6.571689e-05 4.385090e-05
  [86] 7.123280e-04 3.372279e-04 2.318911e-04 1.416517e-04 1.471434e-04
  [91] 1.988442e-04 8.782370e-05 2.827430e-04 1.632507e-05 6.097741e-05
  [96] 3.504358e-04 2.533376e-04 3.058681e-04 3.059130e-05 3.538826e-04
 [101] 3.966211e-04 2.776972e-04 1.103639e-05 1.068120e-04 3.296748e-05
 [106] 1.361405e-04 2.629636e-04 2.772454e-04 1.970872e-04 2.503689e-05
 [111] 2.270817e-07 2.082573e-06 6.239973e-06 2.098750e-04 3.215639e-05
 [116] 1.868493e-06 1.454743e-05 5.499626e-06 3.317939e-05 2.110674e-04
 [121] 3.212192e-05 1.893164e-05 2.029967e-04 2.417454e-04 2.178056e-05
 [126] 1.939501e-07 9.309420e-05 2.736253e-04 5.083131e-06 1.040852e-04
 [131] 7.099643e-05 9.630464e-05 2.366197e-04 1.774239e-05 5.029454e-05
 [136] 2.374447e-04 5.236586e-06 1.368485e-04 1.875414e-05 4.272248e-05
 [141] 3.233395e-05 1.312971e-04 5.012825e-09 4.564805e-05 3.118408e-04
 [146] 4.504499e-05 1.241925e-05 1.029020e-04 2.085905e-05 4.466917e-05
 [151] 2.678921e-04 1.385930e-04 2.036984e-04 3.080725e-05 6.339392e-05
 [156] 8.689760e-05 1.241925e-05 1.322391e-04 1.054280e-04 1.971681e-05
 [161] 7.568419e-05 7.327827e-06 4.888974e-05 1.942387e-04 1.241925e-05
 [166] 1.934220e-04 5.671263e-06 9.801515e-06 6.897975e-06 1.805628e-05
 [171] 2.318564e-04 4.271616e-05 6.945900e-06 1.563656e-04 2.884263e-06
 [176] 5.407135e-07 1.036027e-04 6.790939e-05 2.021307e-07 2.166033e-04
 [181] 1.786251e-04 7.346119e-05 2.190635e-06 2.649722e-04 1.188597e-04
 [186] 2.385978e-04 3.882920e-07 2.704843e-04 1.268901e-04 5.816096e-05
 [191] 1.496768e-04 2.283235e-05 1.020849e-04 2.280826e-04 1.640948e-05
 [196] 2.205753e-04 1.054280e-04 8.647386e-06 5.355459e-04 3.543062e-05
 [201] 2.718325e-05 2.792568e-06 1.238562e-04 2.797195e-04 1.293327e-04
 [206] 1.068995e-04 5.796899e-06 5.893899e-05 1.564709e-05 1.400767e-05
 [211] 2.687519e-04 9.323376e-05 1.942387e-04 5.273248e-06 3.517852e-04
 [216] 8.437408e-05 4.770915e-05 2.122240e-04 2.802366e-04 1.694304e-05
 [221] 2.626166e-04 8.148493e-06 2.502627e-04 1.595975e-04 2.022251e-04
 [226] 7.670298e-05 4.697201e-06 2.098978e-04 4.575955e-06 6.500380e-06
 [231] 8.149315e-05 4.000406e-05 1.249545e-04 2.370673e-05 9.301346e-06
 [236] 1.514870e-05 2.685868e-05 3.669976e-05 2.180028e-04 8.720370e-05
 [241] 2.188743e-06 1.883946e-04 1.166233e-04 6.950772e-08 5.083131e-06
 [246] 3.562084e-05 2.402392e-04 2.183345e-05 5.451267e-05 1.030690e-04
 [251] 1.924966e-04 1.686864e-05 2.490670e-04 1.241925e-05 4.980418e-05
 [256] 2.029967e-04 1.329828e-04 4.500646e-05 6.790939e-05 4.030745e-05
 [261] 4.770915e-05 1.467307e-04 3.960738e-06 1.695227e-04 1.595551e-04
 [266] 2.756417e-06 3.063207e-04 7.478567e-05 2.131788e-05 2.363757e-04
 [271] 7.997875e-05 1.799088e-04 6.476088e-06 2.461620e-04 8.193605e-05
 [276] 1.165583e-05 3.113425e-04 9.025709e-06 1.249474e-05 2.794139e-04
 [281] 3.050384e-07 3.588105e-05 3.045785e-07 3.094448e-04 4.247066e-05
 [286] 1.054280e-04 1.925271e-04 2.760779e-04 1.647366e-04 2.745521e-04
 [291] 3.543062e-05 3.728762e-06 2.652432e-04 3.532958e-05 5.246119e-06
 [296] 2.363363e-05 4.951442e-06 1.508815e-04 3.833192e-05 2.158443e-05
 [301] 2.701460e-04 2.563629e-05 2.718559e-04 2.676193e-04 2.800132e-04
 [306] 4.063514e-05 2.797713e-04 9.047410e-06 2.433618e-05 2.368066e-04
 [311] 4.445871e-05 8.566531e-05 1.353571e-04 1.774239e-05 1.480140e-05
 [316] 3.561352e-04 5.862831e-05 3.089188e-04 1.291983e-04 6.589197e-05
 [321] 2.682468e-04 5.876133e-05 8.251771e-05 7.360220e-05 4.434003e-05
 [326] 2.533221e-04 6.841199e-05 2.851544e-05 1.942387e-04 4.201178e-05
 [331] 8.845422e-05 2.950689e-05 3.014129e-05 1.859887e-04 1.566636e-04
 [336] 1.241925e-05 6.258859e-06 2.651005e-04 2.631221e-04 1.422365e-04
 [341] 9.031379e-06 3.140466e-05 1.748140e-05 3.313257e-06 1.393288e-05
 [346] 2.841435e-05 1.084997e-04 3.121073e-04 1.426011e-04 3.018259e-04
 [351] 1.368475e-04 6.415629e-05 4.336134e-05 3.781565e-05 1.378588e-04
 [356] 1.138647e-04 1.151080e-04 1.914097e-04 5.045880e-06 2.257237e-05
 [361] 5.067958e-05 2.091484e-04 1.570687e-04 2.115028e-05 4.298481e-06
 [366] 4.770915e-05 5.547671e-04 5.620471e-05 2.487476e-05 2.446699e-04
 [371] 2.442931e-05 2.268378e-04 2.393335e-05 1.574038e-04 3.123187e-05
 [376] 3.686285e-07 1.269590e-06 1.394354e-05 3.522760e-05 2.708642e-04
 [381] 3.936082e-05 2.843932e-04 2.019053e-04 2.032597e-04 2.278482e-05
 [386] 2.517346e-04 2.743527e-04 8.325608e-05 1.393191e-04 1.296834e-06
 [391] 2.622512e-05 3.146756e-05 7.665205e-05 1.338827e-04 2.639901e-06
 [396] 3.723208e-05 1.942387e-04 3.881712e-05 4.770915e-05 1.815815e-05
 [401] 1.698791e-04 5.104093e-05 1.991417e-04 1.722722e-04 1.970872e-04
 [406] 5.962155e-05 1.376357e-06 1.343741e-05 4.272248e-05 3.483415e-06
 [411] 2.038044e-05 2.320703e-04 3.407015e-05 5.033611e-06 5.033582e-06
 [416] 7.757990e-05 2.416746e-05 2.117881e-04 2.710345e-04 1.430228e-05
 [421] 6.386703e-05 1.241925e-05 1.305249e-06 2.736175e-04 2.055488e-05
 [426] 2.152883e-04 1.942387e-04 7.063387e-05 2.178056e-05 3.437307e-05
 [431] 5.197641e-05 6.637336e-07 4.304339e-06 1.338763e-05 6.790939e-05
 [436] 3.367796e-06 3.068568e-05 2.247396e-05 6.825441e-05 1.827717e-06
 [441] 2.568992e-04 1.902410e-05 8.297495e-06 2.335596e-04 1.648843e-04
 [446] 2.711588e-04 2.752090e-05 2.395991e-04 2.393591e-04 1.183164e-04
 [451] 1.738280e-04 6.639361e-05 5.564336e-05 1.831541e-04 5.218670e-05
 [456] 4.561909e-05 7.567068e-05 2.321469e-04 9.413671e-06 4.272248e-05
 [461] 2.576732e-06 1.527310e-05 2.043562e-05 2.648733e-04 1.557502e-04
 [466] 1.692423e-04 2.038044e-05 1.305249e-06 1.439108e-05 2.363757e-04
 [471] 2.491316e-04 6.589327e-05 5.370293e-05 3.206406e-05 7.221764e-05
 [476] 3.118554e-05 7.653483e-05 3.204721e-06 8.762758e-05 5.810291e-06
 [481] 3.543062e-05 7.407127e-06 3.131142e-05 5.272933e-06 1.708654e-05
 [486] 3.070848e-05 2.000830e-05 2.025333e-05 4.423030e-05 3.622751e-06
 [491] 1.570063e-04 2.373584e-05 1.937286e-05 5.478309e-05 7.454803e-05
 [496] 1.978565e-04 2.690651e-04 2.832830e-04 2.781879e-04 5.047563e-05
 [501] 4.049803e-05 4.336142e-05 6.793064e-05 2.731540e-04 1.499977e-04
 [506] 4.589427e-05 1.316716e-04 6.401482e-06 3.126375e-06 2.851506e-04
 [511] 2.405302e-04 1.527793e-05 2.535740e-04 2.902956e-04 1.170279e-04
 [516] 2.603421e-04 1.540899e-04 3.622635e-04 2.730118e-04 9.497680e-05
 [521] 1.584181e-05 6.396255e-05 6.401721e-05 1.054280e-04 1.899616e-04
 [526] 2.918245e-06 2.063310e-04 2.019057e-04 1.385930e-04 1.738187e-04
 [531] 9.301191e-06 1.194865e-04 2.666121e-04 7.862381e-06 1.045182e-05
 [536] 2.762512e-04 1.551219e-04 1.746438e-04 1.738798e-04 1.387981e-04
 [541] 2.325386e-06 7.548349e-05 4.859557e-05 3.121073e-04 1.054280e-04
 [546] 5.924464e-05 1.970325e-06 1.740466e-08 3.137742e-05 1.999896e-05
 [551] 2.798248e-05 8.451011e-06 1.092120e-04 9.672571e-07 2.604886e-04
 [556] 7.525170e-06 1.946499e-04 7.801116e-05 1.238431e-04 2.471217e-04
 [561] 5.775389e-05 2.154660e-04 1.740840e-04 2.256734e-04 6.798613e-05
 [566] 1.710332e-05 7.474869e-05 1.721559e-05 1.739622e-04 1.428530e-04
 [571] 2.660345e-04 3.121073e-04 3.278340e-05 6.252059e-06 5.002299e-06
 [576] 1.133857e-06 1.663442e-05 2.581347e-05 1.621734e-05 1.413746e-04
 [581] 2.671910e-05 3.758853e-04 1.401661e-05 2.802896e-06 8.528194e-05
 [586] 1.026148e-04 2.563808e-04 8.282794e-06 1.273699e-04 3.121495e-05
 [591] 1.385930e-04 7.679651e-05 2.780931e-04 2.785308e-04 1.772689e-04
 [596] 1.914097e-04 5.280428e-05 1.605754e-04 2.783999e-04 1.866727e-04
 [601] 1.512776e-04 6.207108e-05 5.898943e-05 2.405738e-04 1.429757e-04
 [606] 2.740035e-04 3.239247e-05 7.997873e-05 7.562307e-05 2.536686e-05
 [611] 1.487952e-04 1.623389e-05 7.976716e-05 2.823772e-04 5.815188e-05
 [616] 2.532229e-04 1.830005e-05 2.696728e-04 2.641762e-04 5.820779e-06
 [621] 5.141891e-04 1.454743e-05 7.468807e-06 1.134405e-04 5.876133e-05
 [626] 1.674818e-05 3.358525e-05 1.560551e-04 2.441207e-04 7.662086e-05
 [631] 1.495905e-06 2.112809e-04 2.298921e-04 3.412285e-06 1.773907e-04
 [636] 2.401882e-04 9.198263e-05 8.530219e-05 6.762632e-06 2.099587e-04
 [641] 1.372519e-04 2.329449e-04 2.536686e-05 2.656898e-04 4.377844e-05
 [646] 1.402037e-04 7.889225e-05 7.128633e-09 1.169492e-04 2.741666e-04
 [651] 5.106317e-08 3.343131e-05 4.422730e-05 7.353236e-05 2.251031e-04
 [656] 6.772841e-05 2.769324e-04 1.381874e-04 2.492983e-04 2.249486e-04
 [661] 4.743542e-05 2.619495e-04 7.696477e-05 1.942387e-04 5.241121e-05
 [666] 1.181736e-04 4.473886e-05 1.633451e-04 8.264647e-05 4.727518e-05
 [671] 2.452946e-04 1.201528e-04 3.503742e-07 1.752184e-06 3.543062e-05
 [676] 2.779747e-04 3.689272e-05 2.510911e-04 1.075123e-04 8.052257e-07
 [681] 2.717614e-06 1.322525e-05 3.107630e-05 2.729885e-04 8.965802e-05
 [686] 1.306401e-04 4.326698e-05 2.128567e-04 1.533631e-04 6.862976e-05
 [691] 1.549623e-06 3.469504e-04 3.927016e-05 3.684964e-05 1.844833e-04
 [696] 1.241925e-05 2.988926e-04 1.082934e-04 1.179687e-04 1.058493e-04
 [701] 2.068896e-04 1.737497e-04 6.802041e-05 7.874582e-05 2.893380e-04
 [706] 3.801651e-05 1.251496e-05 2.880917e-04 1.371942e-04 1.942387e-04
 [711] 1.011226e-04 3.067750e-04 2.556494e-04 2.178173e-04 1.601237e-04
 [716] 4.606336e-05 4.345916e-05 2.155366e-04 8.344231e-05 9.168117e-06
 [721] 2.128581e-05 6.762273e-05 9.825219e-05 2.478509e-04 9.163515e-06
 [726] 5.020413e-06 1.727666e-04 3.525911e-04 1.139534e-04 8.285076e-06
 [731] 1.814413e-04 2.639901e-06 1.097087e-05 1.340281e-05 2.783587e-04
 [736] 9.458485e-07 1.081990e-04 1.312940e-05 1.865144e-05 8.305452e-05
 [741] 3.587598e-06 1.573674e-04 2.695574e-04 7.568994e-05 9.704711e-05
 [746] 8.860098e-06 2.708618e-04 7.603737e-06 1.087836e-04 1.642169e-05
 [751] 4.150590e-06 2.788967e-04 6.560152e-06 1.049669e-04 1.639544e-05
 [756] 1.728632e-05 3.526317e-04 1.082560e-06 2.978778e-05 2.961794e-04
 [761] 6.790939e-05 8.247085e-05 8.132481e-05 1.249889e-04 1.709617e-06
 [766] 1.700182e-04 1.868564e-04 1.732793e-05 1.215684e-05 6.458761e-06
 [771] 2.800334e-04 6.531569e-05 1.492940e-04 1.020461e-05 1.883909e-05
 [776] 7.187986e-05 6.555858e-04 4.403154e-06 1.321123e-04 1.613323e-05
 [781] 2.997126e-06 2.701913e-04 4.756934e-05 1.458306e-04 1.140493e-05
 [786] 1.241925e-05 5.976983e-06 6.790939e-05 5.056780e-05 1.670794e-04
 [791] 1.678431e-04 1.289810e-05 2.816537e-04 2.488782e-04 2.029967e-04
 [796] 2.917095e-04 2.401143e-05 2.685306e-04 2.896008e-04 1.008216e-04
 [801] 4.276248e-05 2.134800e-05 1.573086e-05 2.730797e-07 7.385623e-07
 [806] 1.194485e-05 1.179931e-05 2.046437e-05 3.085220e-05 5.013059e-05
 [811] 2.677417e-06 9.961093e-05 2.804064e-06 1.104462e-05 7.314331e-05
 [816] 2.241992e-05 2.753669e-04 2.963638e-04 2.932566e-06 2.814480e-04
 [821] 2.551701e-04 2.542612e-04 1.806013e-05 2.745468e-04 5.141891e-04
 [826] 5.864747e-05 2.533472e-04 4.701950e-05 2.132635e-04 3.025098e-04
 [831] 3.469889e-05 1.285858e-04 1.160966e-04 6.780190e-05 2.995305e-05
 [836] 5.120704e-06 3.401042e-06 2.375497e-04 2.268540e-04 2.539709e-04
 [841] 2.607015e-04 2.343050e-04 1.640392e-04 2.859244e-04 2.479776e-04
 [846] 2.781702e-04 1.054280e-04 2.215306e-04 1.581559e-06 1.034495e-04
 [851] 6.844107e-05 2.063341e-04 1.559224e-04 1.942387e-04 2.558662e-05
 [856] 3.480897e-05 6.249835e-06 9.990998e-06 2.125008e-04 5.594561e-05
 [861] 2.564652e-07 4.967651e-05 1.068941e-05 1.419754e-05 1.031286e-04
 [866] 7.080480e-05 5.085790e-07 7.152822e-05 1.083738e-05 3.543062e-05
 [871] 1.883333e-04 1.844798e-04 6.983618e-05 5.164187e-05 2.871314e-04
 [876] 2.033420e-05 1.093200e-04 5.732633e-05 3.121073e-04 3.263380e-04
 [881] 1.514336e-04 4.354455e-05 8.876208e-05 9.162529e-05 1.693747e-04
 [886] 5.568927e-06 7.204736e-05 1.042147e-05 9.533097e-05 1.677187e-04
 [891] 1.896288e-05 2.676343e-05 8.493426e-06 9.581794e-05 1.518038e-05
 [896] 2.378794e-05 1.180795e-04 1.134063e-04 2.043618e-07 2.716541e-04
 [901] 1.235032e-04 9.727052e-05 2.159812e-05 2.560630e-04 1.198699e-03
 [906] 7.972610e-05 5.837414e-05 1.241925e-05 2.116050e-04 4.529510e-05
 [911] 1.226004e-04 7.048807e-06 1.860287e-06 2.743638e-04 2.761336e-04
 [916] 1.310764e-04 7.192325e-05 1.033203e-04 1.185402e-05 1.220882e-04
 [921] 1.311345e-05 1.417769e-04 1.847121e-04 3.150337e-05 9.997067e-05
 [926] 1.916400e-04 1.148302e-06 3.247579e-05 1.907695e-04 2.856316e-05
 [931] 9.113812e-06 8.659433e-05 6.064464e-05 1.374099e-04 1.661776e-04
 [936] 3.215645e-06 6.310720e-05 3.728762e-06 1.532199e-04 3.919562e-05
 [941] 1.565620e-04 7.585015e-06 2.356747e-04 4.048896e-05 3.346320e-05
 [946] 2.282319e-06 1.627882e-04 2.355062e-05 8.504025e-05 8.462379e-05
 [951] 4.647728e-05 2.779960e-04 5.221386e-06 1.524246e-05 1.744395e-04
 [956] 4.955097e-08 2.880735e-04 2.204764e-04 6.592853e-05 2.049873e-04
 [961] 1.232380e-04 3.182867e-05 1.469625e-04 2.385176e-04 8.344231e-05
 [966] 2.792204e-04 2.561668e-04 7.126177e-05 4.592685e-05 2.579549e-04
 [971] 6.790939e-05 1.942387e-04 2.785501e-04 2.232409e-04 1.080706e-04
 [976] 7.664511e-05 2.854381e-04 2.249770e-05 2.619054e-04 1.771771e-05
 [981] 9.243428e-05 9.591989e-05 1.568989e-04 4.235240e-06 4.208200e-06
 [986] 2.125977e-04 2.318564e-04 2.712470e-04 4.746030e-06 2.221406e-04
 [991] 5.283316e-05 1.277217e-04 7.820740e-06 1.883909e-05 1.060523e-04
 [996] 3.510529e-05 2.474722e-04 4.512088e-06 2.621753e-04 2.792379e-04
[1001] 1.054280e-04 2.727447e-04 1.615430e-04 2.639901e-06 8.333444e-05
[1006] 2.289181e-04 4.267672e-05 8.345486e-04 7.236194e-06 4.087940e-05
[1011] 2.008959e-04 1.270648e-06 3.164607e-05 2.387743e-04 5.808185e-05
[1016] 2.905904e-05 4.515870e-05 2.194792e-04 5.876133e-05 2.367398e-04
[1021] 1.042954e-05 6.388798e-06 3.590655e-05 3.465283e-06 5.686345e-05
[1026] 1.317472e-04 2.153088e-04 1.594129e-04 5.993055e-05 2.801086e-04
[1031] 1.097705e-04 2.039763e-04 2.741532e-05 1.047692e-05 1.708258e-04
[1036] 1.942387e-04 2.537205e-04 3.131142e-05 6.544123e-06 2.809096e-04
[1041] 4.410695e-05 1.053661e-04 7.314331e-05 5.793432e-06 1.385930e-04
[1046] 2.589806e-04 2.465309e-04 8.065808e-07 2.165097e-04 2.501815e-04
[1051] 4.663300e-05 5.256101e-05 3.006692e-04 5.354463e-05 2.731282e-04
[1056] 2.578041e-04 2.752894e-04 1.475278e-04 2.712816e-04 5.848758e-05
[1061] 9.880995e-05 8.810572e-06 1.132289e-04 1.385930e-04 2.613997e-04
[1066] 5.250054e-05 2.982687e-05 3.133435e-05 5.003148e-05 1.724933e-04
[1071] 5.458796e-06 2.460683e-05 6.222756e-05 2.764286e-04 2.211355e-04
[1076] 1.265659e-04 1.658351e-04 9.920996e-06 1.012119e-04 6.404681e-05
[1081] 2.348194e-04 1.193460e-05 2.805585e-04 3.561352e-04 4.818831e-06
[1086] 2.289619e-04 1.228250e-04 5.656778e-05 3.571598e-04 3.543062e-05
[1091] 8.036909e-05 2.469649e-04 2.028902e-04 1.061648e-04 2.548498e-04
[1096] 3.758875e-04 1.775455e-04 4.315615e-05 1.447162e-04 3.021098e-05
[1101] 1.191089e-04 2.770392e-04 2.321718e-05 2.719138e-04 1.533227e-05
[1106] 2.899815e-05 1.385930e-04 9.823580e-05 4.285705e-07 6.573461e-05
[1111] 1.306862e-04 2.998942e-04 8.168033e-05 1.752233e-05 4.931797e-05
[1116] 8.221083e-05 2.137974e-04 1.054280e-04 1.918942e-04 2.051470e-04
[1121] 1.058032e-04 7.381386e-06 5.826112e-05 2.484589e-06 1.650395e-04
[1126] 1.581804e-04 2.176415e-05 1.030220e-05 1.802505e-04 2.446051e-04
[1131] 1.597644e-04 9.055468e-05 1.416889e-04 2.389588e-04 4.417194e-04
[1136] 2.567704e-06 6.588221e-06 2.775808e-04 1.769778e-04 2.682271e-04
[1141] 2.725808e-04 1.262494e-05 4.242448e-05 1.146173e-04 4.175931e-04
[1146] 1.721004e-04 1.637042e-07 1.458105e-04 8.848486e-05 2.597308e-04
[1151] 6.557766e-06 4.133356e-05 2.500560e-04 1.241925e-05 1.346816e-04
[1156] 2.988926e-04 3.622635e-04 2.761103e-04 1.485488e-04 1.502911e-05
[1161] 1.233145e-05 1.135013e-04 3.702639e-05 1.249984e-04 8.206786e-05
[1166] 5.975340e-05 9.484768e-05 2.687724e-04 3.430967e-04 1.161276e-04
[1171] 4.633741e-06 8.964604e-05 5.691110e-05 1.222123e-04 1.337504e-04
[1176] 2.397367e-04 7.123280e-04 1.174637e-04 8.208399e-06 3.330886e-05
[1181] 1.346241e-04 2.956489e-04 3.100924e-05 2.973722e-05 3.749792e-04
[1186] 4.212410e-07 2.697923e-04 1.328339e-04 1.276648e-05 1.550695e-05
[1191] 2.790603e-04 2.753057e-04 2.956493e-05 4.027929e-05 1.362505e-04
[1196] 5.644640e-05 1.134874e-04 4.718500e-05 4.011230e-05 2.244728e-06
[1201] 3.375478e-05 5.042624e-05 1.776637e-04 1.996626e-06 1.580255e-05
[1206] 2.149188e-04 6.032021e-06 1.210378e-05 1.814762e-06 1.850241e-04
[1211] 2.039976e-04 4.700427e-05 2.540006e-04 1.774239e-05 2.756467e-04
[1216] 1.844912e-04 2.215381e-04 1.810655e-04 2.359956e-05 2.762256e-04
[1221] 7.595565e-05 1.358965e-05 6.080270e-05 2.419724e-06 5.875959e-05
[1226] 1.612529e-04 1.579489e-04 3.455266e-05 1.661650e-04 1.510453e-04
[1231] 1.336605e-05 1.463662e-04 2.878724e-04 2.432758e-04 3.781565e-05
[1236] 6.851705e-05 2.750231e-05 1.257936e-05 9.374660e-05 4.580007e-05
[1241] 1.815662e-08 2.641488e-05 2.484290e-05 1.774239e-05 2.673192e-04
[1246] 1.135626e-04 2.291060e-04 2.784196e-05 2.096733e-05 1.135239e-04
[1251] 5.777109e-06 5.533717e-05 2.026344e-04 3.456752e-05 1.241925e-05
[1256] 1.486406e-05 3.094017e-04 2.359136e-04 4.256368e-06 1.222996e-04
[1261] 2.564317e-04 9.960501e-05 2.568115e-05 7.630007e-05 3.757630e-04
[1266] 1.241925e-05 3.214880e-05 1.486406e-05 1.908889e-04 1.152489e-04
[1271] 5.383064e-06 1.812161e-06 1.857163e-04 5.210485e-05 1.071239e-04
[1276] 4.606336e-05 7.260168e-05 7.377630e-07 1.419525e-04 1.310428e-04
[1281] 2.200614e-05 2.120737e-05 3.672785e-05 1.184697e-04 3.248134e-04
[1286] 1.054280e-04 1.994859e-04 1.395170e-05 1.425155e-04 3.951739e-05
[1291] 1.865689e-04 9.012186e-05 2.174071e-04 2.816721e-04 9.168782e-05
[1296] 8.177558e-06 2.281413e-04 2.662839e-04 1.143946e-07 2.259973e-04
[1301] 1.466366e-04 1.962435e-04 7.123280e-04 4.422730e-05 3.304144e-05
[1306] 2.126626e-04 1.115797e-05 1.500329e-05 5.006529e-05 1.059261e-05
[1311] 8.683728e-05 5.087599e-05 7.661215e-05 2.395029e-04 2.963847e-05
[1316] 1.473802e-04 1.346241e-04 7.714387e-05 1.998673e-07 4.638667e-05
[1321] 1.091150e-06 2.533162e-05 1.478525e-04 1.008629e-06 2.176035e-04
[1326] 9.101981e-06 3.713769e-06 1.833069e-04 2.407257e-04 1.018360e-05
[1331] 2.305412e-05 2.221680e-05 2.920519e-04 1.399934e-04 9.484563e-05
[1336] 2.573864e-04 7.703576e-05 2.924996e-05 4.407303e-05 1.737677e-05
[1341] 5.125551e-05 2.688113e-04 1.999896e-05 2.768740e-04 1.050898e-04
[1346] 5.056947e-05 3.871734e-06 2.996052e-05 1.883286e-04 2.527848e-04
[1351] 4.410321e-06 4.363273e-05 3.706723e-06 1.756716e-04 7.439943e-07
[1356] 3.869760e-04 9.127725e-05 1.752184e-06 6.875253e-06 1.992462e-04
[1361] 6.559867e-05 9.650901e-05 1.672279e-04 2.876501e-04 7.721051e-06
[1366] 6.960586e-05 2.271914e-04 4.456332e-05 2.677493e-04 2.767507e-04
[1371] 9.801017e-05 4.093057e-06 1.012553e-05 2.573071e-05 2.972162e-04
[1376] 1.241925e-05 2.276329e-04 1.966747e-04 1.428443e-04 8.780397e-06
[1381] 1.372180e-04 5.141891e-04 7.736364e-05 2.267232e-05 1.323122e-04
[1386] 1.903535e-04 3.764312e-04 1.176915e-04 3.057611e-04 5.273739e-07
[1391] 2.005865e-04 2.206347e-04 1.241925e-05 1.628073e-04 1.263457e-04
[1396] 4.927374e-06 6.781926e-05 1.898196e-04 5.179242e-05 4.044377e-06
[1401] 1.091563e-04 9.858706e-06 1.777327e-04 2.709774e-04 2.772907e-08
[1406] 2.498446e-04 2.174295e-05 9.437088e-05 1.707556e-04 2.508823e-04
[1411] 1.220479e-04 8.184224e-05 1.162858e-04 1.928091e-04 1.622136e-04
[1416] 1.615735e-04 3.703151e-05 1.970420e-04 4.160117e-05 4.203038e-05
[1421] 2.972162e-04 1.346325e-04 2.156428e-05 1.210802e-04 2.400935e-04
[1426] 2.486928e-04 2.492422e-04 2.797083e-04 2.777282e-04 3.240095e-04
[1431] 2.355097e-05 1.971228e-04 6.804960e-05 1.546987e-04 2.936021e-04
[1436] 2.748198e-04 7.928194e-05 1.220621e-05 2.584419e-04 4.520678e-05
[1441] 7.016418e-05 8.102238e-05 1.167582e-04 7.645848e-05 2.432830e-04
[1446] 2.665689e-04 1.938289e-04 3.121073e-04 2.667968e-04 8.232839e-05
[1451] 1.602050e-04 6.984108e-06 8.721871e-05 2.171194e-05 8.167672e-05
[1456] 2.116056e-04 3.924429e-05 1.303070e-04 1.796982e-06 3.084766e-04
[1461] 2.533570e-05 1.688833e-05 2.682074e-04 2.792428e-04 4.127642e-04
[1466] 5.474788e-06 2.042478e-04 2.088989e-04 1.349003e-04 3.115362e-05
[1471] 6.383652e-05 4.282041e-05 9.446375e-05 1.405911e-04 2.600155e-04
[1476] 2.320668e-04 2.304080e-04 1.779887e-06 1.206076e-04 2.790176e-04
[1481] 2.778091e-04 9.698999e-06 1.638165e-04 9.389209e-05 2.285242e-04
[1486] 4.837876e-06 2.794774e-04 2.732650e-04 4.087508e-05 1.621816e-04
[1491] 4.969637e-05 1.244518e-04 1.801376e-04 2.420790e-04 9.928320e-05
[1496] 1.452700e-04 1.398859e-04 1.929310e-04 7.391063e-07 3.699658e-07
[1501] 2.160416e-04 5.109605e-05 3.918720e-05 1.560235e-04 1.756716e-04
[1506] 3.239247e-05 1.125415e-04 1.074848e-04 1.731966e-05 2.626132e-04
[1511] 1.194486e-04 3.575673e-04 2.553430e-04 4.483363e-05 1.395796e-04
[1516] 1.422688e-05 2.714779e-04 7.308019e-05 2.129103e-04 2.395846e-04
[1521] 9.177865e-05 2.237565e-05 1.488255e-04 6.271659e-05 1.145509e-04
[1526] 1.953905e-04 1.033267e-04 2.141631e-06 4.175931e-04 7.101519e-05
[1531] 2.776596e-04 2.552880e-04 5.138710e-06 1.246974e-04 1.828706e-04
[1536] 2.776865e-04 7.123280e-04 6.272638e-05 3.100924e-05 1.640653e-05
[1541] 4.952002e-06 3.728762e-06 7.400788e-05 4.176862e-06 2.131461e-04
[1546] 3.541287e-05 1.549210e-05 1.550965e-05 3.543062e-05 1.846240e-04
[1551] 1.037597e-06 2.123116e-05 2.019225e-05 8.497221e-06 1.337824e-04
[1556] 1.784472e-04 1.702994e-04 6.120061e-05 1.989340e-05 6.027869e-05
[1561] 1.639441e-04 1.146989e-04 1.083932e-05 1.001719e-05 9.728920e-05
[1566] 5.110037e-05 5.568231e-05 2.742146e-04 3.698752e-05 6.315276e-06
[1571] 1.087442e-04 2.532918e-05 2.876213e-04 3.843632e-05 2.772708e-04
[1576] 5.141891e-04 3.607120e-04 2.469065e-05 3.076418e-04 2.913605e-05
[1581] 3.543062e-05 2.521161e-04 1.767806e-04 2.782710e-04 1.707234e-05
[1586] 3.293145e-04 1.401766e-04 2.397221e-04 4.784596e-05 2.178056e-05
[1591] 1.301764e-06 3.517627e-05 5.973692e-07 7.895926e-05 2.310448e-04
[1596] 5.246039e-05 3.801377e-05 2.230096e-04 2.188124e-04 1.756716e-04
[1601] 1.756724e-04 5.370499e-05 2.596742e-04 8.563485e-06 7.741036e-05
[1606] 1.430137e-04 4.198443e-05 2.289712e-04 7.042219e-06 2.682575e-04
[1611] 4.389756e-05 2.556353e-05 4.272513e-05 2.248351e-05 1.960370e-04
[1616] 6.153127e-05 1.093152e-06 3.092054e-04 2.331805e-05 1.307057e-04
[1621] 1.032557e-04 3.051242e-08 1.691283e-04 4.054836e-05 2.871118e-04
[1626] 5.393547e-05 1.009650e-04 1.258563e-04 1.568989e-04 2.622197e-05
[1631] 8.551090e-05 4.053923e-05 3.486071e-05 1.935237e-04 1.553786e-04
[1636] 2.371078e-04 1.707247e-04 1.306862e-04 5.324317e-08 4.732484e-04
[1641] 1.567527e-04 2.508960e-04 1.508024e-04 1.936590e-04 2.595774e-04
[1646] 3.368560e-06 2.808188e-04 6.940577e-05 1.617580e-05 9.239341e-06
[1651] 1.369073e-04 2.006132e-04 1.483156e-04 1.395170e-05 2.018625e-04
[1656] 8.317945e-06 5.725792e-05 1.942387e-04 1.418891e-05 5.644640e-05
[1661] 2.734094e-04 2.442678e-04 1.309944e-04 7.806944e-06 1.407873e-05
[1666] 7.801121e-07 2.780793e-04 3.383473e-05 2.732782e-04 2.782210e-04
[1671] 1.354940e-04 1.725085e-04 4.230158e-05 2.014606e-04 4.093057e-06
[1676] 2.291408e-04 5.042944e-05 6.654508e-05 1.778744e-05 3.399363e-05
[1681] 1.960604e-04 6.294262e-05 2.485092e-04 2.247896e-04 7.904256e-05
[1686] 2.791249e-04 4.548264e-04 9.850256e-06 2.516518e-04 3.955329e-06
[1691] 1.395170e-05 6.717715e-05 2.240603e-04 1.215429e-04 7.256704e-05
[1696] 7.728121e-06 2.023539e-05 8.960810e-05 3.555378e-05 2.754997e-04
[1701] 9.988694e-05 2.030293e-04 1.083526e-05 4.319820e-04 1.474617e-04
[1706] 4.272248e-05 1.593023e-04 1.216644e-04 7.177928e-05 2.790879e-04
[1711] 1.937823e-06 2.332236e-04 3.385723e-05 2.789853e-04 2.923352e-04
[1716] 2.047988e-04 8.103556e-06 2.761614e-05 3.065029e-04 1.246441e-04
[1721] 4.849406e-05 2.280869e-04 1.841533e-05 7.119944e-05 1.187152e-03
[1726] 1.947891e-04 2.868210e-04 2.790490e-04 6.271356e-05 6.228991e-06
[1731] 8.419138e-05 4.175931e-04 7.233172e-06 2.205744e-04 4.609398e-05
[1736] 1.719071e-05 3.839805e-04 6.943043e-05 1.931272e-04 2.533355e-04
[1741] 1.910566e-04 6.790939e-05 1.801380e-04 2.178056e-05 3.728762e-06
[1746] 2.877433e-05 1.303704e-06 1.946675e-05 3.199337e-04 8.914815e-06
[1751] 8.548392e-06 1.744174e-04 8.020820e-05 4.707523e-05 5.845466e-05
[1756] 2.604312e-04 1.220479e-04 2.486897e-04 1.942387e-04 4.629522e-05
[1761] 5.267873e-05 1.065574e-05 5.137816e-05 2.517614e-04 4.945261e-06
[1766] 2.736961e-05 1.621816e-04 3.715059e-05 2.782587e-04 7.355400e-05
[1771] 3.501448e-05 2.037108e-05 2.827337e-04 2.550062e-04 1.110347e-05
[1776] 2.760344e-04 1.571137e-04 2.719747e-04 3.728762e-06 8.139006e-05
[1781] 1.136476e-04 2.566846e-04 5.141891e-04 3.455808e-05 1.157956e-05
[1786] 4.963537e-05 2.041477e-04 2.644942e-04 1.410738e-04 1.982882e-04
[1791] 2.585805e-04 2.527262e-04 2.739485e-04 1.159920e-04 5.497008e-05
[1796] 1.943884e-04 7.049581e-04 2.437321e-04 2.217945e-07 1.065914e-05
[1801] 1.530273e-04 6.702574e-08 1.675928e-04 5.061366e-05 2.045597e-04
[1806] 1.987333e-05 3.047394e-04 2.678790e-04 3.410584e-06 1.392094e-04
[1811] 9.666085e-05 2.663240e-04 3.141660e-05 6.742216e-05 3.697399e-04
[1816] 9.644163e-05 2.738275e-04 1.774239e-05 2.235103e-05 3.034578e-06
[1821] 2.192066e-04 2.711833e-04 3.199860e-06 3.824481e-06 1.116491e-04
[1826] 1.917973e-05 3.091568e-05 2.313059e-04 2.657845e-04 4.154497e-05
[1831] 2.485166e-04 1.665137e-04 3.452921e-05 6.239973e-06 1.416889e-04
[1836] 4.593060e-05 4.451832e-06 3.570578e-04 1.769778e-04 2.531705e-04
[1841] 1.970872e-04 3.554190e-05 1.130253e-04 1.793616e-04 1.443360e-04
[1846] 1.682234e-04 3.774954e-05 1.987473e-04 2.311875e-04 1.624539e-04
[1851] 2.117881e-04 4.611283e-05 1.853230e-05 6.199924e-05 4.658465e-05
[1856] 1.054280e-04 2.606862e-04 4.035325e-05 2.788204e-04 5.902457e-05
[1861] 1.749404e-04 3.188338e-05 3.855919e-05 2.212465e-04 7.246835e-06
[1866] 2.614893e-05 1.068995e-04 1.910115e-05 1.875274e-04 4.592685e-05
[1871] 3.101711e-04 2.181866e-04 2.091638e-04 3.766756e-05 1.025656e-05
[1876] 3.004829e-07 2.414125e-05 6.030672e-05 7.670295e-06 8.680031e-05
[1881] 9.551745e-05 5.925929e-05 3.048608e-04 1.113287e-04 8.551090e-05
[1886] 1.639787e-04 1.627087e-05 6.208676e-06 2.361827e-04 5.887072e-07
[1891] 2.078892e-04 1.812600e-05 2.808032e-04 2.591381e-04 4.634420e-05
[1896] 1.054280e-04 4.132723e-05 1.267349e-04 5.889284e-05 7.041745e-05
[1901] 1.623567e-04 2.583786e-04 9.690982e-05 1.466233e-05 1.261925e-04
[1906] 2.173668e-04 1.215521e-04 2.201589e-04 1.110131e-04 4.919349e-05
[1911] 3.553622e-05 1.155903e-07 9.563511e-05 9.405946e-05 1.861460e-04
[1916] 2.249556e-04 2.461330e-04 2.431783e-05 2.782363e-04 7.065782e-05
[1921] 1.792391e-04 1.277040e-04 7.463510e-07 1.385930e-04 2.878757e-05
[1926] 1.953658e-04 1.523630e-04 1.449631e-05 3.511111e-04 1.515241e-04
[1931] 1.679618e-04 1.068995e-04 2.399286e-05 3.744534e-05 2.929173e-04
[1936] 7.973278e-05 1.345425e-04 1.851249e-05 8.302368e-06 4.938077e-05
[1941] 2.395367e-04 3.923830e-05 1.582037e-04 5.312309e-05 1.890236e-05
[1946] 1.905010e-04 2.146510e-04 4.413485e-05 8.335747e-05 3.338484e-04
[1951] 2.269639e-04 3.499756e-04 2.715368e-04 5.096917e-05 3.121073e-04
[1956] 1.074462e-04 4.917287e-05 1.150684e-04 1.386243e-04 2.780466e-05
[1961] 2.553054e-04 8.890059e-06 2.125546e-04 2.186974e-05 1.230661e-04
[1966] 1.169492e-04 1.745141e-05 1.008801e-04 9.231859e-05 8.351785e-05
[1971] 5.086592e-05 3.233395e-05 6.286401e-05 4.204380e-04 4.861491e-05
[1976] 6.187689e-05 2.579878e-04 4.857369e-04 1.304475e-04 2.222183e-04
[1981] 9.643988e-05 2.514796e-04 1.852309e-04 1.230974e-04 8.900150e-05
[1986] 2.216962e-04 4.770915e-05 1.323633e-04 2.090742e-04 2.571978e-04
[1991] 1.677853e-05 7.353236e-05 2.731828e-04 3.470364e-04 2.178716e-05
[1996] 5.159818e-05 2.437470e-04 2.103348e-04 4.033242e-04 4.888974e-05
[2001] 1.809270e-04 5.389679e-05 2.774779e-04 2.780658e-04 1.265220e-04
[2006] 8.105640e-06 3.082664e-04 2.026343e-04 1.176553e-05 2.140788e-04
[2011] 1.952266e-04 2.405182e-04 2.847290e-04 1.791298e-04 3.762661e-04
[2016] 2.552694e-06 1.652132e-05 1.535412e-04 1.478584e-04 2.187898e-04
[2021] 2.791303e-04 6.790939e-05 3.401063e-07 2.013229e-04 2.401344e-04
[2026] 1.848268e-05 3.212707e-06 1.633321e-04 2.692370e-04 4.128626e-05
[2031] 7.712333e-06 1.262494e-05 7.601463e-05 2.001400e-04 3.069286e-05
[2036] 1.541339e-04 2.743953e-04 1.802505e-04 1.841533e-05 4.289463e-05
[2041] 2.264081e-04 1.241925e-05 2.625695e-04 6.505980e-05 2.812277e-04
[2046] 9.129843e-05 2.790847e-04 3.189753e-05 2.777617e-04 1.061075e-05
[2051] 1.301429e-04 2.710373e-04 1.379959e-03 4.060342e-04 1.479678e-04
[2056] 7.409829e-06 1.776619e-04 1.093302e-04 1.704362e-04 1.987064e-04
[2061] 1.067606e-04 3.731676e-05 2.018610e-04 2.403188e-04 1.937579e-07
[2066] 2.731822e-04 2.689175e-04 3.737649e-04 3.749792e-04 2.930487e-04
[2071] 6.144887e-05 4.597758e-05 1.492134e-04 2.324432e-04 1.121330e-07
[2076] 2.382617e-04 1.963603e-04 4.339847e-04 1.715987e-04 2.787331e-04
[2081] 1.419553e-03 3.212095e-04 1.474557e-04 2.638988e-05 3.131142e-05
[2086] 8.339167e-05 8.551090e-05 2.652053e-04 3.693717e-06 1.942387e-04
[2091] 8.786166e-05 2.696728e-04 2.798552e-04 1.912432e-05 1.616819e-04
[2096] 8.821957e-05 2.592858e-04 8.344231e-05 1.402329e-06 2.216488e-05
[2101] 2.614742e-04 9.169162e-07 2.154529e-04 2.536686e-05 2.621143e-04
[2106] 8.900580e-05 1.825399e-04 6.581204e-07 2.263837e-04 2.961496e-04
[2111] 1.847293e-05 2.671009e-04 5.922899e-05 2.496384e-04 2.684100e-04
[2116] 4.594947e-04 1.843854e-04 1.475745e-05 2.358655e-04 5.261270e-05
[2121] 3.781565e-05 1.052204e-05 2.705044e-04 4.818165e-06 2.593798e-07
[2126] 8.128804e-05 2.874066e-05 2.790157e-04 1.941938e-04 1.471432e-04
[2131] 1.269748e-05 2.016905e-04 2.077208e-04 2.438770e-04 3.407271e-05
[2136] 1.415325e-04 1.191089e-04 2.740729e-04 1.241925e-05 2.486582e-04
[2141] 1.224471e-04 5.336531e-06 2.759734e-05 5.779205e-07 2.076057e-04
[2146] 2.728233e-04 7.723664e-07 2.558601e-04 2.508991e-04 1.887670e-04
[2151] 9.507922e-05 2.690748e-04 2.649605e-04 1.828700e-04 1.108480e-04
[2156] 2.850456e-07 2.560030e-04 2.372705e-04 3.155489e-04 1.919543e-04
[2161] 2.729954e-04 2.845297e-04 3.570578e-04 6.300301e-05 8.443655e-05
[2166] 1.764588e-05 2.570872e-05 2.674740e-04 5.061989e-05 1.413807e-04
[2171] 1.103695e-04 1.042775e-05 5.396964e-05 5.908287e-04 2.494783e-04
[2176] 6.790939e-05 2.446470e-06 7.627792e-05 1.642360e-04 1.054280e-04
[2181] 3.235559e-05 3.239247e-05 4.277997e-05 4.389773e-05 1.410356e-04
[2186] 2.762779e-04 5.774089e-05 4.673776e-05 3.791672e-05 2.510343e-05
[2191] 5.678986e-05 8.021636e-05 2.717111e-04 8.733616e-05 1.385930e-04
[2196] 1.305249e-06 2.182637e-05 9.272798e-05 1.851291e-05 1.027311e-04
[2201] 8.581752e-06 3.203674e-05 6.060279e-06 1.695699e-04 1.283306e-04
[2206] 2.742922e-04 1.345362e-04 2.723008e-04 2.783949e-04 9.179504e-05
[2211] 2.549272e-04 4.735995e-05 2.055896e-04 2.783267e-04 1.660812e-04
[2216] 1.900796e-04 2.647279e-04 1.371219e-04 6.906549e-05 1.173908e-04
[2221] 1.056739e-04 1.516724e-04 1.942387e-04 2.090406e-04 2.240610e-04
[2226] 6.706088e-05 1.026003e-04 1.152926e-04 2.677881e-05 5.670551e-05
[2231] 3.998248e-05 1.954139e-04 1.844740e-04 1.455165e-04 2.127209e-05
[2236] 1.643935e-05 1.759710e-04 1.333878e-04 1.555400e-04 8.850032e-06
[2241] 2.371015e-04 1.140443e-05 2.152054e-05 1.214274e-04 3.093025e-04
[2246] 6.790939e-05 2.113104e-04 7.773990e-06 2.832645e-05 5.314576e-05
[2251] 2.788954e-04 2.838589e-04 2.425630e-04 3.987634e-05 2.790665e-04
[2256] 5.151152e-05 2.799353e-04 2.100686e-06 2.647784e-04 2.373570e-04
[2261] 2.976655e-04 2.764898e-04 1.866248e-04 2.901711e-04 1.708619e-04
[2266] 7.761340e-06 3.545812e-05 2.597247e-04 2.437279e-04 1.429919e-04
[2271] 7.567374e-05 6.905710e-05 2.008883e-04 1.475180e-04 6.867383e-05
[2276] 2.770807e-04 2.772885e-04 6.382496e-05 1.085368e-04 2.306423e-04
[2281] 1.587056e-04 1.134497e-05 9.222076e-05 1.547196e-04 1.718605e-04
[2286] 2.151988e-04 2.722954e-04 1.540655e-04 5.999595e-05 2.783007e-04
[2291] 2.570830e-04 5.141891e-04 3.229972e-04 2.042478e-04 2.288051e-05
[2296] 3.043489e-05 2.277219e-04 8.720580e-05 3.392718e-07 5.764105e-05
[2301] 3.959652e-05 3.020847e-04 2.931087e-04 2.489142e-04 7.702771e-05
[2306] 6.961221e-06 6.651558e-05 8.524216e-06 1.977879e-04 5.933128e-05
[2311] 2.722406e-04 4.595215e-05 2.744622e-04 2.938259e-04 2.698883e-04
[2316] 4.587298e-07 2.265129e-04 1.813495e-04 2.134067e-05 3.603399e-05
[2321] 2.635460e-04 2.233222e-04 1.641115e-04 4.979206e-05 1.371590e-04
[2326] 2.790317e-04 4.246905e-05 1.060523e-04 1.370250e-04 4.682072e-06
[2331] 8.547230e-05 2.736961e-05 9.807010e-05 4.175931e-04 2.318256e-04
[2336] 4.697698e-06 2.924224e-05 3.821836e-05 1.795925e-04 1.942387e-04
[2341] 7.535815e-07 1.075426e-04 1.740714e-04 8.843022e-05 2.974923e-04
[2346] 1.356808e-05 4.272248e-05 6.762632e-06 3.089184e-05 4.801924e-05
[2351] 4.213034e-05 2.867297e-05 2.559341e-04 6.380661e-05 1.522469e-04
[2356] 1.466490e-04 1.303602e-04 5.947680e-07 1.281637e-05 2.489032e-04
[2361] 1.092960e-04 1.333326e-04 1.655134e-05 6.587668e-05 1.270694e-05
[2366] 1.195477e-04 1.280871e-04 1.991728e-04 1.512188e-05 1.639106e-04
[2371] 3.562351e-04 2.419667e-04 3.861020e-05 1.226713e-04 2.310474e-04
[2376] 1.976763e-04 1.960276e-04 1.960579e-04 1.536494e-04 2.177246e-04
[2381] 2.823456e-04 2.569933e-04 8.927284e-05 2.700937e-04 1.746708e-04
[2386] 2.870274e-04 4.632977e-05 1.171420e-06 3.177394e-06 2.148125e-05
[2391] 2.712953e-04 6.764688e-05 2.306181e-04 2.735937e-04 9.653283e-04
[2396] 5.401041e-05 1.616398e-05 7.149381e-06 1.515330e-04 2.467693e-04
[2401] 1.924454e-04 1.064574e-04 5.020413e-06 2.427446e-04 2.935617e-06
[2406] 2.111299e-04 1.768034e-05 2.666934e-04 2.200233e-04 1.066546e-04
[2411] 1.434777e-04 2.023118e-05 1.008216e-04 1.905267e-04 2.922449e-04
[2416] 2.959302e-04 3.205267e-05 4.980418e-05 2.188281e-04 7.487405e-05
[2421] 2.974706e-05 3.555875e-05 1.756716e-04 2.213801e-05 4.018508e-05
[2426] 3.800237e-05 5.617819e-05 1.725610e-05 2.843139e-04 3.070893e-04
[2431] 1.501475e-04 3.764347e-04 2.583652e-06 2.450516e-06 3.543062e-05
[2436] 3.587056e-04 1.646612e-05 2.644489e-04 1.280046e-04 2.000123e-04
[2441] 5.507668e-05 2.347562e-05 4.252042e-04 1.521972e-07 1.874211e-04
[2446] 3.121073e-04 2.653530e-05 3.617572e-05 2.419056e-04 5.876133e-05
[2451] 1.061927e-04 2.133730e-04 6.064464e-05 1.692564e-04 1.374877e-04
[2456] 2.271645e-05 2.307342e-04 9.714361e-06 3.054129e-04 6.902079e-05
[2461] 1.406718e-04 2.756271e-04 1.671809e-05 1.635121e-04 2.641762e-04
[2466] 2.150728e-05 8.363791e-07 2.299087e-04 3.561352e-04 6.954736e-05
[2471] 4.583180e-05 1.902610e-04 9.567771e-05 2.680968e-04 5.262266e-05
[2476] 2.744834e-04 1.188395e-07 2.958099e-04 1.467850e-04 3.552434e-04
[2481] 7.331941e-05 1.191089e-04 1.241925e-05 2.513437e-04 2.790924e-04
[2486] 1.942387e-04 6.699167e-05 1.556467e-04 2.520384e-04 4.081072e-05
[2491] 7.950224e-05 2.734239e-04 3.087424e-04 5.257570e-04 1.808880e-04
[2496] 5.684016e-05 7.123280e-04 3.728762e-06 2.110801e-04 2.474584e-04
[2501] 6.790939e-05 1.537217e-04 9.005633e-05 4.175931e-04 5.057185e-05
[2506] 1.281637e-05 2.255286e-04 2.665219e-04 2.375257e-05 1.168225e-05
[2511] 2.449525e-04 3.121073e-04 5.026526e-06 4.272248e-05 1.679618e-04
[2516] 3.728762e-06 2.122468e-04 3.543062e-05 4.606094e-05 1.469473e-04
[2521] 3.746679e-05 2.718514e-04
Figure 6: Distribución observada del ticket promedio vs ajuste Gamma-Gamma.

12 Predicción del ticket esperado

El estimador Bayes empírico del ticket esperado para cada cliente (Fader, Hardie & Lee 2005, ecuación 6) es un promedio ponderado entre:

  • el ticket medio individual del cliente \(\bar m_x\), y
  • el ticket medio poblacional implícito en \((p, q, \gamma)\).

El peso depende de \(x\): más historial → más confianza en el ticket individual; menos historial → más shrinkage hacia la media poblacional. Clientes con \(x = 0\) heredan directamente el promedio del grupo.

12.1 Reconstrucción de \(\bar m_x\) con ventana completa

# m.x recalculado incluyendo todas las transacciones hasta el corte productivo
df_mx_actualizado <- df_elog %>%
  arrange(cust, date) %>%
  group_by(cust) %>%
  filter(n() > 1) %>%
  slice(-1) %>%
  summarise(m.x = mean(sales), .groups = "drop")

# Pegado a la CBS productiva
cbs_nuevo_df      <- as.data.frame(cbs_nuevo)
cbs_nuevo_df$cust <- rownames(cbs_nuevo_df)

cbs_final_prod <- cbs_nuevo_df %>%
  left_join(df_mx_actualizado, by = "cust") %>%
  mutate(m.x = ifelse(is.na(m.x), 0, m.x))

12.2 Ticket esperado y ensamblado final

# 1. Ticket esperado vía Gamma-Gamma (suavizado Bayesiano empírico)
ticket_esperado <- spend.expected.value(
  params = params_spend,
  m.x    = cbs_final_prod$m.x,
  x      = cbs_final_prod$x
)
Warning in spend.generalParams(params = params, func = "spend.expected.value",
: Customers with 0 transactions or 0 average spend in spend.marginal.likelihood
# 2. DataFrame final con todas las métricas accionables
df_final_febrero <- data.frame(
  customerId             = cbs_final_prod$cust,
  prob_activo            = round(p_alive_real_feb, 4),
  compras_esperadas_sem1 = round(compras_esperadas_1sem, 3),
  ticket_esperado        = round(ticket_esperado, 2)
)

# 3. CLV semanal esperado = P(alive) implícito × compras × ticket
#    (BTYD: compras_esperadas ya incorpora la probabilidad de estar vivo)
df_final_febrero$clv_semanal <- round(
  df_final_febrero$compras_esperadas_sem1 * df_final_febrero$ticket_esperado, 2
)

# 4. Ordenamos por CLV semanal descendente
df_final_febrero <- df_final_febrero[order(-df_final_febrero$clv_semanal), ]

head(df_final_febrero, 10)
      customerId prob_activo compras_esperadas_sem1 ticket_esperado clv_semanal
205  20191100876      0.9902                  0.795       544414.21   432809.30
2151 20608388649      0.9916                  1.715       166171.01   284983.28
846  20551612911      0.9988                  0.332       438315.16   145520.63
504  20512232176      0.9813                  1.511        71387.17   107866.01
849  20551755275      0.9115                  0.387       165103.10    63894.90
2734 20611604719      0.9875                  0.493       124061.66    61162.40
1970 20606961261      0.9841                  0.887        65352.96    57968.08
3224 20614058391      1.0000                  0.625        89669.46    56043.41
665  20529823321      1.0000                  1.922        28381.12    54548.51
192  20133148532      1.0000                  2.733        19683.41    53794.76
write.csv(df_final_febrero, "prediccion_pj_10_02_2026.csv", row.names = FALSE)
cat("Predicción exportada:", nrow(df_final_febrero), "clientes\n")
Predicción exportada: 3368 clientes

13 Referencias

  • Schmittlein, D. C., Morrison, D. G., & Colombo, R. (1987). Counting Your Customers: Who Are They and What Will They Do Next? Management Science, 33(1), 1–24.
  • Fader, P. S., & Hardie, B. G. S. (2005). A Note on Deriving the Pareto/NBD Model and Related Expressions. Working paper. http://brucehardie.com/notes/008/
  • Fader, P. S., Hardie, B. G. S., & Lee, K. L. (2005). RFM and CLV: Using Iso-Value Curves for Customer Base Analysis. Journal of Marketing Research, 42(4), 415–430.
  • Dziurzynski, L., Wadsworth, E., & McCarthy, D. (2014). BTYD: Implementing Buy ’Til You Die Models. R package. https://cran.r-project.org/package=BTYD