Estadística

Métricas de Tiempo hasta el Evento en Test A/B

Cuando la métrica es un tiempo y no una tasa, la censura distorsiona la media. Cómo leer tiempo hasta el evento con Kaplan-Meier, RMST y log-rank.

Ilustración plana de una línea escalonada que baja de izquierda a derecha sobre una base horizontal, con pequeños círculos en los escalones y trazos verticales cortos que marcan puntos donde la línea se detiene antes del final

Cuando la métrica de tu test es un tiempo, y no una tasa, la media simple miente por construcción: solo consigue sumar a quienes ya tuvieron el evento, y quienes tardan más quedan fuera. En la simulación de esta guía la media ingenua encogió un efecto real de 1,4408 semana a 0,2063 semana, casi siete veces menos, mientras que la curva de Kaplan-Meier y el log-rank leyeron el mismo efecto con z de 10,9053. Esta guía muestra qué es la censura por la derecha, por qué rompe la media y las tasas de retención, cómo leer la curva entera en vez de una rebanada, y cuándo compensa el cambio. Forma parte de nuestra guía completa de test A/B y complementa métrica sustituta y holdout de largo plazo.

El problema: la métrica que importa es un reloj, no un interruptor

La mayoría de las métricas de test A/B son binarias. El usuario compró o no compró. Hizo clic o no hizo clic. Eso funciona muy bien cuando el evento ocurre dentro de la sesión, y por eso la cuenta de dos proporciones domina el mercado.

Solo que buena parte de las decisiones de producto son sobre permanencia, y la permanencia es un reloj. Cuánto tiempo hasta que el usuario cancele. Cuánto tiempo hasta que haga la segunda compra. Cuánto tiempo hasta que pase una semana entera sin abrir la app.

La forma estándar de convertir el reloj en interruptor es elegir una fecha y preguntar “¿estaba activo el día 7?”. Eso resuelve el problema de formato y crea dos problemas nuevos.

El primero es que la fecha es arbitraria. La retención en D7 y la retención en D30 miden cosas distintas, y pueden discrepar. Elegir cuál reportar después de ver las dos es exactamente el tipo de libertad que el plan de análisis preregistrado existe para cerrar.

El segundo es más sutil y es el tema de esta guía: convertir en binario tira a la basura la información de cuánto tiempo. Dos usuarios que cancelaron, uno el día 8 y otro el día 180, entran en la cuenta de “no retenido en D7” con el mismo peso. Y el usuario que sigue activo el último día del test entra como “retenido” sin que nadie sepa si va a durar una semana más o tres años más.

Chandar, St. Thomas, Maystre y coautores, en un trabajo de Spotify presentado en la WWW 2022, tratan ese diseño como un problema de tiempo hasta el evento y proponen una métrica de tiempo hasta la inactividad justamente porque, en sus palabras, el desenlace de retención no es observable al final del test A/B.

Censura por la derecha, en una frase

La censura por la derecha es el usuario que llega al final de la ventana de observación sin haber tenido el evento. Sabes que su tiempo es mayor que la ventana. No sabes cuánto.

Seis usuarios en una ventana de observación de 12 semanas, con eventos y censurasDiagrama con seis líneas horizontales, una por usuario, todas empezando en la semana cero. Cuatro líneas terminan antes del final de la ventana con un círculo lleno, indicando que el evento ocurrió en las semanas 2, 5, 7 y 9. Dos líneas alcanzan la semana 12, el final de la ventana, y terminan con una flecha abierta, indicando censura por la derecha: el evento aún no ocurrió y el tiempo verdadero es desconocido. Una línea vertical discontinua marca el final de la observación en la semana 12, y la leyenda registra que la media calculada solo sobre los círculos llenos ignora las dos líneas con flecha y por eso subestima el tiempo medio.Quien no tuvo el evento hasta el final de la ventana no es un cero, es un desconocidofin de la observación (semana 12)semana 0usuario 1evento en la semana 2usuario 2evento en la semana 5usuario 3censuradousuario 4evento en la semana 7usuario 5evento en la semana 9usuario 6censuradoLa media de los cuatro círculos llenos es 5,75 semanas. Los dos censurados ya duraron 12 y van a durar más.Descartarlos no es neutro: descarta justamente a los más duraderos.
La censura no es dato faltante aleatorio. Elimina sistemáticamente los tiempos largos, así que cualquier media que la ignore nace corta.

