SlideShare una empresa de Scribd logo
¿CUÁNTO VALE UN CLIENTE?
UNA ALTERNATIVA AL MODELO DE PARETO.
Experto en Big Data y Data Science: ciencia e ingeniería de datos
ALGUNAS PREGUNTAS
¿Cuánto vale un cliente?
¿Qué es el Customer Lifetime Value (CLV)?
¿Cómo se calcula?
¿Todos los clientes “valen” lo mismo?
¿Qué clientes parece que serán más activos?
¿Cuánto podrían comprar (transacciones esperadas)?
REFLEXIONES
 Son preguntas complejas.
 Llevan encima de la mesa mucho tiempo.
 Hay mucha documentación académica y empresarial escrita al respecto.
 Vivimos un nuevo paradigma que nos permitirá dar mejores respuestas.
ALGUNAS RESPUESTAS
El CLV es un principio de marketing que estudia el valor del cliente en el tiempo.
 Es el valor presente de los cash flows (flujos de caja) futuros con el cliente.
 Es una visión a largo plazo de la relación con el cliente en la empresa.
 Es el beneficio neto basado en una predicción. No hay que confundirlo con la
rentabilidad del cliente, basado en el beneficio histórico.
CLAVES
 CLV es una predicción, es un valor esperado, no es un concepto
cuantificable (“real”) en el presente.
 Es individual. No todos los clientes tienen el mismo CLV.
 Es dinámico. El CLV evoluciona a lo largo del tiempo.
