Unidad de Aleatorización en Test A/B: usuario o sesión
La unidad de aleatorización decide qué mide el test y cuánta muestra tienes de verdad. Cómo elegir entre usuario, sesión y pageview sin inflar el valor p.

📚 Este artículo es parte de la guía Significancia Estadística en Tests A/B: La Guía.
La unidad de aleatorización es el nivel en el que ocurre el sorteo entre control y tratamiento, y decide dos cosas a la vez: qué tipo de efecto puede medir el test y cuánta muestra estadística tienes en realidad. Cambiar de unidad no es un detalle de implementación, es un intercambio entre poder y validez, y la versión que produce el valor p más bonito casi siempre es la equivocada. Esta guía cubre la diferencia entre unidad de aleatorización y unidad de análisis, un ejemplo trabajado en el que el mismo test sale con z igual a 3,680 o 6,374 según la unidad elegida para leerlo, el efecto de diseño que explica la diferencia, y una regla de decisión para elegir entre usuario, sesión, pageview y conglomerado. Forma parte de nuestra guía completa de test A/B y continúa el razonamiento de métricas de ratio en tests A/B.
Las dos unidades que tiene todo test
Todo experimento online carga dos unidades diferentes, y la mayoría de las discusiones confusas sobre resultados nace de tratarlas como si fueran una sola.
Deng, Knoblich y Lu definen ambas con precisión en el artículo de KDD 2018 sobre el método delta en análisis de métricas. La unidad de aleatorización es el nivel de granularidad en el que se hace el muestreo o el sorteo. La unidad de análisis es el nivel de agregación en el que se calcula la métrica. Según los autores, el análisis es directo cuando ambas coinciden, por ejemplo cuando se aleatoriza por usuario y también se calcula el ingreso medio por usuario.
El problema aparece cuando no coinciden, y eso es más común de lo que parece. También según los autores, para el mismo experimento normalmente existen métricas con unidades de análisis diferentes: relatan que la mayoría de los experimentos aleatorizados por usuario ejecutados en la plataforma de experimentación de Microsoft contiene tanto métricas a nivel de usuario como métricas a nivel de página.
Existe una restricción dura en esa relación, y es lo primero que hay que entender antes de elegir cualquier unidad. La unidad de aleatorización no puede ser más granular que la unidad de análisis. Los autores explican por qué: si lo fuera, la unidad de análisis contendría observaciones bajo tratamiento y bajo control al mismo tiempo, lo que anula el propósito de diferenciar los dos grupos. Aleatorizar por pageview y después reportar “tasa de conversión por usuario” significa que casi todo usuario habrá visto los dos lados, y la diferencia medida entre brazos se encoge por construcción, no por ausencia de efecto.
Ejemplo trabajado: el mismo test, dos lecturas
Una tienda ejecuta un test aleatorizando por usuario. Son 100.000 usuarios por brazo, y cada usuario hace en promedio 3 sesiones durante el período. La métrica de interés es “convirtió al menos una vez”.
Pega los números de abajo en la calculadora para reproducir el cálculo línea por línea.
Test z bilateral de dos proporciones. "Sin significancia" casi siempre significa que falta muestra, no que las versiones sean iguales.
Primero, la lectura correcta, con la unidad de análisis igual a la unidad de aleatorización:
| Lectura por usuario | Usuarios | Conversiones | Tasa |
|---|---|---|---|
| Control | 100.000 | 12.000 | 12,000 por ciento |
| Tratamiento | 100.000 | 12.540 | 12,540 por ciento |
En pantalla, la calculadora muestra tasas de 12,00 y 12,54 por ciento, lift de más 4,5 por ciento, valor p de 0,0002 e intervalo del 95 por ciento de más 0,3 a más 0,8 punto porcentual, con veredicto de victoria de B. La interfaz redondea la visualización y no muestra el puntaje z, así que los valores exactos del motor, que son los usados en este artículo, quedan así: más 0,540 punto porcentual, más 4,500 por ciento relativo, z = 3,680, valor p de 0,00023, intervalo de más 0,252 a más 0,828 punto porcentual. Un resultado sólido y nada espectacular.
Ahora lo mismo leído por sesión. Como cada usuario hizo 3 sesiones, el panel muestra 300.000 sesiones por brazo, y la tasa de conversión por sesión es la misma:
| Lectura por sesión | Sesiones | Conversiones | Tasa |
|---|---|---|---|
| Control | 300.000 | 36.000 | 12,000 por ciento |
| Tratamiento | 300.000 | 37.620 | 12,540 por ciento |
La calculadora muestra las mismas tasas y el mismo lift de más 4,5 por ciento, y el valor p cae al rango que ella exhibe como menor que 0,0001. En precisión completa: mismo lift de más 4,500 por ciento relativo, z = 6,374, valor p de 0,00000000018, intervalo de más 0,374 a más 0,706 punto porcentual. Nada cambió en el experimento. El único movimiento fue cambiar el denominador de la métrica de usuario a sesión.
La razón entre los dos valores de z es exactamente la raíz de 3, el número de sesiones por usuario: 6,374 dividido por 3,680 da 1,7321. Eso no es coincidencia, es la firma de un error estándar calculado como si cada sesión fuera una observación independiente nueva.
El efecto de diseño: cuánto de la muestra es real
Las sesiones de un mismo usuario no son independientes. Quien compra en una visita tiende a comprar en otra; quien nunca convierte tiende a no convertir en ninguna. La cantidad que mide esto es la correlación intraclase, y en el artículo de Deng, Knoblich y Lu aparece definida como la fracción de la varianza total que viene de la varianza entre conglomerados.
Para conglomerados de tamaño igual, los autores registran la forma cerrada de la varianza, y de ella sale el factor conocido como efecto de diseño: 1 más el producto de la correlación intraclase por el tamaño del conglomerado menos 1. Ellos describen los dos extremos con claridad. Cuando la varianza dentro del conglomerado es cero, todas las observaciones del conglomerado son idénticas, la correlación intraclase vale 1 y la varianza pasa a depender solo del número de conglomerados. Cuando la varianza entre conglomerados es cero, las observaciones son de hecho independientes, la correlación intraclase vale 0, y la fórmula colapsa en el caso simple.
Aplicando esto a nuestro test, con conglomerados de 3 sesiones por usuario:
| Correlación intraclase | Efecto de diseño | z corregido | Valor p | Sesiones efectivas por brazo |
|---|---|---|---|---|
| 0,00 | 1,000 | 6,374 | 0,00000000018 | 300.000 |
| 0,25 | 1,500 | 5,205 | 0,00000019 | 200.000 |
| 0,50 | 2,000 | 4,507 | 0,0000066 | 150.000 |
| 0,60 | 2,200 | 4,298 | 0,000017 | 136.364 |
| 1,00 | 3,000 | 3,680 | 0,00023 | 100.000 |
Fíjate en la última fila: con correlación intraclase igual a 1, el z corregido vuelve a ser exactamente el 3,680 de la lectura por usuario, y la muestra efectiva vuelve a ser exactamente los 100.000 usuarios. La fórmula degrada al caso correcto, lo que es una buena verificación de sanidad.
Y fíjate en lo que dice de hecho. Las 300.000 sesiones nunca valieron 300.000 unidades. Valen algo entre 100.000 y 300.000, dependiendo de cuánto del comportamiento es propiedad del usuario y cuánto es propiedad de la visita. Sesión extra del mismo visitante no es muestra nueva, es información parcialmente repetida.
Una salvedad honesta de los propios autores: esa fórmula cerrada, pese a ser teóricamente correcta, tiene valor práctico limitado, porque asume que todos los conglomerados tienen el mismo tamaño y la misma distribución, lo que no ocurre en la vida real. Los usuarios hacen números muy distintos de sesiones. La salida que proponen es el método delta, aplicado directamente a la definición de la métrica como razón de dos medias a nivel de la unidad aleatorizada, y la misma lógica que sustenta el tratamiento de métricas de ratio.
Vale saber el tamaño del error que se comete al ignorar esto. En la simulación publicada en el mismo artículo, con mil conglomerados de tamaños heterogéneos, la desviación estándar verdadera del estimador era 0,00895 y el error estándar calculado por el método ingenuo salió 0,00522, es decir, cerca de 42 por ciento menor que el real. El método delta devolvió 0,00908, próximo al verdadero.
Cómo elegir la unidad de aleatorización
La elección no es una cuestión de preferencia técnica, es una secuencia de restricciones. Recórrela en orden.
Detallando las opciones:
| Unidad de aleatorización | Cuándo es la elección correcta | Qué pierdes |
|---|---|---|
| Usuario (cookie, cuenta, dispositivo) | Por defecto. Cualquier cambio que el visitante pueda percibir entre visitas | Nada, más allá de necesitar identificador estable |
| Sesión | El cambio solo existe dentro de la visita y no deja memoria, o no hay identificador estable | Consistencia entre visitas, y cualquier efecto que se acumule |
| Pageview | Prácticamente nunca, en test de producto | Consistencia dentro de la propia visita; contamina la lectura |
| Cuenta u organización | Producto B2B en el que colegas no pueden ver pantallas diferentes | Poder, porque la cuenta se vuelve el conglomerado |
| Región geográfica | Intervención que no es entregable por usuario, como medios offline | Mucho poder, ver experimento geográfico |
| Bloque de tiempo | Marketplace con oferta compartida entre los brazos | Poder, y exige tratamiento de dependencia temporal, ver test switchback |
Dos de las filas de esa tabla merecen nota. Deng, Knoblich y Lu citan como razones reales para aleatorizar a nivel de conglomerado tanto política corporativa que prohíbe que usuarios de la misma organización reciban experiencias diferentes, como la necesidad de reducir sesgo en presencia de interferencia de red, que es exactamente el problema tratado en interferencia entre variantes.
El costo en muestra de subir la unidad
Subir la unidad de aleatorización cuesta poder, y el cálculo se puede hacer antes de empezar. Con base de conversión del 12 por ciento y efecto mínimo detectable del 4,5 por ciento relativo, el motor de tamaño de muestra devuelve 57.948 usuarios por variación al 95 por ciento de confianza y 80 por ciento de poder.
Si fueras a aleatorizar por sesión en vez de por usuario, necesitarías ese mismo número en sesiones, lo que en principio parece 3 veces más barato. Pero esas sesiones correlacionadas no valen una unidad cada una. Aplicando el efecto de diseño al número necesario:
| Escenario | Unidades necesarias por variación | Equivalente en usuarios |
|---|---|---|
| Aleatorización por usuario | 57.948 usuarios | 57.948 |
| Aleatorización por sesión, correlación intraclase 0 (irreal) | 57.948 sesiones | 19.316 |
| Aleatorización por sesión, correlación intraclase 0,25 | 86.922 sesiones | 28.974 |
| Aleatorización por sesión, correlación intraclase 0,50 | 115.896 sesiones | 38.632 |
El descuento existe, pero es menor que la razón de conteos y disminuye rápido conforme sube la correlación. Y, más importante, el descuento solo es real si el efecto que quieres medir cabe dentro de una única sesión. Si no cabe, no estás ahorrando muestra, estás midiendo otra cosa.
Cuándo aleatorizar por sesión es legítimo
Existe un caso honesto, y vale nombrarlo para que no parezca que la sesión es siempre pecado:
- El cambio testeado no deja memoria. Ordenación de resultados dentro de una búsqueda, formato de un bloque de recomendación, comportamiento de un filtro. El visitante vuelve mañana y no tiene por qué extrañar una pantalla diferente a la de ayer.
- No existe identificador estable. Sitio sin login, público mayoritariamente nuevo, alto índice de bloqueo de cookies. En ese caso el “usuario” que crees estar aleatorizando ya es una sesión disfrazada, y asumirlo explícitamente es más honesto que fingir lo contrario.
- La ventana de decisión es corta. Si la conversión ocurre en la misma visita en casi todos los casos, el efecto de acumulación entre visitas es pequeño por naturaleza.
Fuera de eso, el precio es alto. Aleatorizar por sesión significa que el mismo visitante ve el control el lunes y el tratamiento el miércoles, y cualquier efecto que dependa de reconocimiento, hábito o aprendizaje queda diluido entre los brazos. También significa contaminación: parte de la experiencia del brazo A ya está en la cabeza de quien está siendo medido en el brazo B. El pariente cercano de ese problema aparece en efecto novedad en tests A/B.
Checklist antes de ejecutar
- ¿La unidad de aleatorización está declarada en algún lugar? Si nadie lo escribió, nadie va a verificarlo a la hora de leer el resultado.
- ¿La métrica primaria tiene la misma unidad en el denominador? Si no, el intervalo de confianza necesita método delta o corrección por efecto de diseño.
- ¿La unidad de aleatorización es igual o más gruesa que la unidad de análisis? Nunca más fina.
- ¿El identificador de la unidad es estable durante todo el test? Una cookie que rota transforma la aleatorización por usuario en aleatorización por sesión sin avisar a nadie.
- ¿El reparto por brazo coincide con lo planificado en la unidad aleatorizada? Compruébalo con el verificador de SRM, en la unidad correcta.
- ¿El informe muestra en qué unidad se calculó cada número? Dos métricas en unidades diferentes en la misma tabla necesitan estar etiquetadas.
- ¿El cálculo de poder se hizo en la unidad aleatorizada? No en la más numerosa.
Errores comunes
- Elegir la unidad por el conteo disponible. “Tenemos más sesiones que usuarios, entonces vamos a aleatorizar por sesión” es una decisión de poder aparente tomada contra la validez.
- Aleatorizar por usuario y reportar tasa por página sin corrección. Es el caso más común de todos, y es justamente donde el error estándar ingenuo salió 42 por ciento menor que el verdadero en la simulación de Deng, Knoblich y Lu.
- Cambiar la unidad en medio del test. Migrar de cookie a cuenta con login durante el experimento rebaraja quién está en qué brazo.
- Tratar dispositivo como usuario sin decirlo. La misma persona en el móvil y en el escritorio son dos unidades diferentes, y el efecto medido es por dispositivo, no por persona.
- Usar mínimo de conglomerado como si fuera mínimo de observación. Veinte cuentas B2B con muchos usuarios dentro siguen siendo veinte unidades aleatorizadas.
- Ignorar la heterogeneidad de tamaño. Los autores recomiendan explícitamente hacer los conglomerados homogéneos en tamaño, porque la varianza del tamaño del conglomerado entra directo en la varianza de la métrica y derriba el poder para detectar efectos pequeños.
Hazlo automático en Donnu
El error caro aquí no es elegir la unidad equivocada al inicio, es elegir una unidad al inicio y leer el resultado en otra al final, sin que nada en el informe señale el cambio.
En Donnu, la unidad de aleatorización forma parte de la declaración del experimento, y cada métrica del informe carga la etiqueta de la unidad en la que se calculó su denominador. Cuando el denominador es más fino que la unidad aleatorizada, el aviso de dependencia aparece junto al intervalo de confianza en vez de quedar escondido en una nota al pie. Y si quieres rehacer cualquier cálculo a mano, la calculadora de valor p y la calculadora de tamaño de muestra aceptan los conteos brutos en la unidad que elijas.
Referencias
- Deng, A., Knoblich, U. y Lu, J. Applying the Delta Method in Metric Analytics: A Practical Guide with Novel Ideas. KDD 2018. Fuente de las definiciones de unidad de aleatorización como el nivel de granularidad en el que se hace el muestreo o aleatorización y de unidad de análisis como el nivel de agregación del cálculo de la métrica, de la observación de que el análisis es directo cuando ambas coinciden, de la restricción de que la unidad de aleatorización no puede ser más granular que la unidad de análisis so pena de que la unidad de análisis contenga observaciones de los dos brazos, del relato de que la mayoría de los experimentos aleatorizados por usuario de la plataforma de Microsoft contiene métricas a nivel de usuario y de página, de la forma cerrada de la varianza para conglomerados de tamaño igual y del factor 1 más correlación intraclase por tamaño menos 1, de los dos casos extremos con correlación 0 y 1, de la salvedad de que esa forma cerrada tiene valor práctico limitado por asumir conglomerados iguales, de las razones prácticas de aleatorización por conglomerado (política corporativa e interferencia de red), de la recomendación de hacer los conglomerados homogéneos en tamaño, y de los números de la simulación con desviación verdadera 0,00895, error estándar ingenuo 0,00522 y método delta 0,00908. arxiv.org/abs/1803.06336.
- Bakshy, E. y Eckles, D. Uncertainty in Online Experiments with Dependent Data: An Evaluation of Bootstrap Methods. KDD 2013. Fuente de la afirmación de que los procedimientos que ignoran la dependencia son anticonservadores, con tasas de error Tipo I por encima del nominal e intervalos del 95 por ciento que cubren el valor verdadero menos del 95 por ciento de las veces. arxiv.org/abs/1304.7406.
- Kohavi, R., Deng, A., Longbotham, R. y Xu, Y. Seven Rules of Thumb for Web Site Experimenters. KDD 2014. Referencia sobre métricas organizacionales en vez de métricas de funcionalidad, sobre dilución de efecto por tamaño de segmento y sobre el volumen de falsos positivos generado por ejecutar muchos experimentos con métricas no correlacionadas. exp-platform.com.
- Kohavi, R., Tang, D. y Xu, Y. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020. Referencia general sobre elección de unidad de aleatorización, consistencia de experiencia y consecuencias de analizar en una unidad diferente de la aleatorizada. Material complementario en experimentguide.com.
Lee también: Métricas de ratio en tests A/B · Interferencia entre variantes · Test switchback · SRM: reparto desigual de tráfico · Análisis por disparo y dilución · Calculadora de valor p · Leia em português
Preguntas frecuentes
- ¿Qué es la unidad de aleatorización en un test A/B?
- Es el nivel de granularidad en el que ocurre el sorteo entre control y tratamiento. Deng, Knoblich y Lu definen la unidad de aleatorización como el nivel de granularidad en el que se hace el muestreo o la aleatorización, y la unidad de análisis como el nivel de agregación en el que se calcula la métrica. En la práctica, la unidad de aleatorización es quien recibe un lado del test y se queda en él: un usuario identificado por cookie, una sesión, un dispositivo, una cuenta, una región o un bloque de tiempo.
- ¿Cuál es la diferencia entre unidad de aleatorización y unidad de análisis?
- La unidad de aleatorización es lo que el sorteo asigna; la unidad de análisis es lo que la métrica cuenta en el denominador. Cuando ambas coinciden, el análisis es directo: aleatorizas por usuario y calculas ingreso medio por usuario. Cuando el denominador de la métrica es más fino que la unidad aleatorizada, como aleatorizar por usuario y medir tasa de clic por página, cada unidad aleatorizada se convierte en un conglomerado de varias observaciones correlacionadas, y el error estándar calculado como si fueran independientes sale menor que el verdadero.
- ¿Puedo aleatorizar por sesión en vez de por usuario?
- Puedes, y a veces es la elección correcta, pero el precio es alto y tiene que ser consciente. Al aleatorizar por sesión, el mismo visitante ve el control en una visita y el tratamiento en la siguiente, lo que rompe cualquier efecto que dependa de consistencia o de acumulación entre visitas y contamina la lectura entre los brazos. Aleatorizar por sesión tiene sentido sobre todo cuando la decisión testeada solo existe dentro de una visita y no deja memoria, o cuando no existe un identificador estable de usuario.
- ¿La unidad de aleatorización puede ser más fina que la unidad de análisis?
- No. Deng, Knoblich y Lu son explícitos: la unidad de aleatorización no puede ser más granular que la unidad de análisis, porque en ese caso la unidad de análisis contendría observaciones bajo tratamiento y bajo control al mismo tiempo, anulando el propósito de diferenciar los dos grupos. Aleatorizar por pageview y reportar una métrica por usuario significa que casi todo usuario está en los dos brazos, y la diferencia medida entre brazos tiende a cero por construcción.
- ¿Cómo corregir el valor p cuando el análisis es más fino que la aleatorización?
- Estimando el efecto de diseño e inflando la varianza por él. Para conglomerados de tamaño igual a m, el factor vale 1 más el producto del coeficiente de correlación intraclase por el tamaño del conglomerado menos 1, con la correlación intraclase midiendo cuánto de la varianza total viene de la varianza entre conglomerados. Los propios autores advierten que esa fórmula cerrada tiene valor práctico limitado porque asume conglomerados de tamaño igual, algo que no ocurre en la vida real; la salida que proponen es el método delta aplicado directamente a la definición de la métrica.
- ¿Aleatorizar por sesión da más poder estadístico que aleatorizar por usuario?
- Menos de lo que sugiere el conteo. El número de sesiones es mayor que el número de usuarios, pero las sesiones del mismo visitante no son independientes, así que cada sesión extra vale menos que una unidad nueva. En el límite en que el comportamiento está totalmente determinado por el usuario, la ganancia es cero: la muestra efectiva vuelve a ser el número de usuarios. El poder real queda entre esos dos extremos, y depende de la correlación intraclase de tu propio dato, no de un valor de referencia genérico.