Fíjate en el detalle que marca toda la diferencia: los censurados no son un caso aleatorio. Son, por definición, los usuarios que duraron más. Descartarlos es el mismo error de razonamiento de la atrición diferencial, con otro origen: el dato que desaparece no desaparece por casualidad.

Chandar y coautores dan el ejemplo más didáctico que hemos visto de esto. Considera dos cohortes con tiempo medio verdadero hasta la inactividad de 2 y de 36 semanas. Si intentas estimar ese tiempo en la semana 10 ignorando a los censurados, el resultado es una subestimación severa. En la cohorte de 36 semanas, casi nadie ha tenido el evento todavía, y la media se calculará sobre la minoría atípica que salió pronto.

Ejemplo trabajado: el mismo test leído de cuatro maneras

Simulamos un test de retención con 12.000 usuarios por brazo y ventana de observación de 12 semanas. El evento es quedarse una semana entera inactivo. La verdad del mundo simulado: en el control, la probabilidad semanal de quedar inactivo es del 11,0 por ciento; en la variación, del 9,5 por ciento. Es decir, la variación es genuinamente mejor, y es mejor de una forma constante a lo largo del tiempo.

Lectura 1: retención binaria, la que casi todo el mundo usa

La primera lectura es la estándar del mercado: elegir una semana y contar quién seguía activo. Estos números los puedes comprobar ahora en la calculadora:

Calculadora de significancia estadística
Control (A)
Variación (B)
Control (A) · Tasa-
Variación (B) · Tasa-
Mejora relativa-
valor-p-
IC 95% de la diferencia-

Test z bilateral de dos proporciones. "Sin significancia" casi siempre significa que falta muestra, no que las versiones sean iguales.

Pega 12000 visitantes y 7497 conversiones en el control, 12000 y 8080 en la variación, y el resultado es el de la fila de la semana 4 de abajo.

semana leída control variación lift relativo z valor-p IC 95% de la diferencia
semana 2 9.540 / 12.000 (79,5000%) 9.819 / 12.000 (81,8250%) +2,9245% 4,5600 5,12e-6 [1,3261 pp; 3,3239 pp]
semana 4 7.497 / 12.000 (62,4750%) 8.080 / 12.000 (67,3333%) +7,7764% 7,8849 3,11e-15 [3,6523 pp; 6,0644 pp]
semana 8 4.718 / 12.000 (39,3167%) 5.443 / 12.000 (45,3583%) +15,3667% 9,4716 por debajo de 1e-20 [4,7938 pp; 7,2895 pp]

Tres lecturas correctas, tres respuestas distintas. El lift relativo sale como más 2,92 por ciento, más 7,78 por ciento o más 15,37 por ciento dependiendo solo de qué semana elegiste antes de mirar. Ninguna de ellas está equivocada; simplemente responden preguntas distintas.

El problema aparece cuando la elección de la semana no se hizo antes. Ahí tienes tres oportunidades de encontrar un número bonito, y el control de error Tipo I que crees tener no es el que tienes, por el mismo mecanismo descrito en muchas métricas en un test.

Lectura 2: la media ingenua, la que se equivoca feo

La tentación natural de quien quiere salir del binario es calcular el tiempo medio hasta el evento. Y la implementación natural de eso es sumar el tiempo de quienes tuvieron el evento y dividir por la cantidad.