UNA FÓRMULA
𝐶𝐿𝑉 = σ 𝑡=0
𝑇 𝑝 𝑡−𝑐 𝑡 𝑟𝑡
1+𝑖 𝑡 − 𝐴𝐶 (1a)
Donde
𝑝𝑡 = precio que paga el cliente en un momento determinado del tiempo t
𝑐𝑡 = coste directo de dar servicio al cliente en un tiempo t
𝑖 = tasa de descuento de coste del capital para la empresa
𝑟𝑡 = probabilidad de que el cliente vuelva a comprar o de que esté “vivo” en un tiempo t.
𝐴𝐶 = coste de adquisición
𝑇 = horizonte temporal para estimar el CLV
MÁS SENCILLO
𝐶𝐿𝑉 = σ 𝑡=0
𝑇 𝑟 𝑡
1+𝑑 𝑡 𝑚
Donde
𝑚 = 𝑛𝑒𝑡 𝑐𝑎𝑠ℎ 𝑓𝑙𝑜𝑤 𝑝𝑒𝑟 𝑝𝑒𝑟𝑖𝑜𝑑 (𝑖𝑓 𝑎𝑐𝑡𝑖𝑣𝑒)
𝑟 = 𝑟𝑒𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑟𝑎𝑡𝑒
𝑑 = 𝑑𝑖𝑠𝑐𝑜𝑢𝑛𝑡 𝑟𝑎𝑡𝑒
𝑇 = ℎ𝑜𝑟𝑖𝑧𝑜𝑛 𝑓𝑜𝑟 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑖𝑜𝑛
MÁS CORRECTO
𝐸(𝐶𝐿𝑉) = ‫׬‬0
∞
𝐸 𝑣 𝑡 𝑆 𝑡 𝑑 𝑡 𝑑𝑡
Donde
E[v(t)] = valor esperado (de los cash flows netos) del cliente en un tiempo t (si está activo).
S(t) = probabilidad de que el cliente permanezca activo en un tiempo t.
d(t) = factor de descuento que refleja el valor `presente de una cantidad recibida en un tiempo t.
EL CÁLCULO DE 𝐸(𝐶𝐿𝑉)
Se calcularán 𝐸 𝑣 𝑡 , 𝑆 𝑡 y 𝑑 𝑡 en un contexto concreto de negocio, y a partir de
ahí, se solucionará la integral.
Es importante distinguir entre clientes potenciales, clientes nuevos y clientes
antiguos. Cuyo cálculo del CLV tendrá algunos matices.
1. Clientes nuevos:
𝐸(𝐶𝐿𝑉) = න
0
∞
𝐸 𝑣 𝑡 𝑆 𝑡 𝑑 𝑡 𝑑𝑡
2. Clientes antiguos:
𝐸(𝐶𝐿𝑉) = න
𝑇
∞
𝐸 𝑣 𝑡 𝑆 𝑡|𝑡 > 𝑇 𝑑 𝑡 − 𝑇 𝑑𝑡
NUESTRO CONTEXTO
 Relación no contractual con los clientes. Ésto
implica que el tiempo en el que el cliente abandona (pasa de
activo a inactivo) es indefinido (unobserved).
 Transacciones (compras) continuas.
NUESTRO OBJETIVO
 Dado un histórico de transacciones, se harán
predicciones de compra para el próximo periodo.
 Los clientes se analizarán individual y conjuntamente.
NUESTRO MODELO
MOMENTO DE COMPRA
 Mientras está activo, el número de transacciones realizadas por un cliente
en un periodo de tiempo t, se distribuye como una Poisson (arriba), con
tasa de transacción 𝛌.
 La heterogeneidad en la tasa de transacción de los clientes, 𝛌, sigue una
distribución Gamma (𝑟, 𝛼).
MOMENTO DE ABANDONO
 Después de una transacción cualquiera, un cliente se convierte en inactivo
con probabilidad 𝒑. Por lo tanto, el punto en el que un cliente abandona se
distribuye a lo largo de varias transacciones de acuerdo a una distribución
geométrica pmf* (arriba).
 La heterogeneidad en la tasa de abandono, sigue una distribución Beta
(a,b).
• PMF = Probability Mass Function
NUESTRA FUNCIÓN
Simplificando al máximo (ver memoria y referencias), para una implementación paramétrica
rápida, se puede obtener la función de probabilidad del modelo como
𝓛 𝒓, 𝜶, 𝒂, 𝒃 𝒙, 𝒕 𝒙, 𝑻 = 𝑨 𝟏 · 𝑨 𝟐 · 𝑨 𝟑 + 𝜹 𝒙>𝟎 𝑨 𝟒
donde,
𝐴1 =
Г 𝑟+𝑥 α 𝑟
Г(𝑟)
𝐴2 =
Г 𝑎+𝑏 Г(𝑏+𝑥)
Г(𝑏)Г(𝑎+𝑏+𝑥)
𝐴3 =
1
α+𝑇
𝑟+𝑥
𝐴4 =
𝑎
𝑏+𝑥−1
1
α+𝑡 𝑥
𝑟+𝑥
IMPLEMENTACIÓN
Se trasladará todo el desarrollo del modelo matemático (BG/NBD)
de Peter S. Fader, como una alternativa al modelo de Pareto/NBD
a un notebook de Python a través de la librería Lifetimes 0.2.0.0.
desarrollado por Cam Davidson-Pilon, con licencia del MIT,
Copyright del 2015.
NUESTROS DATOS
En nuestro estudio, exploraremos el rendimiento del
modelo BG/NBD usando datos de las compras de los
CDs en la tienda online CDNOW.
Calibraremos el modelo usando los datos de las
transacciones repetidas para la muestra de 2357 clientes
sobre la primera mitad del periodo de 78 semanas y las
compras predichas de las siguientes 39.
En nuestro notebook de Python, se analizarán la actividad o
inactividad del consumidor final, basándonos en un tiempo
finito: al cabo de un tiempo concreto la relación con el cliente
"morirá". El objetivo será tratar de predecir la frecuencia con la
que un potencial cliente visitará nuestra web. Estudiando el
histórico de compras, trataremos de predecir la repetición de
una compra, el abandono de una aplicación, y calcular el CLTV.
Tabla 1: Muestra del dataset cdnow_customers
ID Frequency Recency T
1 2 30.43 38.86
2 1 1.71 38.86
3 0 0.00 38.86
4 0 0.00 38.86
5 0 0.00 38.86
En la Tabla 1 observamos una pequeña muestra del dataset cdnow_customers, tenemos:
 La frecuencia de compra de los clientes (calculado como el total menos 1).
 T el tiempo que lleva el cliente en la empresa, en una unidad de tiempo cualquiera (una
semana, en nuestro caso). Es igual al tiempo transcurrido entre la primera y la última
compra total.
 Recency es el momento de la última compra. Es la diferencia entre la primera y la última
compra individual. Nótese que 1 compra tiene una recency de 0. Lo notaremos como 𝑡 𝑥.
ALGUNAS VISUALIZACIONES
Figura 1: Matriz de Frecuencias
La Matriz de Frecuencias, calcula el número
de transacciones esperadas de un cliente en
el próximo período, dado su Recency (edad
de la última compra) y Frecuency (número
de compras repetidas).
Observamos que, si un cliente ha realizado más de 25
compras, y su última compra fue cuando llevaba 35
semanas con nosotros, entonces es uno de nuestros
mejores clientes (abajo a la derecha del gráfico). Por lo
tanto, tiene muchas probabilidades de repetir su consumo
inminentemente (color rojo).
Por el contrario, se considera que nuestros clientes menos
activos son aquellos que hicieron muchas compras
repetidas y desaparecen durante semanas. Como
observamos en la esquina superior derecha en color azul
oscuro.
Figura 2: Matriz de frecuencias probabilidad-actividad
Otra matriz interesante es la que tenemos
en la figura 2. En ella estudiamos la
probabilidad de que un cliente permanezca
activo en base a su histórico de compras del
que obtenemos su frecuency y recency
comentados.
Observamos, por ejemplo, como el color
rojo indica la alta probabilidad de actividad
de un cliente ya que han comprado con
frecuencia en el pasado y por otra parte ha
transcurrido tiempo desde que no nos
visitan. Sin embargo, se espera su vuelta.
UNA PREDICCIÓN
Tabla 2: Ranking de clientes en base a sus compras esperadas.
ID Frequency Recency T
Predicted_Purchases
(Probabilidad)
509 18 35.14 35.86 0.424877
841 19 34.00 34.14 0.474738
1981 17 28.43 28.86 0.486526
157 29 37.71 38.00 0.662396
1516 26 30.96 31.00 0.710623
A continuación haremos una pequeña predicción en base a un histórico de compras y
construiremos con ello un ranking de clientes ordenados de menor a mayor número de
transacciones esperadas para el próximo período. Nótese que coincide con un creciente
frecuency.
Observamos por ejemplo como los clientes que han hecho 26 compras, y nos han
comprado recientemente, probablemente lo vuelvan a hacer en el próximo período.
¿ES CORRECTA NUESTRA PREDICCIÓN?
Figura 3: Histograma para evaluar el ajuste del modelo
Hasta el momento hemos predicho y
visualizado el comportamiento de nuestros
clientes, pero ahora vamos a evaluar si
nuestro modelo es bueno o no. Lo primero
que haremos será comparar nuestros datos
con datos artificiales con los parámetros
ajustados del modelo.
Se refleja claramente como los datos reales
y simulados se alinean bien. Esto prueba
que el modelo funciona correctamente
para todos los tipos de cliente que
realizaron transacciones con diversas
frecuencias.
DATOS TRANSACCIONALES
Tabla 3: Datos transaccionales
Date ID
0 2014-03-08 00:00:00 0
1 2014-05-21 00:00:00 1
2 2014-03-14 00:00:00 2
3 2014-04-09 00:00:00 2
4 2014-05-21 00:00:00 2
La mayoría de las veces los datos que manejamos son transaccionales como vemos en la
tabla 3, que desplegamos desde aquí. Incorporamos el tiempo, aunque justo en éste caso no
nos da mucha información. Lo significativo es la transformación.
Utilizaremos algunas funciones interesantes para transformar esos datos transaccionales
(una fila por compra) en datos agregados (un dataset que combine frecuency, antigüedad del
cliente y recency).
TRANSFORMAMOS LOS DATOS
Tabla 4: Nuevos datos agregados transformados
ID Frequency Recency T
0 0 0 298
1 0 0 224
2 6 142 292
3 0 0 147
4 2 9 183
Con lo anterior, obtenemos un nuevo dataset de datos agregados.
MÁS PREDICCIONES
Predicciones del cliente individual
Basándonos en el histórico de compras del cliente, haremos una predicción las futuras
compras.
En el ejemplo, la probabilidad de que un individuo vuelva a repetir la compra en base a
los nuestros parámetros comentados (t, frecuency, recency y T) es de 0.05765.
t = 10 #Predicción de compras para los próximos 10 periodos
individual = summary.iloc[20]
# La función de abajo es un alias de `bfg.conditional_expected_number_of_purchases_up_to_time`
bgf.predict(t, individual['frequency'], individual['recency'], individual['T'])
0.057651166220182973
Figura 5:
Probabilidad de actividad de un cliente frente a sus compras efectivas.
Dado un histórico de compras del
cliente, podemos calcular su
probabilidad de estar activo, de
acuerdo al modelo que acabamos de
entrenar. A continuación, el ejemplo.
En la figura 5 podemos observar el
histórico de actividad que refleja las
compras de un cliente individual (id =
35) que lleva 200 días realizando
compras en nuestra web a la vez que
visualizamos su probabilidad estimada
de estar activo.
CROSS-VALIDATION
Segundo ajuste del modelo
A continuación, vamos a evaluar el rendimiento de nuestro modelo ya parametrizado.
Normalmente, la observación del sobreajuste, es decir, la falta de generalización, pasa
lógicamente por utilizar una muestra para la modelización/entrenamiento (también
llamado training o calibration en nuestro caso), distinta a la utilizada para la
evaluación/prueba (test o holdout). El ratio de acierto (o la medida que se utilice para la
evaluación) obtenida en la muestra de training o calibration (acierto aparente) se
comparará con la obtenida en la muestra de test o holdout.
Con nuestros datos transaccionales, podemos particionar el dataset en un calibration
period dataset y un dataset de validación o test (houldout dataset). Esto es importante
porque queremos comprobar el funcionamiento de nuestro modelo con datos no vistos
hasta el momento (cross-validation). A continuación utilizamos una función para
particionar el dataset hasta las dos fechas determinadas del 2014 que vemos a
continuación.
Tabla 5:
Dataset dividido en calibration period dataset y houldout dataset.
ID Frequency_Cal Recency_Cal T_Cal Frequency_Holdout Duration_Holdout
0 0 0 177 0 121
1 0 0 103 0 121
2 6 142 171 0 121
3 0 0 26 0 121
4 2 9 62 0 121
A partir de aquí, vemos como particiona el dataset en dos subconjuntos con sus
respectivas recency y frecuency para nuestras pruebas. Es sólo la cabecera, pero nos sirve
para visualizar lo que hacemos. En general, se tratará de general muestras de training y
test lo suficientemente amplias como para garantizar que la evaluación en ambas es
confiable.
PERO…
¿REALMENTE LO HACEMOS BIEN?
Figura 4:
Evaluación de la capacidad predictiva de nuestro modelo.
Salvando las limitaciones y el riesgo
que supone la utilización de una única
muestra de entrenamiento y otra de
validación, comprobamos que nuestro
modelo predice bastante bien frente a
nuestros datos de prueba.
En la figura 4, estamos comparando las
compras reales del conjunto de test
con sus compras predichas, y
evaluando si se ajustan bien. Parece
que, para compras elevadas, difieren
más (de la quinta a la sexta compra), el
modelo pierde capacidad predictiva.
AÑADIMOS VALOR MONETARIO
Customer_id Frequency Recency T Monetary_value
1 2 30.43 38.86 22.35
2 1 1.71 38.86 11.77
6 7 29.43 38.86 73.74
7 1 5.00 38.86 11.77
9 2 35.71 38.86 25.55
Tabla 6: Nuevo dataset transformado
Hasta este momento no hemos tenido en cuenta el valor económico de cada compra y
nos hemos enfocado principalmente en la existencia de estas transacciones. Para
estimar esto podemos usar el sub-modelo Gamma-Gamma. Pero primero necesitamos
crear datos agregados de datos transaccionales que también contengan valores
económicos de estas transacciones (por ejemplo, beneficios o ingresos). En la tabla 6
apreciamos mejor esa transformación.
PERO…
¿HAY RELACIÓN ENTRE
EL VALOR MONETARIO
Y LA FRECUENCIA DE COMPRA?
El sub modelo Gamma-Gamma y el supuesto de independencia
El modelo que vamos a usar para estimar para el CLV para nuestra base de
datos de clientes se llama sub-modelo Gamma-Gamma, que es necesario para
incluir los valores monetarios que expondremos a continuación. El submodelo
Gamma-Gamma supone que no hay relación entre el valor monetario y la
frecuencia de compra. En la práctica, vamos a comprobar primero si el
coeficiente de correlación de Pearson entre los dos vectores se aproxima a
cero para poder usar éste modelo.
Monetary_value Frequency
Monetary_value 1.000000 0.113884
Frequency 0.113884 1.000000
Tabla 7:
Coeficiente de correlación entre el valor monetario y la frecuencia de compra.
Confirmamos que no hay relación entre el precio de los bienes de nuestro dataset y
su frecuencia de compra. Parece que el precio determina poco la compra.
Obviamente esto sería muy característico del tipo de bien que estudiamos. Para éste
caso concreto, la correlación es muy baja.
A partir de aquí, entrenaremos nuestro submodelo Gamma-Gamma y trataremos de
predecir el valor esperado medio de nuestros clientes.
¿EN SERIO?
BUENO.
ESO NOS DICEN NUESTROS DATOS.
Y AHORA SI
NUESTRO CLV
De los 2357 individuos en nuestro dataset, 946 hicieron como mínimo una compra, y
es con los que hemos trabajado para concluir que por el método de máxima
verosimilitud, los valores de los tres parámetros de nuestro modelo (p, q, 𝛾) son (6.25,
3.74, 15.45) respectivamente. Una vez que tenemos nuestro modelo Gamma-Gamma
parametrizado, procedemos a calcular el CLV que debe de exponerse en unidades
monetarias.
from lifetimes import GammaGammaFitter
ggf = GammaGammaFitter(penalizer_coef = 0)
ggf.fit(returning_customers_summary['frequency'],
returning_customers_summary['monetary_value'])
print ggf
<lifetimes.GammaGammaFitter: fitted with 946 subjects, p: 6.25, q: 3.74, v: 15.45>
Customer_ID CLV
1 24.658617
2 18.911481
3 35.171002
4 35.171002
5 35.171002
Tabla 8: CLV esperado por cliente
(Modelo BD/NBD)
Finalmente en la tabla 8 obtenemos el CLV esperado
por cada cliente para la empresa de nuestro dataset.
Ahora ya podemos mostrar el resultado del valor medio del CLV de nuestros clientes
(averange Customer Lifetime Value) como sigue.
Resultando un beneficio medio esperado por cliente de 35.25 unidades monetarias, y un
beneficio medio de 35.07 u.m. Lo que los aproxima mucho, concluyendo con la fiabilidad de
la predicción.
Para hacer una comparación entre los dos métodos, ahora vamos a calcular el CLV total
usando el método de DFC (discounted cash flows) ajustado para el coste del capital con una
tasa de descuento de 0.7.
print "Expected conditional average profit: %s, Average profit: %s" % (
ggf.conditional_expected_average_profit(
summary_with_money_value['frequency'],
summary_with_money_value['monetary_value']
).mean(),
summary_with_money_value[summary_with_money_value['frequency']>0]['monetary_value'].mean()
)
Expected conditional average profit: 35.2529582528, Average profit: 35.078551797
VS OTROS MÉTODOS
Customer_ID CLV
1 27.535073
2 3.568359
3 6.598023
4 6.598023
5 6.598023
6 210.596295
7 5.294988
8 6.598023
9 32.905050
10 6.598023
Tabla 9: CLV por el método de DFC.
En la tabla 9 observamos el Customer Lifetime Value en valores monetarios para cada
cliente, con el método del DFC. Así, observamos que hay significativas diferencias entre
los valores de unos clientes y otros. Pero sobretodo, entre unos modelos y otros.
Customer_ID CLV
1 27.535073
2 3.568359
3 6.598023
4 6.598023
5 6.598023
6 210.596295
7 5.294988
8 6.598023
9 32.905050
10 6.598023
Tabla 9: CLV por el método de DFC.
Customer_ID CLV
1 24.658617
2 18.911481
3 35.171002
4 35.171002
5 35.171002
Tabla 8: CLV esperado por cliente
(Modelo BD/NBD)
COMPARATIVA
RETOS
 En nuestro modelo, el reto es diferenciar los clientes inactivos (clientes que han
abandonado definitivamente la empresa), de los considerados activos en el pasado
pero que no han abandonado del todo la empresa.
 Y en general, extraer más valor de los datos transaccionales de los cuales las
empresas si tienen mucha información.
 Fusionar los micro y macro modelos en un contexto coherente.
 En definitiva, entender mejor al cliente.
IDEAS
 Hacer modelos más complejos, relacionados y complementarios,
basados en la teoría económica.
 Incluir a la competencia.
 Incluir la experiencia del cliente.
CONCLUSIÓN
La evolución natural será complementar los modelos de riesgo
de retención de los clientes con distribuciones binomiales
negativas que al fin y al cabo tienen un alto componente
estocástico, con modelos económicos mucho más completos.
MÁS
PREGUNTAS…
Paloma Cuesta Uría
Tutor: José Ramón Dorronsoro Íbero
Septiembre 2016

Más contenido relacionado

Similar a Presetación TFT PalomaCuestaUria

Herramientas Cuantitativas_Parte 2.pptx
Herramientas Cuantitativas_Parte 2.pptxHerramientas Cuantitativas_Parte 2.pptx
Herramientas Cuantitativas_Parte 2.pptxHenry Pulgarin
 
Sistemadeinventario 090604000954 Phpapp02
Sistemadeinventario 090604000954 Phpapp02Sistemadeinventario 090604000954 Phpapp02
Sistemadeinventario 090604000954 Phpapp02guest993d44
 
Sistema Inventario, victor mamani catachura,boreasH
Sistema Inventario, victor mamani catachura,boreasHSistema Inventario, victor mamani catachura,boreasH
Sistema Inventario, victor mamani catachura,boreasHvictor mamani
 
CRECEMYPE - abastecimiento y distribucion
CRECEMYPE - abastecimiento y distribucionCRECEMYPE - abastecimiento y distribucion
CRECEMYPE - abastecimiento y distribucionHernani Larrea
 
Hacia una integración tecnológica total con erp, crm y business intelligence
Hacia una integración tecnológica total con erp, crm y business intelligenceHacia una integración tecnológica total con erp, crm y business intelligence
Hacia una integración tecnológica total con erp, crm y business intelligencePMTK Lean IT
 
Teoriadecolas
TeoriadecolasTeoriadecolas
Teoriadecolaslgarcias
 
Descrifrando el stock de seguridad - Parte I: Introducción
Descrifrando el stock de seguridad - Parte I: IntroducciónDescrifrando el stock de seguridad - Parte I: Introducción
Descrifrando el stock de seguridad - Parte I: IntroducciónWillie Cordova Hanna
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Jose Algarin
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)dsequeiracerpa
 
VSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorVSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorRodríguez Saúl
 
11 formac pe tesoreria
11 formac pe   tesoreria11 formac pe   tesoreria
11 formac pe tesoreriaLucho Canales
 
Cómo aumentar la efectividad de su tienda
Cómo aumentar la efectividad de su tienda Cómo aumentar la efectividad de su tienda
Cómo aumentar la efectividad de su tienda T-Cuento
 
Formulacion De Proyectos Gimnasio
Formulacion De Proyectos GimnasioFormulacion De Proyectos Gimnasio
Formulacion De Proyectos Gimnasiomartinezbreyner
 

Similar a Presetación TFT PalomaCuestaUria (20)

Tiendas de conveniencia ejercicio 3
Tiendas de conveniencia ejercicio 3Tiendas de conveniencia ejercicio 3
Tiendas de conveniencia ejercicio 3
 
Herramientas Cuantitativas_Parte 2.pptx
Herramientas Cuantitativas_Parte 2.pptxHerramientas Cuantitativas_Parte 2.pptx
Herramientas Cuantitativas_Parte 2.pptx
 
Sistemadeinventario 090604000954 Phpapp02
Sistemadeinventario 090604000954 Phpapp02Sistemadeinventario 090604000954 Phpapp02
Sistemadeinventario 090604000954 Phpapp02
 
Sistema Inventario, victor mamani catachura,boreasH
Sistema Inventario, victor mamani catachura,boreasHSistema Inventario, victor mamani catachura,boreasH
Sistema Inventario, victor mamani catachura,boreasH
 
CRECEMYPE - abastecimiento y distribucion
CRECEMYPE - abastecimiento y distribucionCRECEMYPE - abastecimiento y distribucion
CRECEMYPE - abastecimiento y distribucion
 
Hacia una integración tecnológica total con erp, crm y business intelligence
Hacia una integración tecnológica total con erp, crm y business intelligenceHacia una integración tecnológica total con erp, crm y business intelligence
Hacia una integración tecnológica total con erp, crm y business intelligence
 
Teoriadecolas
TeoriadecolasTeoriadecolas
Teoriadecolas
 
Customer Analytics
Customer AnalyticsCustomer Analytics
Customer Analytics
 
Descrifrando el stock de seguridad - Parte I: Introducción
Descrifrando el stock de seguridad - Parte I: IntroducciónDescrifrando el stock de seguridad - Parte I: Introducción
Descrifrando el stock de seguridad - Parte I: Introducción
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)Flujo De Caja De Un Gimnasio (2003)
Flujo De Caja De Un Gimnasio (2003)
 
VSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorVSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valor
 
11 formac pe tesoreria
11 formac pe   tesoreria11 formac pe   tesoreria
11 formac pe tesoreria
 
Cómo aumentar la efectividad de su tienda
Cómo aumentar la efectividad de su tienda Cómo aumentar la efectividad de su tienda
Cómo aumentar la efectividad de su tienda
 
Formulacion De Proyectos Gimnasio
Formulacion De Proyectos GimnasioFormulacion De Proyectos Gimnasio
Formulacion De Proyectos Gimnasio
 

Presetación TFT PalomaCuestaUria

  • 1. ¿CUÁNTO VALE UN CLIENTE? UNA ALTERNATIVA AL MODELO DE PARETO. Experto en Big Data y Data Science: ciencia e ingeniería de datos
  • 3. ¿Cuánto vale un cliente? ¿Qué es el Customer Lifetime Value (CLV)? ¿Cómo se calcula?
  • 4. ¿Todos los clientes “valen” lo mismo? ¿Qué clientes parece que serán más activos? ¿Cuánto podrían comprar (transacciones esperadas)?
  • 6.  Son preguntas complejas.  Llevan encima de la mesa mucho tiempo.  Hay mucha documentación académica y empresarial escrita al respecto.  Vivimos un nuevo paradigma que nos permitirá dar mejores respuestas.
  • 8. El CLV es un principio de marketing que estudia el valor del cliente en el tiempo.  Es el valor presente de los cash flows (flujos de caja) futuros con el cliente.  Es una visión a largo plazo de la relación con el cliente en la empresa.  Es el beneficio neto basado en una predicción. No hay que confundirlo con la rentabilidad del cliente, basado en el beneficio histórico.
  • 10.  CLV es una predicción, es un valor esperado, no es un concepto cuantificable (“real”) en el presente.  Es individual. No todos los clientes tienen el mismo CLV.  Es dinámico. El CLV evoluciona a lo largo del tiempo.
  • 12. 𝐶𝐿𝑉 = σ 𝑡=0 𝑇 𝑝 𝑡−𝑐 𝑡 𝑟𝑡 1+𝑖 𝑡 − 𝐴𝐶 (1a) Donde 𝑝𝑡 = precio que paga el cliente en un momento determinado del tiempo t 𝑐𝑡 = coste directo de dar servicio al cliente en un tiempo t 𝑖 = tasa de descuento de coste del capital para la empresa 𝑟𝑡 = probabilidad de que el cliente vuelva a comprar o de que esté “vivo” en un tiempo t. 𝐴𝐶 = coste de adquisición 𝑇 = horizonte temporal para estimar el CLV
  • 14. 𝐶𝐿𝑉 = σ 𝑡=0 𝑇 𝑟 𝑡 1+𝑑 𝑡 𝑚 Donde 𝑚 = 𝑛𝑒𝑡 𝑐𝑎𝑠ℎ 𝑓𝑙𝑜𝑤 𝑝𝑒𝑟 𝑝𝑒𝑟𝑖𝑜𝑑 (𝑖𝑓 𝑎𝑐𝑡𝑖𝑣𝑒) 𝑟 = 𝑟𝑒𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑟𝑎𝑡𝑒 𝑑 = 𝑑𝑖𝑠𝑐𝑜𝑢𝑛𝑡 𝑟𝑎𝑡𝑒 𝑇 = ℎ𝑜𝑟𝑖𝑧𝑜𝑛 𝑓𝑜𝑟 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑖𝑜𝑛
  • 16. 𝐸(𝐶𝐿𝑉) = ‫׬‬0 ∞ 𝐸 𝑣 𝑡 𝑆 𝑡 𝑑 𝑡 𝑑𝑡 Donde E[v(t)] = valor esperado (de los cash flows netos) del cliente en un tiempo t (si está activo). S(t) = probabilidad de que el cliente permanezca activo en un tiempo t. d(t) = factor de descuento que refleja el valor `presente de una cantidad recibida en un tiempo t.
  • 17. EL CÁLCULO DE 𝐸(𝐶𝐿𝑉)
  • 18. Se calcularán 𝐸 𝑣 𝑡 , 𝑆 𝑡 y 𝑑 𝑡 en un contexto concreto de negocio, y a partir de ahí, se solucionará la integral. Es importante distinguir entre clientes potenciales, clientes nuevos y clientes antiguos. Cuyo cálculo del CLV tendrá algunos matices. 1. Clientes nuevos: 𝐸(𝐶𝐿𝑉) = න 0 ∞ 𝐸 𝑣 𝑡 𝑆 𝑡 𝑑 𝑡 𝑑𝑡 2. Clientes antiguos: 𝐸(𝐶𝐿𝑉) = න 𝑇 ∞ 𝐸 𝑣 𝑡 𝑆 𝑡|𝑡 > 𝑇 𝑑 𝑡 − 𝑇 𝑑𝑡
  • 20.  Relación no contractual con los clientes. Ésto implica que el tiempo en el que el cliente abandona (pasa de activo a inactivo) es indefinido (unobserved).  Transacciones (compras) continuas.
  • 22.  Dado un histórico de transacciones, se harán predicciones de compra para el próximo periodo.  Los clientes se analizarán individual y conjuntamente.
  • 25.  Mientras está activo, el número de transacciones realizadas por un cliente en un periodo de tiempo t, se distribuye como una Poisson (arriba), con tasa de transacción 𝛌.  La heterogeneidad en la tasa de transacción de los clientes, 𝛌, sigue una distribución Gamma (𝑟, 𝛼).
  • 27.  Después de una transacción cualquiera, un cliente se convierte en inactivo con probabilidad 𝒑. Por lo tanto, el punto en el que un cliente abandona se distribuye a lo largo de varias transacciones de acuerdo a una distribución geométrica pmf* (arriba).  La heterogeneidad en la tasa de abandono, sigue una distribución Beta (a,b). • PMF = Probability Mass Function
  • 29. Simplificando al máximo (ver memoria y referencias), para una implementación paramétrica rápida, se puede obtener la función de probabilidad del modelo como 𝓛 𝒓, 𝜶, 𝒂, 𝒃 𝒙, 𝒕 𝒙, 𝑻 = 𝑨 𝟏 · 𝑨 𝟐 · 𝑨 𝟑 + 𝜹 𝒙>𝟎 𝑨 𝟒 donde, 𝐴1 = Г 𝑟+𝑥 α 𝑟 Г(𝑟) 𝐴2 = Г 𝑎+𝑏 Г(𝑏+𝑥) Г(𝑏)Г(𝑎+𝑏+𝑥) 𝐴3 = 1 α+𝑇 𝑟+𝑥 𝐴4 = 𝑎 𝑏+𝑥−1 1 α+𝑡 𝑥 𝑟+𝑥
  • 31. Se trasladará todo el desarrollo del modelo matemático (BG/NBD) de Peter S. Fader, como una alternativa al modelo de Pareto/NBD a un notebook de Python a través de la librería Lifetimes 0.2.0.0. desarrollado por Cam Davidson-Pilon, con licencia del MIT, Copyright del 2015.
  • 33. En nuestro estudio, exploraremos el rendimiento del modelo BG/NBD usando datos de las compras de los CDs en la tienda online CDNOW. Calibraremos el modelo usando los datos de las transacciones repetidas para la muestra de 2357 clientes sobre la primera mitad del periodo de 78 semanas y las compras predichas de las siguientes 39.
  • 34.
  • 35.
  • 36. En nuestro notebook de Python, se analizarán la actividad o inactividad del consumidor final, basándonos en un tiempo finito: al cabo de un tiempo concreto la relación con el cliente "morirá". El objetivo será tratar de predecir la frecuencia con la que un potencial cliente visitará nuestra web. Estudiando el histórico de compras, trataremos de predecir la repetición de una compra, el abandono de una aplicación, y calcular el CLTV.
  • 37. Tabla 1: Muestra del dataset cdnow_customers ID Frequency Recency T 1 2 30.43 38.86 2 1 1.71 38.86 3 0 0.00 38.86 4 0 0.00 38.86 5 0 0.00 38.86 En la Tabla 1 observamos una pequeña muestra del dataset cdnow_customers, tenemos:  La frecuencia de compra de los clientes (calculado como el total menos 1).  T el tiempo que lleva el cliente en la empresa, en una unidad de tiempo cualquiera (una semana, en nuestro caso). Es igual al tiempo transcurrido entre la primera y la última compra total.  Recency es el momento de la última compra. Es la diferencia entre la primera y la última compra individual. Nótese que 1 compra tiene una recency de 0. Lo notaremos como 𝑡 𝑥.
  • 39. Figura 1: Matriz de Frecuencias La Matriz de Frecuencias, calcula el número de transacciones esperadas de un cliente en el próximo período, dado su Recency (edad de la última compra) y Frecuency (número de compras repetidas). Observamos que, si un cliente ha realizado más de 25 compras, y su última compra fue cuando llevaba 35 semanas con nosotros, entonces es uno de nuestros mejores clientes (abajo a la derecha del gráfico). Por lo tanto, tiene muchas probabilidades de repetir su consumo inminentemente (color rojo). Por el contrario, se considera que nuestros clientes menos activos son aquellos que hicieron muchas compras repetidas y desaparecen durante semanas. Como observamos en la esquina superior derecha en color azul oscuro.
  • 40. Figura 2: Matriz de frecuencias probabilidad-actividad Otra matriz interesante es la que tenemos en la figura 2. En ella estudiamos la probabilidad de que un cliente permanezca activo en base a su histórico de compras del que obtenemos su frecuency y recency comentados. Observamos, por ejemplo, como el color rojo indica la alta probabilidad de actividad de un cliente ya que han comprado con frecuencia en el pasado y por otra parte ha transcurrido tiempo desde que no nos visitan. Sin embargo, se espera su vuelta.
  • 42. Tabla 2: Ranking de clientes en base a sus compras esperadas. ID Frequency Recency T Predicted_Purchases (Probabilidad) 509 18 35.14 35.86 0.424877 841 19 34.00 34.14 0.474738 1981 17 28.43 28.86 0.486526 157 29 37.71 38.00 0.662396 1516 26 30.96 31.00 0.710623 A continuación haremos una pequeña predicción en base a un histórico de compras y construiremos con ello un ranking de clientes ordenados de menor a mayor número de transacciones esperadas para el próximo período. Nótese que coincide con un creciente frecuency. Observamos por ejemplo como los clientes que han hecho 26 compras, y nos han comprado recientemente, probablemente lo vuelvan a hacer en el próximo período.
  • 43. ¿ES CORRECTA NUESTRA PREDICCIÓN?
  • 44. Figura 3: Histograma para evaluar el ajuste del modelo Hasta el momento hemos predicho y visualizado el comportamiento de nuestros clientes, pero ahora vamos a evaluar si nuestro modelo es bueno o no. Lo primero que haremos será comparar nuestros datos con datos artificiales con los parámetros ajustados del modelo. Se refleja claramente como los datos reales y simulados se alinean bien. Esto prueba que el modelo funciona correctamente para todos los tipos de cliente que realizaron transacciones con diversas frecuencias.
  • 46. Tabla 3: Datos transaccionales Date ID 0 2014-03-08 00:00:00 0 1 2014-05-21 00:00:00 1 2 2014-03-14 00:00:00 2 3 2014-04-09 00:00:00 2 4 2014-05-21 00:00:00 2 La mayoría de las veces los datos que manejamos son transaccionales como vemos en la tabla 3, que desplegamos desde aquí. Incorporamos el tiempo, aunque justo en éste caso no nos da mucha información. Lo significativo es la transformación. Utilizaremos algunas funciones interesantes para transformar esos datos transaccionales (una fila por compra) en datos agregados (un dataset que combine frecuency, antigüedad del cliente y recency).
  • 48. Tabla 4: Nuevos datos agregados transformados ID Frequency Recency T 0 0 0 298 1 0 0 224 2 6 142 292 3 0 0 147 4 2 9 183 Con lo anterior, obtenemos un nuevo dataset de datos agregados.
  • 50. Predicciones del cliente individual Basándonos en el histórico de compras del cliente, haremos una predicción las futuras compras. En el ejemplo, la probabilidad de que un individuo vuelva a repetir la compra en base a los nuestros parámetros comentados (t, frecuency, recency y T) es de 0.05765. t = 10 #Predicción de compras para los próximos 10 periodos individual = summary.iloc[20] # La función de abajo es un alias de `bfg.conditional_expected_number_of_purchases_up_to_time` bgf.predict(t, individual['frequency'], individual['recency'], individual['T']) 0.057651166220182973
  • 51. Figura 5: Probabilidad de actividad de un cliente frente a sus compras efectivas. Dado un histórico de compras del cliente, podemos calcular su probabilidad de estar activo, de acuerdo al modelo que acabamos de entrenar. A continuación, el ejemplo. En la figura 5 podemos observar el histórico de actividad que refleja las compras de un cliente individual (id = 35) que lleva 200 días realizando compras en nuestra web a la vez que visualizamos su probabilidad estimada de estar activo.
  • 53. Segundo ajuste del modelo A continuación, vamos a evaluar el rendimiento de nuestro modelo ya parametrizado. Normalmente, la observación del sobreajuste, es decir, la falta de generalización, pasa lógicamente por utilizar una muestra para la modelización/entrenamiento (también llamado training o calibration en nuestro caso), distinta a la utilizada para la evaluación/prueba (test o holdout). El ratio de acierto (o la medida que se utilice para la evaluación) obtenida en la muestra de training o calibration (acierto aparente) se comparará con la obtenida en la muestra de test o holdout. Con nuestros datos transaccionales, podemos particionar el dataset en un calibration period dataset y un dataset de validación o test (houldout dataset). Esto es importante porque queremos comprobar el funcionamiento de nuestro modelo con datos no vistos hasta el momento (cross-validation). A continuación utilizamos una función para particionar el dataset hasta las dos fechas determinadas del 2014 que vemos a continuación.
  • 54. Tabla 5: Dataset dividido en calibration period dataset y houldout dataset. ID Frequency_Cal Recency_Cal T_Cal Frequency_Holdout Duration_Holdout 0 0 0 177 0 121 1 0 0 103 0 121 2 6 142 171 0 121 3 0 0 26 0 121 4 2 9 62 0 121 A partir de aquí, vemos como particiona el dataset en dos subconjuntos con sus respectivas recency y frecuency para nuestras pruebas. Es sólo la cabecera, pero nos sirve para visualizar lo que hacemos. En general, se tratará de general muestras de training y test lo suficientemente amplias como para garantizar que la evaluación en ambas es confiable.
  • 57. Figura 4: Evaluación de la capacidad predictiva de nuestro modelo. Salvando las limitaciones y el riesgo que supone la utilización de una única muestra de entrenamiento y otra de validación, comprobamos que nuestro modelo predice bastante bien frente a nuestros datos de prueba. En la figura 4, estamos comparando las compras reales del conjunto de test con sus compras predichas, y evaluando si se ajustan bien. Parece que, para compras elevadas, difieren más (de la quinta a la sexta compra), el modelo pierde capacidad predictiva.
  • 59. Customer_id Frequency Recency T Monetary_value 1 2 30.43 38.86 22.35 2 1 1.71 38.86 11.77 6 7 29.43 38.86 73.74 7 1 5.00 38.86 11.77 9 2 35.71 38.86 25.55 Tabla 6: Nuevo dataset transformado Hasta este momento no hemos tenido en cuenta el valor económico de cada compra y nos hemos enfocado principalmente en la existencia de estas transacciones. Para estimar esto podemos usar el sub-modelo Gamma-Gamma. Pero primero necesitamos crear datos agregados de datos transaccionales que también contengan valores económicos de estas transacciones (por ejemplo, beneficios o ingresos). En la tabla 6 apreciamos mejor esa transformación.
  • 61. ¿HAY RELACIÓN ENTRE EL VALOR MONETARIO Y LA FRECUENCIA DE COMPRA?
  • 62. El sub modelo Gamma-Gamma y el supuesto de independencia El modelo que vamos a usar para estimar para el CLV para nuestra base de datos de clientes se llama sub-modelo Gamma-Gamma, que es necesario para incluir los valores monetarios que expondremos a continuación. El submodelo Gamma-Gamma supone que no hay relación entre el valor monetario y la frecuencia de compra. En la práctica, vamos a comprobar primero si el coeficiente de correlación de Pearson entre los dos vectores se aproxima a cero para poder usar éste modelo.
  • 63. Monetary_value Frequency Monetary_value 1.000000 0.113884 Frequency 0.113884 1.000000 Tabla 7: Coeficiente de correlación entre el valor monetario y la frecuencia de compra. Confirmamos que no hay relación entre el precio de los bienes de nuestro dataset y su frecuencia de compra. Parece que el precio determina poco la compra. Obviamente esto sería muy característico del tipo de bien que estudiamos. Para éste caso concreto, la correlación es muy baja. A partir de aquí, entrenaremos nuestro submodelo Gamma-Gamma y trataremos de predecir el valor esperado medio de nuestros clientes.
  • 65. BUENO. ESO NOS DICEN NUESTROS DATOS.
  • 68. De los 2357 individuos en nuestro dataset, 946 hicieron como mínimo una compra, y es con los que hemos trabajado para concluir que por el método de máxima verosimilitud, los valores de los tres parámetros de nuestro modelo (p, q, 𝛾) son (6.25, 3.74, 15.45) respectivamente. Una vez que tenemos nuestro modelo Gamma-Gamma parametrizado, procedemos a calcular el CLV que debe de exponerse en unidades monetarias. from lifetimes import GammaGammaFitter ggf = GammaGammaFitter(penalizer_coef = 0) ggf.fit(returning_customers_summary['frequency'], returning_customers_summary['monetary_value']) print ggf <lifetimes.GammaGammaFitter: fitted with 946 subjects, p: 6.25, q: 3.74, v: 15.45>
  • 69. Customer_ID CLV 1 24.658617 2 18.911481 3 35.171002 4 35.171002 5 35.171002 Tabla 8: CLV esperado por cliente (Modelo BD/NBD) Finalmente en la tabla 8 obtenemos el CLV esperado por cada cliente para la empresa de nuestro dataset.
  • 70. Ahora ya podemos mostrar el resultado del valor medio del CLV de nuestros clientes (averange Customer Lifetime Value) como sigue. Resultando un beneficio medio esperado por cliente de 35.25 unidades monetarias, y un beneficio medio de 35.07 u.m. Lo que los aproxima mucho, concluyendo con la fiabilidad de la predicción. Para hacer una comparación entre los dos métodos, ahora vamos a calcular el CLV total usando el método de DFC (discounted cash flows) ajustado para el coste del capital con una tasa de descuento de 0.7. print "Expected conditional average profit: %s, Average profit: %s" % ( ggf.conditional_expected_average_profit( summary_with_money_value['frequency'], summary_with_money_value['monetary_value'] ).mean(), summary_with_money_value[summary_with_money_value['frequency']>0]['monetary_value'].mean() ) Expected conditional average profit: 35.2529582528, Average profit: 35.078551797
  • 72. Customer_ID CLV 1 27.535073 2 3.568359 3 6.598023 4 6.598023 5 6.598023 6 210.596295 7 5.294988 8 6.598023 9 32.905050 10 6.598023 Tabla 9: CLV por el método de DFC. En la tabla 9 observamos el Customer Lifetime Value en valores monetarios para cada cliente, con el método del DFC. Así, observamos que hay significativas diferencias entre los valores de unos clientes y otros. Pero sobretodo, entre unos modelos y otros.
  • 73. Customer_ID CLV 1 27.535073 2 3.568359 3 6.598023 4 6.598023 5 6.598023 6 210.596295 7 5.294988 8 6.598023 9 32.905050 10 6.598023 Tabla 9: CLV por el método de DFC. Customer_ID CLV 1 24.658617 2 18.911481 3 35.171002 4 35.171002 5 35.171002 Tabla 8: CLV esperado por cliente (Modelo BD/NBD) COMPARATIVA
  • 74. RETOS
  • 75.  En nuestro modelo, el reto es diferenciar los clientes inactivos (clientes que han abandonado definitivamente la empresa), de los considerados activos en el pasado pero que no han abandonado del todo la empresa.  Y en general, extraer más valor de los datos transaccionales de los cuales las empresas si tienen mucha información.  Fusionar los micro y macro modelos en un contexto coherente.  En definitiva, entender mejor al cliente.
  • 76. IDEAS
  • 77.  Hacer modelos más complejos, relacionados y complementarios, basados en la teoría económica.  Incluir a la competencia.  Incluir la experiencia del cliente.
  • 79. La evolución natural será complementar los modelos de riesgo de retención de los clientes con distribuciones binomiales negativas que al fin y al cabo tienen un alto componente estocástico, con modelos económicos mucho más completos.
  • 81. Paloma Cuesta Uría Tutor: José Ramón Dorronsoro Íbero Septiembre 2016