Estadística

Estratificación en Test A/B: dónde está el techo

La estratificación en un test A/B solo elimina la varianza ENTRE estratos. Medimos el techo: 2,68% en un caso real, contra 97,8% del CUPED continuo.

Ilustración plana de un campo amplio de pequeños puntos verdes organizados en filas densas, con franjas horizontales de tonos distintos atravesando el conjunto

Estratificar un test A/B reduce la varianza exactamente en la fracción de ella que está ENTRE los estratos, y nada más allá de eso. En el escenario de ingresos medido en este artículo, con usuarios nuevos y recurrentes como estratos, esa fracción es del 2,68 por ciento: el techo del método es ahorrar 2,68 por ciento del tráfico. En la misma simulación, el CUPED usando la misma información en forma continua redujo la varianza medida en 97,82 por ciento. La diferencia no es de implementación, es de cuánta información consume cada método. Esta guía muestra la cuenta que define el techo, prueba numéricamente que la posestratificación es CUPED con una covariable categórica, mide los dos casos en los que estratificar no compensa, y traduce la reducción de varianza en días de test. Forma parte de nuestra guía completa de test A/B y complementa qué es CUPED y tamaño de muestra para métricas continuas.

Estratificación: la cuenta que define el techo

La idea es antigua y viene del muestreo en investigación. Separas la población en grupos internamente parecidos, calculas la media dentro de cada grupo y después juntas todo con el peso poblacional de cada grupo. La media estratificada tiene el mismo valor esperado que la media simple, pero menor varianza.

Deng, Xu, Kohavi y Walker, en el artículo en el que presentan el CUPED, escriben la razón en una sola línea. La varianza de la media se descompone en dos partes:

La estratificación elimina la segunda parte y deja la primera intacta. Los autores dan el ejemplo de la altura de niños: la varianza de las alturas en general es grande, pero si estratificas por edad, la varianza dentro de cada franja de edad queda mucho menor. Una buena estratificación, escriben ellos, es la que se alinea con las agrupaciones que ya existen en los datos.

La varianza total se parte en dos: dentro de los estratos y entre los estratosDiagrama con dos barras horizontales apiladas. La barra de arriba representa la varianza total de una métrica de ingresos, dibujada como un rectángulo lleno. La barra de abajo muestra el mismo ancho dividido en dos pedazos muy desiguales: un pedazo ancho rotulado varianza dentro de los estratos, que ocupa casi toda la barra, y un pedazo estrecho en el extremo derecho rotulado varianza entre los estratos. Una llave debajo indica que solo el pedazo estrecho es eliminado por la estratificación, y una anotación dice que ese pedazo es el techo de la ganancia del método.La estratificación solo borra el pedazo de abajo a la derechavarianza total de la métrica100%la misma varianza, descompuestadentro de los estratos: 97,32%entre los estratos: 2,68%Lo que queda después de estratificar es la barra clara. La ganancia máxima del método es el rectángulo oscuro.Valores del escenario de ingresos medido en este artículo (usuarios nuevos contra recurrentes).
La descomposición no es una aproximación: es una identidad. Por eso la ganancia de la estratificación se conoce antes de implementar nada.

Esa es la buena noticia y la mala noticia al mismo tiempo. Buena porque puedes calcular la ganancia antes de escribir una línea de código, usando solo datos históricos. Mala porque, en la mayoría de las métricas de producto, la parte entre estratos es pequeña.

¿Estratificar en la asignación o después de recoger?

Existen dos momentos posibles para usar los estratos, y no valen lo mismo.

En la asignación (aleatorización estratificada). Montas los grupos antes y aleatorizas dentro de cada grupo, garantizando por construcción que control y variante queden equilibrados en cada franja. Es el diseño clásico de ensayo clínico.

Después de recoger (posestratificación). Aleatorizas normalmente, dejas correr el test, y solo en el análisis separas a los usuarios por una característica que ya existía antes de que empezara el test.

El artículo del CUPED es directo sobre cuál de los dos tiene sentido online: como los datos llegan a lo largo del tiempo, normalmente no se puede muestrear de estratos formados de antemano, pero sí se pueden usar variables preexperimento para construir los estratos después de que todos los datos fueron recogidos.

Medimos la diferencia. En la simulación de ingresos con cola pesada descrita más adelante, con 60.000 usuarios por réplica y 2.000 réplicas, la aleatorización estratificada en la asignación devolvió una varianza de 1,5930 contra 1,5322 de la aleatorización simple: 3,97 por ciento peor, es decir, ruido en torno a cero. Tiene sentido: con decenas de miles de usuarios por brazo, la aleatorización simple ya equilibra los estratos prácticamente sola, así que forzar el equilibrio no deja nada por ganar.

