Cálculo de métricas de retención y abandono
Desliza para mostrar el menú
Las métricas de retención y abandono son herramientas esenciales en el análisis de cohortes, ya que permiten medir qué tan bien tu producto retiene a los usuarios a lo largo del tiempo y en qué momentos puedes estar perdiéndolos. La tasa de retención cuantifica el porcentaje de usuarios de una cohorte que permanecen activos después de un período determinado. La tasa de abandono es el complemento, mostrando el porcentaje de usuarios que han dejado de interactuar. La tasa de supervivencia rastrea la probabilidad de que un usuario permanezca activo hasta cada período, proporcionando una visión de la longevidad del usuario.
Fórmulas:
- Tasa de retención (en el período n):
Retention Rate = (Number of users active in period n) / (Number of users in cohort at period 0); - Tasa de abandono (en el período n):
Churn Rate = 1 - Retention Rate (at period n); - Tasa de supervivencia (en el período n):
Survival Rate = (Number of users still active at period n) / (Number of users in cohort at period 0).
Estas métricas suelen visualizarse mediante curvas de retención o gráficos de supervivencia, que ayudan a identificar rápidamente patrones, como caídas pronunciadas o períodos de estabilidad. Al rastrear estas tasas en múltiples cohortes y períodos de tiempo, es posible identificar estrategias de engagement exitosas y áreas que requieren mejoras.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566import pandas as pd import numpy as np import matplotlib.pyplot as plt # Example cohort data: each row is a user, columns are activity in each month (1 = active, 0 = inactive) data = { "user_id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "cohort_month": ["2023-01"] * 5 + ["2023-02"] * 5, "month_0": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], # All users active at signup "month_1": [1, 0, 1, 1, 0, 1, 1, 0, 1, 1], "month_2": [1, 0, 0, 1, 0, 1, 0, 0, 1, 0], "month_3": [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], } df = pd.DataFrame(data) # Calculating retention, churn, and survival rates for each cohort results = [] for cohort, group in df.groupby("cohort_month"): cohort_size = len(group) retention = [] churn = [] survival = [] users_remaining = cohort_size for month in ["month_0", "month_1", "month_2", "month_3"]: active = group[month].sum() retention_rate = active / cohort_size retention.append(retention_rate) churn.append(1 - retention_rate) survival.append(users_remaining / cohort_size) users_remaining = active # Update for next period results.append({ "cohort_month": cohort, "retention": retention, "churn": churn, "survival": survival, }) # Converting results to DataFrame for plotting metrics_df = pd.DataFrame(results) months = ["month_0", "month_1", "month_2", "month_3"] # Plot retention curves plt.figure(figsize=(10, 5)) for idx, row in metrics_df.iterrows(): plt.plot(months, row["retention"], marker="o", label=f"Cohort {row['cohort_month']}") plt.title("Cohort Retention Curves") plt.xlabel("Months Since Signup") plt.ylabel("Retention Rate") plt.legend() plt.show() # Plot survival curves plt.figure(figsize=(10, 5)) for idx, row in metrics_df.iterrows(): plt.plot(months, row["survival"], marker="o", label=f"Cohort {row['cohort_month']}") plt.title("Cohort Survival Curves") plt.xlabel("Months Since Signup") plt.ylabel("Survival Rate") plt.legend() plt.show() # Printing calculated metrics print(metrics_df[["cohort_month", "retention", "churn", "survival"]])
Este código demuestra cómo calcular y visualizar las tasas de retención, abandono y supervivencia para cohortes de usuarios utilizando pandas y matplotlib en Python.
El objetivo es analizar cómo se comportan los grupos de usuarios (cohortes) a lo largo del tiempo, centrándose en su engagement y longevidad con un producto.
Estructura de los datos:
- Los datos están organizados en un DataFrame donde cada fila representa un usuario;
- Las columnas incluyen un identificador único de usuario, el mes de la cohorte (cuando el usuario se unió) y valores binarios de actividad para cada mes (1 = activo, 0 = inactivo).
Lógica de cálculo:
Para cada cohorte, el código:
- Calcula la tasa de retención para cada mes como la proporción de usuarios que siguen activos en comparación con el tamaño original de la cohorte;
- Calcula la tasa de abandono como el complemento de la retención (1 - tasa de retención);
- Rastrea la tasa de supervivencia, que muestra la probabilidad de que un usuario permanezca activo hasta cada período, actualizando el conteo de usuarios restantes después de cada mes.
Visualización:
- Se grafican las curvas de retención y supervivencia para cada cohorte utilizando matplotlib;
- Estos gráficos permiten comparar visualmente la rapidez con la que los usuarios abandonan (churn) o permanecen comprometidos (retención/supervivencia) entre cohortes y períodos de tiempo, revelando tendencias y patrones en el engagement de los usuarios.
Interpretar las métricas de retención y abandono es fundamental para tomar decisiones empresariales informadas. Altas tasas de retención indican que los usuarios encuentran valor continuo en tu producto, lo que sugiere un fuerte compromiso y un buen ajuste producto-mercado. Por el contrario, altas tasas de abandono pueden señalar problemas como necesidades de usuario no satisfechas, un proceso de incorporación deficiente o presión competitiva. Las curvas de supervivencia ayudan a visualizar la rapidez con la que los cohortes se reducen; caídas pronunciadas pueden revelar cuándo los usuarios suelen perder interés.
Al monitorear regularmente estas métricas, puedes identificar tendencias a lo largo del tiempo y entre diferentes cohortes. Por ejemplo, si el lanzamiento de una nueva función coincide con un aumento en la retención, podría valer la pena invertir más en esa dirección. Por otro lado, si el abandono aumenta tras una actualización específica, podría indicar la necesidad de mejorar el producto o brindar soporte adicional a los usuarios. En última instancia, estas métricas permiten probar hipótesis, optimizar los recorridos de usuario y asignar recursos de manera efectiva.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla