# Limpieza del entorno para garantizar reproducibilidad
rm(list = ls())Modelo Pareto/NBD + Gamma-Gamma — Clientes B2B (Kambista)
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 activahardie = TRUEpara 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
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$cbs5.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 transactionst.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:
- Mientras está activo, cada cliente compra según un Poisson con tasa \(\lambda\).
- Cada cliente “muere” en un tiempo aleatorio \(\tau\) distribuido exponencial con tasa \(\mu\).
- 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
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")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")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$cbspnbd.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
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")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$cbsStarted 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:
- El ticket de cada transacción individual de un cliente es Gamma\((p, \nu)\).
- La tasa \(\nu\) es heterogénea entre clientes y se distribuye Gamma\((q, \gamma)\).
- 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
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