dónde entran los estratos equilibrio de los estratos ganancia de varianza medida coste de ingeniería
aleatorización estratificada en la asignación perfecto por construcción 3,97% peor que la aleatorización simple (ruido) alto: exige decidir el estrato en el momento de la asignación
posestratificación en el análisis casi perfecto por azar, con N grande igual al techo teórico de la descomposición bajo: es una consulta más en el pipeline
ninguno de los dos aleatorio ninguna ninguno

La lectura práctica: si tienes tráfico suficiente para un test A/B normal, tienes tráfico suficiente para que la aleatorización simple equilibre tus estratos. Estratificar en la asignación paga la factura de complejidad sin entregar precisión.

La posestratificación es CUPED con una covariable categórica

Esta parte suele sorprender. El apéndice A del artículo del CUPED muestra que, cuando las covariables son categóricas, estratificación y variables de control producen resultados idénticos. No parecidos: idénticos.

Reprodujimos la identidad numéricamente con los datos de nuestra simulación. Por un lado, la media posestratificada de cada brazo, calculada como la suma de las medias por estrato ponderadas por el peso del estrato en la muestra combinada. Por otro, el estimador de variable de control usando las variables indicadoras de los estratos como covariables, con el coeficiente de cada indicadora igual a la diferencia entre la media de ese estrato y la media del estrato de referencia.

brazo A: posestratificado = 0,73465908140242364
brazo A: variable de control = 0,73465908140242353
diferencia absoluta = 1,110e-16

brazo B: posestratificado = 0,59895701571944082
brazo B: variable de control = 0,59895701571944071
diferencia absoluta = 1,110e-16

delta posestratificado = -0,13570206568298282
delta por variables indicadoras = -0,13570206568298282

La diferencia de 1,110e-16 es el épsilon del punto flotante de doble precisión. Las dos cuentas son la misma cuenta.

Eso cambia la pregunta que vale la pena hacer. No es “¿debo estratificar o usar CUPED?”. Es “¿mi covariable pierde información al convertirse en categoría?”. Si la covariable ya es categórica (canal de adquisición, plataforma, país, usuario nuevo contra recurrente), estratificar y usar CUPED con esa variable son lo mismo. Si la covariable es continua (gasto en el preperiodo, número de sesiones en los últimos 30 días, antigüedad de la cuenta), convertirla en franjas tira información, y el CUPED con el valor continuo domina.

El techo medido: nuevos contra recurrentes

Montamos un escenario deliberadamente favorable a la estratificación: ingresos por usuario, con dos segmentos que convierten de forma muy distinta.

La media general es de R$ 3,3902. Los dos segmentos son seis veces distintos en ingreso medio, lo que parece una separación enorme. Corriendo la descomposición analíticamente:

parte valor fracción de la varianza total
varianza total 356,08 100,00%
dentro de los estratos 346,53 97,32%
entre los estratos 9,55 2,68%
Por qué una separación de medias enorme rinde una ganancia de varianza minúsculaGráfico con dos pares de elementos. A la izquierda, dos barras verticales muestran el ingreso medio por usuario: R$ 1,37 para nuevos y R$ 8,11 para recurrentes, una diferencia de casi seis veces. A la derecha, dos rectángulos mucho más altos representan la varianza dentro de cada segmento, 99 para nuevos y 924 para recurrentes, mostrando que la dispersión interna de cada grupo es órdenes de magnitud mayor que la distancia entre las medias de los grupos. Una anotación debajo explica que es esa desproporción la que limita la ganancia de la estratificación al 2,68 por ciento.Las medias son bien distintas. La dispersión dentro de cada grupo es mucho mayor.ingreso medio por usuarionuevosR$ 1,37recurrentesR$ 8,11varianza dentro del gruponuevos99,2recurrentes923,6La estratificación borra la distancia entre las barras de la izquierda. No toca la altura de las barras de la derecha.Las dos escalas son independientes: la de la izquierda en reales, la de la derecha en reales al cuadrado.
Seis veces de diferencia entre las medias suena a mucho, pero la varianza dentro de cada segmento es dos órdenes de magnitud mayor. Por eso el techo se queda en 2,68 por ciento.

