K_DM Book
ES

Ve la retencion de un vistazo con un mapa de calor de cohortes

6.7.19

Ve la retencion de un vistazo con un mapa de calor de cohortes

Actualizado 2020-10-07 Lectura 1 min

En el analisis de retencion, un heatmap que muestra cohortes y meses transcurridos es un clasico. Bandas verticales u horizontales pueden indicar problemas en periodos especificos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

cohorts = ["2024-01", "2024-02", "2024-03", "2024-04", "2024-05", "2024-06"]
months = [f"Mes {m}" for m in range(1, 7)]
rng = np.random.default_rng(21)
base = np.linspace(0.7, 0.4, num=6)
matrix = np.vstack(
    [
        np.clip(base - idx * 0.03 + rng.normal(0, 0.01, size=base.size), 0.1, 0.9)
        for idx in range(len(cohorts))
    ]
)

fig, ax = plt.subplots(figsize=(6.4, 3.8))
im = ax.imshow(matrix, cmap="YlGnBu", vmin=0, vmax=1)

ax.set_xticks(range(len(months)), labels=months)
ax.set_yticks(range(len(cohorts)), labels=cohorts)
ax.set_title("Mapa de calor de cohortes de retencion")

for i in range(matrix.shape[0]):
    for j in range(matrix.shape[1]):
        ax.text(j, i, f"{matrix[i, j]*100:.0f}%", ha="center", va="center", fontsize=9)

cbar = fig.colorbar(im, ax=ax, fraction=0.045, pad=0.02)
cbar.set_label("Tasa de retencion")
ax.set_xlabel("Meses desde adquisicion")
ax.set_ylabel("Cohorte de adquisicion")

fig.tight_layout()

plt.show()

Las bandas pueden revelar problemas por periodo.

Consejos de lectura #

  • Si una cohorte cae de golpe, puede haber un problema en el mes de adquisicion.
  • Cambios horizontales sugieren retos del ciclo de vida del producto.
  • Mostrar porcentajes evita depender solo del color.