Análisis de supervivencia: una herramienta oculta, pero clave para el marketing

Juan Esteban de la Calle
13 min readDec 19, 2022

--

El análisis de supervivencia es una técnica estadística que se originó en el campo de la medicina para evaluar la probabilidad de sobrevivencia de un paciente con una determinada enfermedad.

Sin embargo, con el tiempo se ha demostrado que esta técnica también puede ser muy útil en el área de marketing para analizar la duración de un determinado evento, como el tiempo que tarda un producto en salir del mercado o el tiempo que transcurre entre la compra de un producto y el reemplazo por otro nuevo. En este artículo, exploraremos cómo el análisis de supervivencia puede ser utilizado para mejorar la toma de decisiones en el área de marketing y cómo puede ser una herramienta valiosa para predecir el éxito en el mercado, la duración de un producto, la lealtad de un cliente, entre otros.

En este artículo discutiremos:

  • Qué es el análisis de supervivencia: En esta sección, profundizaremos más en la definición de análisis de supervivencia y cómo se utiliza para evaluar la duración de un evento.
  • Aplicaciones en marketing: Discutiremos cómo el análisis de supervivencia se ha utilizado en el área de marketing para evaluar la duración de un evento y tomar decisiones informadas.
  • Simulaciones: Cómo se pueden utilizar técnicas de simulación para evaluar cómo diferentes factores pueden afectar la duración de un evento.
  • Caso de uso: En este apartado, presentaremos un ejemplo concreto de cómo se ha utilizado el análisis de supervivencia en el área de marketing, como el caso de predecir la lealtad de un cliente con un producto.
  • Modelos matemáticos: Aquí puedes profundizar en los diferentes modelos matemáticos que se pueden utilizar para evaluar la duración de un evento, como el modelo Kaplan-Meier y la regresión de Cox.
  • Conclusión: En esta última sección, resumiremos los principales puntos de tu artículo y reflexionar sobre la importancia del análisis de supervivencia en el área de marketing.

Qué es el análisis de supervivencia

El análisis de supervivencia es una técnica estadística que se utiliza para evaluar la duración de un evento en el tiempo. Se basa en la función de supervivencia, que es una función matemática que describe la probabilidad de que un evento ocurra en un momento dado.

La función de supervivencia se puede calcular utilizando la siguiente fórmula:

S(t) = P(T > t)

Donde:

  • S(t) es la función de supervivencia en el tiempo t
  • P es la probabilidad
  • T es el tiempo que transcurre hasta que ocurre el evento
  • t es el tiempo en el que se está evaluando la función de supervivencia

Por ejemplo, si una empresa deseara evaluar cuánto tiempo puede durar una relación entre el cliente y la empresa.

El análisis de supervivencia también puede utilizar modelos matemáticos más complejos para evaluar la duración de un evento en función de factores que pueden afectar su duración, el tipo de producto, la edad de los clientes o la incorporación de factores macroeconómicos.

Comparto algunos pasos que permitirán implementar análisis de supervivencia en mercadeo.

  1. Define el evento que quieres evaluar: El primer paso sería definir el evento que quieres evaluar utilizando el análisis de supervivencia. Esto podría ser la duración de una campaña publicitaria, el tiempo de permanencia de un cliente leal, el tiempo hasta que un cliente se convierta en premium o el tiempo hasta la primera adquisición de un producto.
  2. Recopila datos: Una vez que hayas definido el evento que quieres evaluar, necesitarás recopilar datos sobre ese evento. Esto podría incluir información sobre cuándo comenzó el evento, cuándo terminó (si es relevante) y cualquier factor externo que pueda haber afectado su duración.
  3. Aplica la función de supervivencia: Una vez que hayas recopilado los datos necesarios, puedes aplicar la función de supervivencia para evaluar la duración del evento en diferentes momentos del tiempo. Esto te permitirá ver cómo ha cambiado la probabilidad de que el evento ocurra a lo largo del tiempo.
  4. Utiliza modelos matemáticos para evaluar factores que pueden afectar la duración: Si quieres evaluar cómo factores externos, como alguna promoción, el tipo de producto o la edad de los clientes, afectan la duración del evento, puedes utilizar modelos matemáticos más complejos para evaluar estos factores.
  5. Toma decisiones informadas: Finalmente, una vez que hayas evaluado la duración del evento utilizando el análisis de supervivencia, puedes utilizar esta información para tomar decisiones informadas sobre cómo mejorar la eficiencia y el éxito de tu campaña o producto.

El análisis de supervivencia es una técnica estadística que puede utilizarse en diferentes niveles de complejidad. Por un lado, tenemos el modelo Kaplan-Meier, que es el más sencillo y se utiliza para evaluar la duración de un evento sin tener en cuenta los factores que pueden afectar su duración. Por otro lado, tenemos modelos más avanzados como la regresión de Cox y XGBoost, que permiten evaluar la duración de un evento teniendo en cuenta diferentes factores que pueden afectar su duración.

Aplicaciones del análisis de supervivencia en marketing

Algunos ejemplos de aplicaciones de análisis de supervivencia en marketing podrían ser:

  1. Analizar el tiempo que tardan los clientes en volver a comprar un producto o servicio, con el fin de determinar la efectividad de las estrategias de fidelización.
  2. Estudiar la tasa de abandono de clientes en diferentes etapas del ciclo de vida del producto, para identificar puntos de intervención y mejorar la retención.
  3. Utilizar el análisis de supervivencia para evaluar la efectividad de campañas de publicidad y promoción, comparando el tiempo que tardan los clientes en realizar una compra después de haber visto el anuncio con el tiempo que tardan los que no lo han visto.
  4. Analizar el tiempo que tardan los usuarios en abandonar una plataforma o servicio en línea, con el fin de identificar problemas de usabilidad o de experiencia de usuario y mejorar la retención de usuarios.
  5. Analizar el tiempo hasta que el cliente adquiera por primera vez un producto

Algunas posibles preguntas que podría ayudar a responder este tipo de análisis serían:

  • ¿Cuál es el tiempo promedio que transcurre desde que un cliente se registra en una plataforma hasta que realiza su primera compra?
  • ¿Existen diferencias significativas en el tiempo hasta la primera compra entre diferentes grupos de clientes (por ejemplo, según su edad, género o ubicación geográfica)?
  • ¿Qué factores parecen influir en el tiempo hasta la primera compra (por ejemplo, el tipo de producto, el precio, la frecuencia de visitas a la plataforma, etc.)?

Este tipo de análisis podría ser útil para identificar oportunidades de mejora en el proceso de conversión de clientes potenciales en compradores efectivos.

Simulación

A continuación se presenta un código en Python que simula datos de supervivencia para dos poblaciones con diferentes comportamientos (grupo A y grupo B) y que incluye datos censurados. Además, se muestra un gráfico de Kaplan-Meier (kmf.plot()) para visualizar los datos de supervivencia. El código utiliza la librería numpy para generar datos aleatorios y la librería pandas para crear y manipular dataframes. También se utiliza la librería lifelines para realizar el análisis de supervivencia y graficar los resultados. Este código puede ser útil para entender cómo funciona el análisis de supervivencia y cómo se pueden generar y visualizar datos de supervivencia en Python.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Crea una función para generar datos de supervivencia
def generate_survival_data(n_samples, group, censor_prob):
# Inicializa el tiempo de supervivencia y el estado de censura
survival_time = np.zeros(n_samples)
censored = np.zeros(n_samples)

# Genera datos de supervivencia para cada muestra
for i in range(n_samples):
# Asigna el tiempo de supervivencia aleatoriamente según la distribución exponencial
survival_time[i] = np.random.exponential(group)
# Asigna el estado de censura aleatoriamente con probabilidad censor_prob
censored[i] = np.random.binomial(1, censor_prob)

