Cuarto artículo de la parte técnica de la serie sobre retención. Hasta ahora hemos predicho quién se va y entendido por qué. Aquí incorporamos la dimensión temporal: cuándo es máximo el riesgo y cómo eso decide el momento de intervenir. Seguimos con Ficticia Commerce.
Por qué un modelo de clasificación no basta
Los modelos que hemos construido hasta ahora —Random Forest, XGBoost— responden a una pregunta binaria: ¿este cliente va a abandonar, sí o no? Es una pregunta útil, pero incompleta. Tratan el churn como un evento que ocurre o no ocurre, sin ubicarlo en el tiempo, como si todos los clientes en riesgo fueran a marcharse en el mismo plazo indefinido. La realidad es que el riesgo de abandono no es constante a lo largo de la relación: cambia, y mucho, según cuánto lleve el cliente contigo.
El análisis de supervivencia parte de una concepción distinta del problema. En lugar de preguntar si el cliente se irá, modela el tiempo hasta que se va. No produce una etiqueta, produce una trayectoria: cómo evoluciona la probabilidad de que un cliente siga activo a medida que pasan los meses. Esa trayectoria es exactamente lo que necesitas para decidir no solo a quién retener, sino cuándo concentrar el esfuerzo.
Analogía
Un modelo de clasificación es como un médico que te dice si estás enfermo. El análisis de supervivencia es el que te dice en qué fase de la enfermedad estás y cuándo es crítico intervenir. Saber que un paciente está en riesgo sirve de poco si no sabes si el momento decisivo es hoy o dentro de un año: el tratamiento, y su urgencia, dependen por completo de esa información temporal.
El problema de los datos censurados
Hay una razón técnica por la que el churn temporal no se puede modelar con herramientas estadísticas convencionales, y es un concepto que conviene entender bien: la censura. Cuando analizas tu base de clientes en un momento dado, muchos de ellos siguen activos. No han abandonado, pero eso no significa que no vayan a hacerlo: simplemente, todavía no ha ocurrido. Su tiempo de vida real es desconocido porque la relación sigue en curso.
A estos clientes se les llama censurados por la derecha, y descartarlos del análisis sería un error grave: estarías tirando información de tus clientes más fieles, precisamente los que más han durado. El análisis de supervivencia está diseñado específicamente para incorporar a estos clientes en el cálculo sin saber cuándo se irán. Sabe extraer información de un «sigue activo a los 18 meses» tanto como de un «abandonó a los 6», y esa capacidad es lo que lo hace único frente a cualquier otra técnica.
Censura por la derecha
Un cliente que sigue activo no es un dato incompleto que haya que descartar: es información valiosa sobre cuánto duran las relaciones. El análisis de supervivencia es la única familia de técnicas que sabe aprender de clientes cuyo final aún no ha ocurrido, y por eso es la herramienta correcta para modelar el tiempo hasta el abandono.
La curva de Kaplan-Meier
La herramienta central del análisis de supervivencia es el estimador de Kaplan-Meier, que produce la curva de supervivencia: una representación de la probabilidad de que un cliente siga activo en función del tiempo transcurrido desde que empezó la relación. Empieza en 1 —al inicio, el 100% de los clientes están activos— y desciende a medida que el tiempo pasa y los clientes van abandonando.
Matemáticamente, la curva se construye como un producto acumulado. En cada momento en que ocurre al menos un abandono, se calcula qué proporción de los clientes que aún estaban activos sobrevive, y se multiplica por la probabilidad acumulada hasta ese punto. La función de supervivencia Ŝ(t) es el resultado de encadenar esas proporciones a lo largo del tiempo, descontando en cada paso a los que se van y manejando con naturalidad a los censurados, que simplemente dejan de contar a partir del momento en que se observan por última vez.
La curva de supervivencia revela que el abandono está concentrado al inicio: la caída más pronunciada ocurre en los primeros 6 meses, y a partir del mes 20 la relación se estabiliza en una meseta de bajo riesgo.
Lo que la curva revela: el churn está concentrado al inicio
Cuando se aplica el análisis de supervivencia a una base de clientes de ecommerce, aparece un patrón que se repite con notable consistencia y que tiene consecuencias directas para la estrategia. La curva no desciende de forma uniforme: cae de manera pronunciada al principio y se aplana después. En los datos de referencia, la supervivencia baja del 0,95 al 0,86 durante los primeros seis meses de vida del cliente. Es la zona de máxima pérdida, la que concentra el riesgo más caro de toda la relación.
A partir de ahí el descenso se ralentiza, y alrededor del mes 20 la curva alcanza una meseta —un plateau— que se estabiliza en torno al 0,77. Los clientes que superan ese umbral entran en una zona de estabilidad donde la probabilidad de abandono residual es mínima: se han convertido en activos de bajo riesgo. Hay un detalle técnico revelador en muchos de estos análisis: la vida media —el momento en que la supervivencia caería por debajo del 0,50— a menudo ni siquiera se observa en el periodo estudiado, porque la curva nunca baja tanto. Eso indica una base de clientes madura sorprendentemente resiliente una vez superado el bache inicial.
El churn, en otras palabras, está front-loaded: cargado al principio. Esto conecta directamente con lo que vimos al analizar cuánto cuesta perder un cliente: el abandono temprano es el más caro porque ocurre antes de amortizar el coste de adquisición. La curva de supervivencia no solo confirma esa intuición, la cuantifica y la ubica en el tiempo: el dinero que pierdes por churn se concentra justo en la ventana donde el cliente aún no ha empezado a ser rentable.
Implementación con lifelines
En Python, el análisis de supervivencia se resuelve con la librería lifelines, diseñada específicamente para este tipo de modelado. El estimador de Kaplan-Meier necesita dos columnas por cliente: la duración observada de la relación y un indicador de si el cliente ha abandonado o sigue activo —es decir, si el evento ha ocurrido o el dato está censurado. Sobre el histórico de Ficticia Commerce, el cálculo y la lectura de la curva caben en unas pocas líneas.
import pandas as pd
from lifelines import KaplanMeierFitter
# Histórico de Ficticia Commerce con duración y estado de cada cliente
df = pd.read_csv("clientes_ficticia_commerce.csv")
# duracion: meses observados de relación
# churn: 1 si abandonó (evento), 0 si sigue activo (censurado)
duracion = df["antiguedad_meses"]
evento = df["churn"]
kmf = KaplanMeierFitter()
kmf.fit(duracion, event_observed=evento)
# Probabilidad de seguir activo en momentos clave del ciclo de vida
for mes in [6, 12, 20, 36]:
s = kmf.predict(mes)
print(f"Supervivencia al mes {mes}: {s:.3f}")
# Visualización de la curva completa con intervalo de confianza
kmf.plot_survival_function()
El método fit hace todo el trabajo estadístico, incluido el manejo de los clientes censurados a través del parámetro event_observed: los que tienen un 0 se incorporan al cálculo como casos cuyo final no se ha observado, sin distorsionar la curva. El bucle predict extrae la probabilidad de supervivencia en los momentos que te interesan del ciclo de vida, y es ahí donde se materializa el valor operativo: ver que la supervivencia al mes 6 es notablemente más baja que al mes 36 te dice, con un número concreto, dónde está tu ventana de riesgo.
Segmentar la curva: no todos los clientes envejecen igual
La verdadera potencia analítica aparece cuando dejas de mirar una única curva global y empiezas a comparar curvas entre segmentos. lifelines permite ajustar una curva de Kaplan-Meier por grupo y superponerlas: clientes que llegaron por un canal frente a otro, los que tuvieron una incidencia temprana frente a los que no, los de ticket alto frente a los de ticket bajo. Las diferencias entre esas curvas revelan qué perfiles tienen ventanas de riesgo distintas y, por tanto, requieren calendarios de intervención distintos.
Cuando dos curvas se separan visiblemente, la pregunta inmediata es si esa diferencia es estadísticamente real o producto del azar. Para eso existe el test de log-rank, que compara curvas de supervivencia y te dice si la divergencia es significativa. Es la herramienta que convierte una observación visual —»parece que los clientes de este canal duran menos»— en una conclusión defendible sobre la que asignar presupuesto.
Del análisis a la acción
La curva de supervivencia transforma la retención de reactiva en planificada. Si sabes que el riesgo se concentra en los primeros seis meses, dejas de repartir el esfuerzo de retención de forma uniforme y lo concentras donde de verdad mueve la aguja: el onboarding. Es la diferencia entre gastar en todos los clientes por igual y gastar cuando y donde el retorno es máximo.
El análisis de supervivencia añade la dimensión que faltaba: ya no solo sabemos quién se va y por qué, sino cuándo es máximo el riesgo y, por tanto, cuándo intervenir. Pero todo lo que hemos construido —la clasificación, la explicabilidad, la supervivencia— se apoya en una suposición que aún no hemos examinado a fondo y que puede estar saboteando los modelos en silencio. Si los clientes que abandonan son una minoría frente a los que se quedan, ¿cómo afecta ese desequilibrio a lo que el modelo aprende, y por qué puede estar mintiéndote aunque sus métricas parezcan buenas?
¿Te ha resultado útil?
¿Tienes un problema que
los datos podrían resolver?
Sin formularios largos. Una conversación de 30 minutos para ver si tiene sentido.
Hablamos