Después medimos de verdad, con un test A/A pareado: 8.000 réplicas, 80.000 usuarios por réplica, reparto 50/50, los dos estimadores leyendo exactamente los mismos datos.

estimador varianza real del delta falso positivo medido reducción de varianza
diferencia de medias 1,84925e-2 5,64% referencia
posestratificado (nuevos contra recurrentes) 1,79246e-2 5,42% 3,07%

Los 3,07 por ciento medidos coinciden con el techo analítico de 2,68 por ciento dentro del ruido de Monte Carlo. Registrando lo que también apareció: las dos tasas de falso positivo quedaron por encima del 5 por ciento nominal (el error estándar de Monte Carlo en 5 por ciento con 8.000 réplicas es de 0,24 punto porcentual). Eso es la asimetría del ticket lognormal estirando la cola del test z, no un defecto del estimador estratificado, y vale para los dos por igual.

Cuándo la posestratificación empeora el resultado

El segundo escenario es ingresos con cola genuinamente pesada, del tipo que aparece en plataformas con compras virtuales: 3 por ciento de gastadores y valor por gastador siguiendo una ley de potencia con exponente 1,15, más un gasto en el preperiodo correlacionado con el del periodo del test. La correlación medida entre pre y post fue de 0,7643.

Estratificamos por percentil del gasto en el preperiodo, con cortes en 97, 99,5 y 99,9 por ciento:

estrato peso usuarios ingreso medio varianza interna
base 97,002% 58.201 R$ 0,002 0,0
medio 2,500% 1.500 R$ 8,604 54,3
alto 0,400% 240 R$ 37,503 815,7
cola 0,098% 59 R$ 478,067 2.178.816,5

Con 2.000 réplicas de A/A y 60.000 usuarios por réplica, el resultado fue este:

estimador varianza del delta reducción
diferencia de medias 1,5322 referencia
posestratificación (4 estratos) 1,6352 6,72% PEOR
CUPED con el preperiodo continuo 0,033340 97,82%
posestratificación con CUPED dentro del estrato 0,031682 97,93%

La posestratificación sola aumentó la varianza. La causa es el estrato de cola: 59 usuarios con varianza interna de 2,18 millones. La media de ese puñado de gente es una estimación pésima, y el estimador estratificado depende de ella con peso propio, mientras que la media simple diluye a esos 59 usuarios entre 60.000.

El estrato de cola tiene demasiada gente para ignorarlo y muy poca para estimarloDiagrama con cuatro columnas que representan los cuatro estratos. El ancho de cada columna es proporcional al peso poblacional y la altura a la desviación típica interna. El estrato base es amplísimo y casi a ras del suelo. Los estratos medio y alto son estrechos y de altura moderada. El estrato de cola es un trazo fino y altísimo, que sale por la parte de arriba de la figura, con una anotación que dice que tiene 59 usuarios y desviación típica de mil cuatrocientos setenta y seis. Una leyenda debajo dice que la media de un estrato así es demasiado ruidosa para llevar peso propio en el estimador.Ancho = peso del estrato · Altura = desviación típica internabase: 97,0% de la base, desviación típica cerca de ceromedio: 2,5%dt 7,4alto: 0,4%dt 28,6cola: 0,098% de la base59 usuarios, desviación típica 1.476la columna sale por arriba de la figuraLa media de 59 usuarios con esa desviación típica es demasiado ruidosa para recibir peso propio en el estimador.
El mismo principio aparece en el estudio de ShareChat: cuando el estrato está mal diseñado (en su caso, agrupamiento por k-means sobre atributos de comportamiento), la posestratificación aumenta la varianza en vez de reducirla.

El equipo de ShareChat, que publicó el uso de posestratificación en más de 40 experimentos de producción con más de 1 millón de usuarios cada uno, llega a una recomendación vecina por otro camino: el método no debe usarse cuando el comportamiento de los usuarios de cola es el objetivo principal de la decisión, porque el estimador posestratificado reduce justamente el peso de la población que se quiere estudiar. Vale reproducir también su resultado positivo, porque es la otra cara de la misma moneda: posestratificación combinada con CUPED dentro del estrato entregó más de 99 por ciento de reducción de varianza en los datos reales, contra 47,62 por ciento del CUPED solo, con el valor p siendo calculado sobre la métrica ajustada. Nuestra simulación muestra el mismo apilamiento, con los dos números prácticamente empatados en la cima (97,82 contra 97,93 por ciento).

De la reducción de varianza a los días de test