# Crea un dataframe con los datos generados
df = pd.DataFrame({'time': survival_time, 'censored': censored, 'group': group})
return df

# Genera los datos de supervivencia para el grupo A
n_samples_A = 500
group_A = 1.5
censor_prob_A = 0.2
df_A = generate_survival_data(n_samples_A, group_A, censor_prob_A)

# Genera los datos de supervivencia para el grupo B
n_samples_B = 100
group_B = 3
censor_prob_B = 0.1
df_B = generate_survival_data(n_samples_B, group_B, censor_prob_B)

# Concatena ambos dataframes
df = pd.concat([df_A, df_B])

# Visualiza los datos de supervivencia con un gráfico de Kaplan-Meier
from lifelines import KaplanMeierFitter
kmf = KaplanMeierFitter()

# Filtra los datos por grupo
group_A_data = df[df['group'] == group_A]
group_B_data = df[df['group'] == group_B]

# Grafica los datos para cada grupo
kmf.fit(group_A_data['time'], group_A_data['censored'], label='Grupo A')
kmf.plot(ci_show=False)
kmf.fit(group_B_data['time'], group_B_data['censored'], label='Grupo B')
kmf.plot(ci_show=False)

# Muestra el gráfico
plt.show()

Como resultado, podemos ver que grupos diferentes pueden tener funciones de supervivencia diferentes.

Lo que nos interesa en el análisis de supervivencia es precisamente encontrar variables que diferencian el comportamiento de las poblaciones entre sí.

Gráfico de la simulación de tiempos de supervivencia

Caso de uso y Modelos Matemáticos

Imagine que una empresa de telecomunicaciones desea evaluar la retención de clientes en su servicio de suscripción de televisión por cable.

La empresa puede utilizar el análisis de supervivencia para determinar el tiempo promedio que transcurre entre el momento en que un cliente adquiere el servicio y el momento en que deja de utilizarlo o lo reemplaza con otro proveedor.

Para llevar a cabo el análisis, la empresa puede recopilar datos sobre el tiempo que transcurre entre la adquisición del servicio y la cancelación o reemplazo por parte de cada cliente. Estos datos se pueden utilizar para calcular tasas de supervivencia y para generar gráficos de supervivencia que muestren la tasa de retención de clientes a lo largo del tiempo.

Con esta información, la empresa puede identificar patrones en la retención de clientes y tomar medidas para mejorarla. Por ejemplo, puede ofrecer descuentos o promociones a los clientes que estén a punto de cancelar o reemplazar el servicio, o puede mejorar la calidad del servicio para evitar que los clientes lo abandonen.

Curva de Kaplan — Meier

La curva de Kaplan-Meier es una gráfica utilizada en el análisis de supervivencia para representar la tasa de supervivencia de una población a lo largo del tiempo. Esta curva se construye a partir de los datos de tiempo de supervivencia y eventos observados de una población.

Curva de Kaplan Meier para el caso de uso

Método de Kaplan-Meier estratificado

En algunos casos, es posible que existan diferencias en la tasa de supervivencia entre diferentes grupos o segmentos de clientes. Por ejemplo, podría haber diferencias en la tasa de supervivencia entre clientes de diferentes ciudades, o entre clientes con diferentes niveles de ingreso o edad. Estas diferencias pueden deberse a diversos factores, como diferencias en el uso del producto o servicio, en la satisfacción del cliente o en la competencia del mercado.

Para evaluar estas diferencias, se pueden utilizar modelos de supervivencia que permiten comparar la tasa de supervivencia entre diferentes grupos o segmentos de clientes. Esto puede ser útil para identificar oportunidades de mejora en la retención de clientes y tomar medidas para aumentarla.

Para ilustrar estas diferencias, es posible graficar las curvas de grupos de poblaciones e hipotetizar si son diferentes o no.

Curva de Kaplan Meier estratificada por ciudad

