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.

📚 Este artículo es parte de la guía Significancia Estadística en Tests A/B: La Guía.
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.
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:
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.
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:
- control: 6,8380 semanas dentro de 12
- variación: 7,3803 semanas dentro de 12
- diferencia: 0,5423 semana, o cerca de 3,8 días más de permanencia por usuario en doce semanas
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:
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:
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.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:
- El origen del reloj es la entrada en el test, nunca la fecha del calendario. Un usuario que entró el día 20 de un test de 28 días tiene 8 días de reloj, no 28. Mezclar los dos orígenes es el error que produce curvas con escalones extraños al final.
- La ventana de observación tiene que ser la misma para todo el mundo, o necesitas modelar eso. La forma limpia es fijar un periodo de entrada (Spotify usó 7 días) y observar a todo el mundo por el mismo número de periodos después de eso.
- Guarda la fecha del evento, no solo el indicador. Cambiar retención binaria por tiempo hasta el evento después de que el test terminó es imposible si solo grabaste “retenido: sí”. Guardar la fecha cuesta una columna.
Errores comunes
- Calcular la media solo sobre quien tuvo el evento. El error central de este artículo: subestimó el efecto por un factor de casi siete en nuestra simulación, y subestima más en el brazo que está ganando.
- Tratar al censurado como “no tuvo el evento”. Es el espejo del error anterior e infla la supervivencia en vez de desinflarla. El censurado no es ni evento ni no evento: es observación parcial.
- Elegir la fecha de la retención después de ver los números. D7, D14 y D30 dan respuestas distintas, y nuestra propia tabla muestra lift variando de más 2,92 a más 15,37 por ciento según la semana.
- Reportar razón de riesgo con curvas que se cruzan. Si las curvas se cruzan, no existe una razón de riesgo única para reportar. Usa RMST.
- Elegir el horizonte del RMST mirando el resultado. La misma trampa, con ropa nueva.
- Creer que la curva resuelve una muestra pequeña. El log-rank tiene más sensibilidad que una rebanada binaria, pero sigue necesitando eventos. Con pocos eventos, la curva se tambalea feo al final, donde quedan pocos usuarios en riesgo. La regla práctica es mirar el número de usuarios en riesgo en cada periodo y desconfiar de la cola.
- Confundir tiempo hasta el evento con métrica sustituta. Son cosas distintas que resuelven el mismo dolor. El tiempo hasta el evento mide mejor lo que observaste; la métrica sustituta predice lo que no observaste. Se pueden usar juntas, que es exactamente lo que hizo Spotify.
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
- Chandar, P., St. Thomas, B., Maystre, L., Pappu, V., Sanchis-Ojeda, R., Wu, T., Carterette, B., Lalmas, M. y Jebara, T. Using Survival Models to Estimate User Engagement in Online Experiments. WWW 2022, Spotify. Fuente del encuadre de la retención de largo plazo como problema de tiempo hasta el evento, con el desenlace no observable al final del test A/B; de la definición de censura por la derecha como el usuario activo en todas las semanas, cuyo tiempo hasta la inactividad se registra como la longitud de la ventana de observación; del ejemplo de dos cohortes con tiempo medio verdadero de 2 y 36 semanas en el que ignorar a los censurados en la semana 10 produce subestimación severa; de la premisa del modelo de Cox de que la censura es no informativa, satisfecha por un tiempo de censura fijo; del corpus de 51 tests A/B ejecutados entre marzo y diciembre de 2020 con al menos 28 días tras un periodo de entrada de 7 días; del hallazgo de que el poder discriminativo de la retención semanal en la semana 4 es cerca del doble del de la semana 2 y de que las métricas previstas son más sensibles que las observadas; y del test A/A con 432 valores-p de distribución uniforme. mounia-lalmas.blog.
- Kohavi, R., Deng, A., Frasca, B., Longbotham, R., Walker, T. y Xu, Y. Trustworthy Online Controlled Experiments: Five Puzzling Outcomes Explained. KDD 2012, Microsoft. Fuente del punto de que los experimentos online reclutan usuarios continuamente, en vez de tener un periodo de reclutamiento antes del experimento, lo que hace que el tamaño de muestra crezca con la duración y crea ventanas de observación desiguales entre usuarios. exp-platform.com.
- Kohavi, R., Deng, A., Frasca, B., Walker, T., Xu, Y. y Pohlmann, N. Online Controlled Experiments at Large Scale. KDD 2013, Microsoft. Fuente de la exigencia de que el criterio de decisión sea medible en plazos cortos, del orden de dos semanas, al mismo tiempo que predice objetivos de largo plazo, y de la regla de que el marcador final del experimento se cierra en un múltiplo de semanas, usualmente dos. exp-platform.com.
- Deng, A. y Shi, X. Data-Driven Metric Development for Online Controlled Experiments: Seven Lessons Learned. KDD 2016, Microsoft. Fuente de las dos cualidades obligatorias de una métrica de decisión, direccionalidad y sensibilidad, que son el criterio por el que debe juzgarse el cambio de retención binaria por tiempo hasta el evento. exp-platform.com.
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.