La traducción es directa: el tamaño de muestra es proporcional a la varianza. Una reducción de X por ciento en la varianza recorta X por ciento de la muestra necesaria, o equivalentemente reduce el efecto mínimo detectable por la raíz cuadrada de 1 menos X.

Tomando como referencia un test con base de 5 por ciento, efecto mínimo detectable de 10 por ciento relativo, alfa de 5 por ciento y potencia de 80 por ciento, lo que da 31.234 usuarios por variación y 11 días a 40.000 visitantes por semana:

reducción de varianza N por variación días a 40.000/semana MDE relativo alcanzable con el N original
ninguna 31.234 11 9,77%
3% (posestratificación medida) 30.297 11 9,62%
10% 28.111 10 9,27%
30% 21.864 8 8,18%
50% (CUPED en Bing) 15.617 6 6,91%
98% (CUPED continuo medido aquí) 625 1 1,38%

La línea del 3 por ciento no cambió ni un día de test. La línea del 50 por ciento partió el test por la mitad. Esa es la diferencia entre estratificar y usar la covariable entera.

Corre tu propio caso en la calculadora de abajo. Para ver el efecto de la reducción de varianza, informa la base y el MDE de siempre, anota el N, y después multiplica el resultado por 1 menos la reducción que hayas medido en tu histórico:

Calculadora de tamaño de muestra
-Visitantes por variación
-Total (2 variaciones)
-Duración estimada

Cálculo por aproximación normal de dos proporciones, 2 variaciones (50/50). Cambia los campos y mira el impacto en vivo.

Cómo elegir los estratos en la práctica

Una guía que puedes copiar y correr sobre tu histórico antes de cambiar cualquier pipeline:

  1. Elige la métrica que importa y saca de ella un recorte histórico de al menos 30 días, al nivel de la unidad de aleatorización (normalmente el usuario).
  2. Lista las candidatas a covariable que existen ANTES de que empiece el test: gasto en el preperiodo, número de sesiones, canal de adquisición, plataforma, antigüedad de la cuenta, país. La regla dura es que la variable no puede verse afectada por el tratamiento, y la manera segura de garantizarlo es congelarla en el periodo anterior al test.
  3. Calcula la descomposición para cada candidata categórica: varianza total, varianza dentro de los estratos ponderada por los pesos, y la diferencia entre las dos. La fracción entre estratos es tu techo.
  4. Descarta a quien tiene un techo de un dígito bajo. Si la fracción entre estratos es de 2 o 3 por ciento, la posestratificación no va a cambiar ninguna decisión tuya.
  5. Para candidatas continuas, calcula la correlación con la métrica final y compara su cuadrado con el techo de la versión categorizada. En nuestra simulación la versión continua ganó por dos órdenes de magnitud.
  6. Verifica el tamaño del estrato más pequeño. Si algún estrato tiene menos de algunos cientos de usuarios y varianza alta, o lo juntas con el vecino, o el método va a empeorar tu varianza.
  7. Corre un A/A con el estimador nuevo antes de confiar en él. Nuestra medición mostró los dos estimadores con falso positivo por encima del nominal a causa de la asimetría de la métrica, y eso solo aparece probando.
  8. Congela los cortes antes de mirar el resultado. Los umbrales de los estratos tienen que salir del periodo anterior al test, exactamente como describe ShareChat: calculados a partir de la población del preperiodo y congelados antes de que se observe cualquier dato de resultado.

Tres errores que aparecen siempre

Estratificar por algo que el tratamiento afecta. Si el estrato es “usuario que visitó la página nueva”, el tratamiento cambió quién entra en cada grupo y el estimador deja de ser insesgado. La defensa es la regla 2 de arriba: solo variables congeladas en el preperiodo. Ese es el mismo cuidado que vale en el análisis por disparo y dilución.

Confundir explicar con reducir. Un estrato puede ser fascinante para entender el negocio (los whales gastan 300 veces más) e inútil para reducir varianza. Las dos preguntas son independientes. Si el objetivo es entender dónde se concentra el efecto, el instrumento es el efecto heterogéneo por segmento, con toda la disciplina de comparaciones múltiples que exige.

Creer que estratificar arregla la lectura. La estratificación es reducción de varianza, no corrección de sesgo. No resuelve el SRM, el reparto desigual de tráfico, no resuelve el sesgo de instrumentación y no resuelve el tráfico de bots. Un test con la aleatorización rota sigue roto después de estratificado, solo que con una barra de error menor encima del número equivocado, lo que es peor.