brazo censurados en la semana 12 media ingenua (solo quien tuvo el evento) media verdadera (no observable)
control 2.954 de 12.000 (24,62%) 5,1523 semanas 9,0984 semanas
variación 3.653 de 12.000 (30,44%) 5,3586 semanas 10,5392 semanas
diferencia 5,82 pp más de censura en la variación 0,2063 semana 1,4408 semana

La media ingenua no se equivoca solo en el nivel, se equivoca en el efecto. La diferencia verdadera entre los brazos es de 1,4408 semana, y la media ingenua devuelve 0,2063 semana, cerca de un séptimo. Y el mecanismo es perverso: cuanto mejor es la variación, más usuarios suyos quedan censurados (30,44 por ciento frente a 24,62 por ciento), y más se empuja su media hacia abajo por el descarte. El sesgo trabaja contra exactamente el brazo que querías premiar.

Conviene registrar que la media verdadera de la tabla de arriba solo existe porque esto es una simulación. En un test real es inaccesible: por eso la respuesta no es “calcular bien la media”, es medir otra cosa.

Lectura 3: la curva de Kaplan-Meier

Kaplan-Meier resuelve la censura sin descartar a nadie. La idea es calcular, semana a semana, la probabilidad condicional de sobrevivir a esa semana entre quienes seguían bajo observación, y multiplicar esas probabilidades. Un usuario censurado en la semana 12 contribuye a todas las semanas de 1 a 12 y después simplemente sale del denominador, sin ser contado como evento.

Curvas de Kaplan-Meier del control y de la variación a lo largo de 12 semanasGráfico de líneas escalonadas con el eje horizontal en semanas de cero a doce y el eje vertical en proporción de usuarios todavía activos, de cero a uno. Dos curvas parten de uno en la semana cero y bajan. La curva del control pasa por 0,7950 en la semana 2, 0,6247 en la semana 4, 0,4890 en la semana 6, 0,3932 en la semana 8 y 0,2462 en la semana 12. La curva de la variación queda siempre por encima, pasando por 0,8183 en la semana 2, 0,6733 en la semana 4, 0,5551 en la semana 6, 0,4536 en la semana 8 y 0,3044 en la semana 12. El área entre las dos curvas representa la diferencia de tiempo restringido medio de supervivencia, que es de 0,5423 semana en doce semanas.La curva entera, no una rebanada de ella1,000,750,250,50024681012semanas desde la entrada en el test0,62470,6733variacióncontrolEl área entre las curvas hasta la semana 12 es la diferencia de RMST: 7,3803 menos 6,8380, o 0,5423 semana.Cada escalón usa a todos los que seguían bajo observación esa semana, censurados incluidos.
Kaplan-Meier del mismo test. La curva del control pasa por 0,6247 en la semana 4, que es exactamente la tasa de retención binaria del 62,4750 por ciento de la tabla anterior. La lectura binaria es una rebanada de esta curva.

Fíjate en la coincidencia que no es coincidencia: la curva del control vale 0,6247 en la semana 4, y la retención binaria de la semana 4 dio 62,4750 por ciento. Es el mismo número. La lectura binaria no es una alternativa a la curva, es un punto de ella. Cuando reportas retención en D7, estás reportando un píxel de un gráfico que ya tienes y no miraste.

La tabla completa de las dos curvas:

semana control variación diferencia
1 0,8943 0,9032 +0,0089
2 0,7950 0,8183 +0,0233
4 0,6247 0,6733 +0,0486
6 0,4890 0,5551 +0,0661
8 0,3932 0,4536 +0,0604
10 0,3154 0,3740 +0,0586
12 0,2462 0,3044 +0,0582

Lectura 4: RMST y log-rank, los dos números para reportar

Tener la curva entera es óptimo para entender, y malo para decidir: nadie aprueba un lanzamiento mirando doce pares de números. Dos reducciones resuelven eso.