El test estadístico más comúnmente utilizado para evaluar si la supervivencia de dos poblaciones es diferente o igual es el test de Log-Rank. Este test es una prueba no paramétrica que se utiliza para comparar la tasa de supervivencia entre dos o más grupos de individuos.

Para utilizar el test de Log-Rank, se necesita un conjunto de datos que incluya el tiempo de supervivencia de cada individuo y una variable que indique si se ha producido o no el evento de interés (por ejemplo, si el individuo ha cancelado el servicio o ha sido reemplazado por otro). Luego, se puede aplicar el test de Log-Rank para comparar la tasa de supervivencia entre los diferentes grupos de individuos.

El test de Log-Rank es una prueba de hipótesis, lo que significa que se utiliza para evaluar si es más probable que la diferencia en la tasa de supervivencia entre los grupos sea debido al azar o a una diferencia real entre los grupos. Si el p-valor obtenido es menor que un umbral establecido previamente (por ejemplo, 0.05), se puede concluir que existe una diferencia significativa en la tasa de supervivencia entre los grupos.

Mediante un corto código, podemos obtener el resultado de la prueba de hipótesis

from lifelines.statistics import pairwise_logrank_test
pairwise_logrank_test(df['tiempo'], df['ciudad'], event_observed=df['evento'], t_0=-1)
Test de log-rank por pares para el caso de uso

Es posible observar en el resultado, que entre Bogotá y Cali hay diferencia significativa, lo mismo que entre Bogotá y Medellín, y entre Medellín y Cali.

Regresión de Cox

La función de riesgo de Cox se utiliza para estimar el riesgo relativo de un evento en función de las covariables predictoras. Por ejemplo, si se quiere evaluar el efecto del ingreso en el tiempo hasta que un cliente decida adquirir un producto, se puede utilizar un modelo de regresión de Cox con el tiempo de supervivencia como la variable dependiente y variables categóricas, continuas o discretas como variables predictoras. El modelo estimará la función de riesgo de Cox y proporcionará una medida del riesgo relativo de adquisición del producto, por supuesto, no se debe entender “riesgo” en su connotación negativa, sino más bien como un aumento o disminución de la probabilidad de que suceda.

La regresión de Cox se utiliza a menudo para analizar datos de supervivencia en marketing, ya que permite controlar el efecto de diferentes covariables en el riesgo de eventos y proporciona medidas de riesgo relativo. Es importante tener en cuenta que el modelo de regresión de Cox supone que la relación entre el tiempo de supervivencia y las covariables es lineal en los logaritmos del riesgo, lo que puede no ser cierto en todos los casos.

Intentaremos algunos modelos que permitirán utilizar la regresión de Cox

import pandas as pd
from lifelines import CoxPHFitter

# Crea un dataframe con la información de tiempo, evento y covariables
df_cox = pd.DataFrame({'tiempo': df['tiempo'], 'evento': df['evento'], 'ingreso': df['ingreso'], 'score': df['score']})

# Crea una columna dummie para la ciudad, eliminando una de las categorías para evitar multicolinealidad perfecta
df_cox = pd.get_dummies(df, columns=['ciudad'], drop_first=True)

# Crea un objeto CoxPHFitter
cph = CoxPHFitter()

# Realiza la regresión de Cox
results = cph.fit(df_cox, 'tiempo', 'evento', show_progress=True)

# Imprime los resultados
print(results.print_summary())

El código anterior permitirá utilizar la función CoxPHFitter() para estimar un modelo cuya función de riesgo de hazard sea lineal.

Resultados del primer modelo de Cox

Sin embargo, observamos que el coeficiente asociado al ingreso tiene valor que aparentemente es 0, pero a su vez, es significativo. Procederemos entonces a crear un modelo alternativo pero con Ln(Ingreso) como variable, esperando encontrar números que permitan un mejor análisis.

Estos son los resultados:

Segundo modelo de Cox Proportional Hazards

Aquí ya tenemos un modelo deseable, con un Concordance (métrica más utilizada) de 0.69. Sin embargo, aún puede mejorar si descartamos del modelo la variable score, que no representa significancia para nuestro análisis.

Tercer modelo de CoxPH, definitivo

Adjuntamos una gráfica de intervalo de confianza.

log(Hazard Ratio) en términos de cada variable

Interpretación

Una vez que se ha ajustado el modelo de regresión de CoxPH a tus datos, puedes obtener los resultados del modelo y utilizarlos para hacer predicciones y evaluar el impacto de las variables predictoras en el hazard de supervivencia.

A continuación, te presento algunos de los resultados más comunes de la regresión de CoxPH y cómo se pueden interpretar:

  • Coeficientes de regresión: Los coeficientes de regresión (también conocidos como parámetros de hazard) representan el impacto de cada variable predictora en el hazard de supervivencia. Por ejemplo, si el coeficiente de regresión para los ingresos es positivo, significa que el hazard de supervivencia aumenta con los ingresos.
  • Valores p: Los valores p (también conocidos como niveles de significancia) indican la probabilidad de que los coeficientes de regresión sean cero (es decir, que no haya una relación significativa entre la variable predictora y el hazard de supervivencia). Si el valor p es menor que un cierto umbral (por ejemplo, 0.05), se considera que hay una relación significativa entre la variable predictora y el hazard de supervivencia.
  • R cuadrado: El R cuadrado (también conocido como el coeficiente de determinación) es una medida de qué tan bien el modelo de regresión de CoxPH explica la variabilidad de los datos. Un R cuadrado cercano a 1 indica que el modelo explica muy bien los datos, mientras que un R cuadrado cercano a 0 indica que el modelo no explica muy bien los datos.
  • Valor de Wald: El valor de Wald es una medida de la robustez del modelo de regresión de CoxPH. Si el valor de Wald es mayor que un cierto umbral (por ejemplo, 1.96), se considera que el modelo es robusto.
  • Concordance (también conocido como coeficiente de concordancia o índice c) es una medida que se utiliza para evaluar la bondad de ajuste de un modelo de regresión de supervivencia. El concordance mide cuánto de acuerdo están los resultados del modelo con los resultados observados en los datos.
  • Suelen usarse también otros índices de bondad de ajuste, como el índice de información de Akaike (AIC) o el índice de información de Bayes (BIC). Estos índices también se utilizan para evaluar la bondad de ajuste de los modelos, pero tienen en cuenta el número de parámetros del modelo y el tamaño de la muestra.

Conclusión

El análisis de supervivencia es una técnica estadística que se utiliza para analizar el tiempo que transcurre hasta que ocurre un evento determinado, como la compra de un producto, la cancelación de un servicio o la abandono de una empresa. Esta herramienta es muy útil en el ámbito del marketing, ya que permite a las empresas entender cómo los diferentes factores, como la edad, el género, la ubicación geográfica, etc., afectan la duración del ciclo de vida de un cliente.

El análisis de supervivencia también se conoce como análisis de tiempo de vida o análisis de duración. Se basa en el concepto de tasa de supervivencia, que mide la probabilidad de que un individuo sobreviva durante un período de tiempo determinado. La tasa de supervivencia se puede calcular utilizando una función de supervivencia, que se representa gráficamente mediante una curva de Kaplan-Meier y otros análisis más complejos.

En resumen, el análisis de supervivencia es una herramienta clave para el marketing, ya que permite a las empresas entender cómo diferentes factores afectan la duración del ciclo de vida de un cliente y cómo se pueden mejorar las estrategias de marketing para retener a los clientes por más tiempo, o bien acelerar eventos deseados de alguna forma, entre otros.

--

--

Juan Esteban de la Calle
Juan Esteban de la Calle

Written by Juan Esteban de la Calle

Passionate about data, science & data science

No responses yet