Hazlo automático en Donnu

El trabajo pesado aquí no es la estadística, es la disciplina de pipeline: congelar la covariable en el preperiodo, guardar los cortes junto con el experimento, y no dejar que nadie elija los estratos después de ver el resultado. En Donnu el valor de la covariable de cada usuario queda grabado en el momento de la asignación, junto al bucket y a la marca de tiempo, así que la lectura estratificada usa siempre la foto de antes del test, y la lista de estratos queda registrada en el experimento en vez de vivir en la cabeza de quien analizó. Si tu herramienta actual no guarda el estado preexperimento por usuario, ese es el punto que necesita entrar antes de que cualquier reducción de varianza se vuelva rutina.

Preguntas frecuentes

Las respuestas cortas están en la sección de preguntas frecuentes de esta página, generadas a partir del mismo material medido aquí.

Referencias

Lee también

Leia em português · Read in English

Preguntas frecuentes

¿Qué es la estratificación en un test A/B?
Es separar a los usuarios en grupos internamente parecidos (los estratos) usando alguna información anterior al test, calcular el efecto dentro de cada grupo y después juntar los resultados con el peso poblacional de cada grupo. El objetivo no es cambiar el efecto estimado, es reducir su varianza. La cuenta queda más precisa porque la variación que existe ENTRE los grupos deja de contar como ruido. La variación que queda dentro de cada grupo sigue contando.
¿Cuál es la ganancia máxima que puede dar la estratificación?
Exactamente la fracción de la varianza que está entre los estratos. Deng, Xu, Kohavi y Walker escriben esa descomposición de forma cerrada en el artículo del CUPED: la varianza total es la suma de la varianza dentro de los estratos con la varianza entre ellos, y la estratificación elimina solo la segunda parte. En el escenario medido en este artículo, con usuarios nuevos y recurrentes como estratos, esa parte es del 2,68 por ciento de la varianza total. Es decir, el techo del método en ese caso es ahorrar 2,68 por ciento del tráfico, no la mitad.
¿Posestratificación es lo mismo que CUPED?
Cuando la covariable es categórica, sí, y eso está probado en el apéndice A del artículo original del CUPED: estratificación y variables de control producen resultados idénticos. Reprodujimos la identidad numéricamente y las dos cuentas coincidieron hasta la 16ª cifra decimal, con una diferencia de 1,110e-16, que es el error de redondeo del punto flotante. La diferencia práctica aparece cuando la covariable es continua: ahí el CUPED usa la información entera y la posestratificación usa solo la franja en la que cayó el usuario.
¿Es mejor estratificar al aleatorizar o después de recoger los datos?
Después. El propio artículo del CUPED registra que en el entorno online los datos llegan a lo largo del tiempo y por eso casi nunca se puede muestrear de estratos formados de antemano, pero sí se pueden construir los estratos con variables preexperimento después de que los datos fueron recogidos. En la simulación de este artículo la aleatorización estratificada en la asignación no redujo la varianza frente a la aleatorización simple: la medición dio 3,97 por ciento más de varianza, es decir, ruido en torno a cero, con un coste de ingeniería real.
¿La posestratificación puede empeorar el resultado?
Puede, y eso se observa tanto en nuestra simulación como en producción. Cuando un estrato es muy pequeño y muy volátil, su media se vuelve una estimación mala y el estimador estratificado queda más ruidoso que la media simple. En nuestra simulación de ingresos con cola pesada, un estrato de cima con 59 usuarios y varianza enorme hizo que la posestratificación aumentara la varianza en 6,72 por ciento. El equipo de ShareChat registra un efecto de la misma naturaleza al comparar diseños de estrato: agrupar usuarios por k-means sobre atributos de comportamiento aumentó la varianza, mientras que el corte por percentil de ingresos del preperiodo fue lo que funcionó. La lección es la misma: un estrato mal diseñado empeora el estimador.
Entonces, ¿cuándo vale la pena la estratificación?
Cuando los estratos separan de verdad la métrica, es decir, cuando las medias de los grupos son muy distintas y la variación dentro de cada grupo es pequeña. Las métricas de proporción casi nunca cumplen eso, porque la varianza de una proporción está atada a p por 1 menos p. Las métricas de ingresos con cola pesada pueden cumplirlo, pero ahí el estrato de cola necesita gente suficiente. Antes de invertir en el método, mide la descomposición en tu histórico: si la parte entre estratos es de pocos puntos porcentuales, la ganancia será de pocos puntos porcentuales.