RMST (tiempo restringido medio de supervivencia) es el área bajo la curva de Kaplan-Meier hasta un horizonte que eliges antes de mirar. Es el tiempo medio de permanencia dentro de esa ventana, y sale en unidad de tiempo:

Fíjate en que 0,5423 es bastante menor que la diferencia verdadera de 1,4408 semana de la tabla de la lectura 2, y eso está bien: el RMST responde una pregunta más pequeña y honesta (“cuánto tiempo más dentro de 12 semanas”), no la pregunta imposible (“cuánto tiempo más en total”). No extrapola más allá de lo que observaste. Esa es la virtud, no el defecto.

Log-rank es el test que compara las dos curvas enteras. Suma, semana a semana, la diferencia entre los eventos observados en un brazo y los eventos esperados bajo la hipótesis de que las curvas son iguales:

cantidad valor
eventos observados en la variación 8.347
eventos esperados bajo hipótesis nula 9.027,66
varianza 3.895,69
estadístico z 10,9053
valor-p bilateral por debajo de 1e-26
razón de riesgo (Peto) 0,8397

La razón de riesgo de 0,8397 quiere decir que, cada semana, el riesgo de que el usuario de la variación quede inactivo es cerca de un 16 por ciento menor que el del usuario del control. Es la traducción directa de la ventaja del 11,0 frente al 9,5 por ciento de probabilidad semanal que pusimos en el mundo simulado, lo que es una buena comprobación de sensatez de la cuenta.

La ganancia de sensibilidad en tiempo hasta el evento, medida

Compara las dos lecturas sobre exactamente los mismos 24.000 usuarios:

Magnitud del estadístico z de cuatro lecturas del mismo testGráfico de barras horizontales comparando el valor absoluto del estadístico z de cuatro lecturas de los mismos datos. La retención binaria en la semana 2 da 4,56. La retención binaria en la semana 4 da 7,88. La retención binaria en la semana 8 da 9,47. El test log-rank sobre la curva entera da 10,91, la barra más grande. La leyenda registra que todas las lecturas usan los mismos 24 mil usuarios y que la diferencia viene de cuánta información aprovecha cada lectura.Los mismos 24.000 usuarios, cuatro lecturas, cuatro sensibilidadesretención semana 2z = 4,56retención semana 4z = 7,88retención semana 8z = 9,47log-rank (curva entera)10,910612La barra binaria crece con la semana elegida porque el efecto se acumula. La barra del log-rank no dependede ninguna elección: usa las doce semanas de una vez.
Comparación de magnitud de señal sobre los mismos datos. Cuidado al leerla: las lecturas contrastan hipótesis distintas, así que esto no es una prueba formal de mayor poder, es la medida de cuánta información aprovecha cada diseño.

Una salvedad honesta: comparar el z de un test binario en la semana 4 con el z de un log-rank no es comparar poder para la misma hipótesis, porque las hipótesis no son las mismas. Lo que la comparación muestra es más simple y aun así decisivo: la lectura binaria descarta información que la lectura de curva usa, y el precio de eso aparece en el tamaño de la señal.

La versión empírica de ese resultado es el hallazgo central del trabajo de Spotify. Chandar y coautores validaron la métrica de tiempo hasta la inactividad en 51 tests A/B ejecutados en los productos de recomendación y búsqueda entre marzo y diciembre de 2020, cada uno con millones de usuarios, restringidos a tests con al menos 28 días tras un periodo de entrada de 7 días. La conclusión que reportan: las métricas previstas de tiempo hasta la inactividad son más sensibles que las métricas observadas de retención, y el test A/A de validación, con 432 valores-p re-sorteados, dio distribución uniforme, lo que descarta la explicación de que la mayor sensibilidad viniera de falso positivo inflado.

Conviene notar lo que también encontraron sobre la métrica binaria: el poder discriminativo de la retención semanal en la semana 4 es cerca del doble del de la semana 2. Es decir, incluso dentro del mundo binario, la elección de la fecha cambia la sensibilidad por un factor de dos. Es un argumento más para no dejar esa elección suelta.

Cuándo usar cada métrica de tiempo hasta el evento

Nada de esto significa que la retención binaria esté mal. Significa que tiene un dominio de validez.

situación lectura recomendada por qué
el evento ocurre dentro de la sesión (clic, compra inmediata) proporción simple no hay censura relevante; la cuenta de dos proporciones basta
la decisión necesita un número por semana, casi todo el mundo ya tuvo el evento proporción en la fecha preregistrada censura baja, sesgo pequeño, comunicación trivial
censura por encima del 20 por ciento al final de la ventana Kaplan-Meier + RMST la media y la proporción empiezan a depender de la ventana
la variación cambia la velocidad, no el total curva entera + log-rank una sola rebanada puede no ver nada o verlo todo
la métrica es permanencia y la decisión es de lanzamiento RMST para comunicar, log-rank para decidir el RMST sale en unidad de tiempo, que la dirección entiende
los brazos tienen ventanas de observación distintas obligatoriamente curva la proporción compara peras con manzanas; ver madurez de cohorte

La última fila es la más importante y la más ignorada. Si un brazo se liberó en rampa y el otro no, los usuarios de los dos brazos no tuvieron el mismo tiempo de exposición, y ninguna proporción construida sobre “activo al final del test” significa lo mismo en los dos lados.

Las tres premisas que necesitas comprobar

El análisis de supervivencia no es magia, y tiene premisas que se pueden violar sin darse cuenta.

1. La censura es no informativa. La premisa es que el tiempo hasta el evento del usuario es independiente del mecanismo de censura. Chandar y coautores registran que el modelo de Cox lo asume, y que la premisa se satisface cuando el tiempo de censura es fijo. En una ventana administrativa (el test terminó el día X para todo el mundo), eso es razonable. Si la censura ocurre porque el usuario desinstaló el rastreo, no lo es: ahí la censura carga información sobre el desenlace, y estás en el territorio de la pérdida de seguimiento.

2. Riesgos proporcionales, si usas Cox o razón de riesgo. La razón de riesgo solo es un número único si la razón entre los riesgos de los dos brazos es constante en el tiempo. En nuestro mundo simulado lo es por construcción. En el mundo real, un efecto novedad fuerte rompe eso: el riesgo cambia de razón a lo largo de las semanas, y reportar una razón de riesgo única se convierte en una media sin sentido de cosas distintas. El síntoma visual son curvas que se cruzan. El RMST no tiene esa premisa, y por eso es la elección más segura cuando sospechas de un efecto que varía en el tiempo.

3. El horizonte se eligió antes. El RMST depende del horizonte. Elegir el horizonte que da el mejor resultado es la misma trampa que elegir la semana de la retención binaria, con un nombre más sofisticado. Fija el horizonte en el plan de análisis, y prefiere algo defendible: un múltiplo de semanas enteras, por la razón de siempre, el ciclo semanal.

Cómo montar esto en la práctica

El trabajo no es estadístico, es de instrumentación. Para calcular Kaplan-Meier necesitas dos columnas por usuario que casi ningún montaje de test A/B guarda:

  1. tiempo: el número de periodos entre la entrada en el test y el evento, o entre la entrada y el final de la observación, lo que llegue primero.
  2. evento: 1 si el evento ocurrió dentro de la ventana, 0 si el usuario fue censurado.

A partir de ahí la cuenta es aritmética simple. Para cada periodo t, con d eventos entre n usuarios todavía en riesgo, la supervivencia acumulada es el producto de (1 - d/n) a lo largo de los periodos. Nada de biblioteca pesada y nada de modelo.

Tres decisiones operativas que definen la calidad del resultado:

Errores comunes

Haz esto automático con Donnu

El obstáculo para adoptar tiempo hasta el evento casi nunca es la matemática, es el montaje: la mayoría de las plataformas de test A/B guarda un indicador de conversión por usuario y descarta la marca de tiempo. Cuando alguien pregunta, meses después, “cuánto tiempo retuvo aquel test al usuario de más”, la respuesta es que el dato ya no existe.

Donnu mantiene la marca de tiempo del evento junto al sorteo del usuario, que es la condición mínima para reconstruir una curva de supervivencia de un test que ya terminó. Si tu montaje actual no lo hace, el paso inmediato y barato es empezar a grabar hoy la fecha del evento por usuario, aunque sigas reportando retención binaria por ahora: la columna extra no cuesta nada y es irrecuperable después. Para comprobar la lectura binaria de una fecha específica mientras la curva no existe, la calculadora de significancia lo resuelve en un minuto, y la calculadora de tamaño de muestra dice cuántos usuarios exige esa lectura.

Referencias

Lee también: Métrica sustituta · Holdout de largo plazo · Madurez de cohorte · Atrición diferencial · Reduciendo el churn con experimentación · Calculadora de significancia · Leia em português

Preguntas frecuentes

¿Qué es una métrica de tiempo hasta el evento en un test A/B?
Es una métrica en la que el resultado no es "ocurrió o no", sino "cuánto tiempo tardó en ocurrir": tiempo hasta la primera compra, tiempo hasta la cancelación, tiempo hasta que el usuario pasa una semana entera sin abrir el producto. La diferencia práctica es que, al final del test, una parte de los usuarios todavía no ha tenido el evento. Esos casos se llaman censurados por la derecha y son la razón por la que la media simple no sirve.
¿Por qué no se puede sacar la media del tiempo hasta el evento?
Porque la media calculada solo sobre quienes ya tuvieron el evento excluye justamente a los usuarios que tardan más, y eso empuja el número hacia abajo. En la simulación de esta guía, la media ingenua dio 5,1523 semanas en el control y 5,3586 en la variación, una diferencia de 0,2063 semana, mientras que la diferencia verdadera era de 1,4408 semana. El sesgo no es solo de nivel: borró casi siete octavos del efecto.
¿Qué es la censura por la derecha?
Es el usuario que llega al final de la ventana de observación sin haber tenido el evento. Sabes que su tiempo es mayor que la ventana, pero no sabes cuánto. Chandar y coautores registran que, en el caso de Spotify, la censura por la derecha ocurre cuando el usuario estuvo activo en todas las semanas, y su tiempo hasta la inactividad se registra como la longitud de la ventana de observación.
¿Qué resuelven Kaplan-Meier y log-rank?
Kaplan-Meier estima la curva de supervivencia usando a cada usuario hasta el instante en que sale de la observación, lo que aprovecha la información parcial de los censurados en vez de descartarla. El log-rank compara las dos curvas enteras, semana a semana, en vez de comparar una sola rebanada. En la simulación de esta guía, el log-rank dio z de 10,9053 frente a 7,8849 del test binario de retención en la semana 4, sobre los mismos datos.
¿Qué es el RMST y por qué es más fácil de comunicar que la razón de riesgo?
El RMST es el tiempo medio de supervivencia restringido a una ventana: el área bajo la curva de Kaplan-Meier hasta un horizonte que tú eliges. Sale en unidad de tiempo, así que la respuesta se convierte en "la variación retuvo al usuario 0,5423 semana más dentro de 12 semanas", que cualquier persona entiende. La razón de riesgo de 0,8397 del mismo test es correcta y más compacta, pero exige explicar qué es el riesgo instantáneo.
¿Vale la pena cambiar retención binaria por tiempo hasta el evento?
Vale cuando la decisión es sobre permanencia y la métrica binaria elige una fecha arbitraria. La retención en D7 y la retención en D30 pueden discrepar, y elegir una de ellas después de ver el resultado es una puerta abierta al sesgo. La curva entera no tiene esa elección. El coste es operativo: exige registrar la fecha del evento por usuario, no solo un indicador al final del test.