Estadística

Aleatorización por Cluster en Test A/B: el efecto de diseño

Aleatorización por cluster en test A/B: sortear cuenta y analizar usuario infla el falso positivo de 5 a 14,5 por ciento. El efecto de diseño lo corrige.

Ilustración plana de dos recipientes cilíndricos verdes uno al lado del otro, cada uno con pilas de discos apilados, y una flecha curva moviendo una pila entera de un recipiente al otro

Si sorteas la cuenta y mides el usuario, tu test A/B no tiene el nivel de confianza que dice tener. Con 5 usuarios por cuenta y una correlación intraclase de 0,20, el test que crees que se equivoca 5 por ciento de las veces se equivoca 14,50 por ciento, y el plan de muestra que prometía 80 por ciento de potencia entrega 54,66. Este artículo muestra de dónde viene esa distorsión de la aleatorización por cluster, da la fórmula de una línea que la corrige, mide la corrección en 20 mil réplicas y trae un ejemplo trabajado en el que el mismo test gana con el cálculo equivocado y queda inconcluso con el correcto. Forma parte de nuestra guía completa de test A/B y complementa la elección de la unidad de aleatorización.

Aleatorización por cluster: sorteo y medición en niveles distintos

Todo experimento tiene dos unidades, y no siempre coinciden. La unidad de aleatorización es la granularidad en la que el azar decide quién va a qué brazo. La unidad de análisis es la granularidad en la que se calcula la métrica. Deng, Knoblich y Lu definen las dos exactamente así y observan que el análisis es directo cuando ambas coinciden, por ejemplo sortear por usuario y medir ingresos por usuario.

El problema aparece cuando la unidad de aleatorización es un agregado de unidades de análisis. En B2B eso es la regla, no la excepción: no puedes mostrar una interfaz a la mitad del equipo de una empresa y otra a la otra mitad, así que la cuenta entera va al mismo brazo. Los autores citan ese caso con todas las letras, una política corporativa que prohíbe que usuarios de la misma organización vean experiencias distintas, entre los motivos que hacen común en la práctica el experimento con aleatorización por cluster.

Sorteo por usuario contra sorteo por cuentaDos paneles uno al lado del otro. En el panel de la izquierda, rotulado sorteo por usuario, cuatro cajas representan cuentas y dentro de cada una los cinco usuarios aparecen mezclados entre el color del control y el color de la variante. En el panel de la derecha, rotulado sorteo por cuenta, las mismas cuatro cajas aparecen con los cinco usuarios del mismo color dentro de cada caja, dos cajas enteras en el control y dos enteras en la variante.Sorteo por usuarioSorteo por cuentaCada caja es una cuenta con 5 usuarios. Verde es control, rojo es variante.
A la izquierda, cada usuario sortea su propio brazo y las 4 cuentas quedan mezcladas. A la derecha, la cuenta entera va junta, y eso es lo que rompe el supuesto de independencia del análisis por usuario.

Kohavi, Longbotham, Sommerfield y Henne son explícitos sobre el supuesto que está detrás de toda la matemática del test: las unidades se asumen independientes, y para cualquier métrica a nivel de usuario, sesión o pageview la preferencia es sortear por usuario. Cuando el sorteo sube un nivel y el análisis no, el supuesto cae, y es justamente el que sostiene el error estándar.

Qué queda mal exactamente

El punto estimado no queda mal. Si el efecto es cero, la diferencia observada sigue girando en torno a cero; si el efecto es positivo, la diferencia observada sigue estimando el efecto correcto. Lo que queda mal es el error estándar, y por un motivo simple: el test de dos proporciones cuenta cada usuario como una información nueva, pero dos usuarios de la misma cuenta comparten mucho (el mismo sector, el mismo plan, el mismo administrador que configuró el producto, el mismo momento de contrato).

Deng, Knoblich y Lu midieron esa distorsión en una simulación con mil clusters. El estimador ingenuo, que trata todas las observaciones como independientes, devolvió un error estándar medio de 0,00522 cuando la desviación verdadera del estimador era 0,00895. El error estándar salió con 58 por ciento del tamaño que debería tener. El método delta devolvió 0,00908 para la misma desviación verdadera de 0,00895, casi encima.

Un error estándar demasiado pequeño es un valor p demasiado pequeño, y eso es demasiado falso positivo.

La fórmula de una línea: el efecto de diseño

La corrección clásica es el efecto de diseño. Es el factor por el cual la varianza del estimador crece cuando el sorteo es por cluster:

efecto de diseño = 1 + (m menos 1) por rho

siendo m el tamaño medio del cluster y rho la correlación intraclase, la fracción de la variación total que está entre clusters en lugar de dentro de ellos. Rho igual a cero significa que la cuenta no informa nada sobre el usuario y el efecto de diseño vale 1: no hay ningún problema. Rho igual a 1 significa que todos los usuarios de la cuenta son copias y la cuenta entera vale por un único usuario.

Killip, Mahfoud y Pearce describen el mismo mecanismo en investigación de atención primaria y registran un número que asusta por el orden de magnitud: con 4 consultorios reclutando 32 pacientes cada uno, y un rho de apenas 0,017, el efecto de diseño sale en 1,527, lo que reduce la muestra efectiva de 128 personas a 84 y explica por qué la potencia del estudio quedó en 61 por ciento. Un rho de menos del 2 por ciento tiró un tercio de la muestra, porque el cluster era grande.

Usuarios por cuenta (m) rho = 0,01 rho = 0,05 rho = 0,10 rho = 0,20 rho = 0,40
2 1,010 1,050 1,100 1,200 1,400
3 1,020 1,100 1,200 1,400 1,800
5 1,040 1,200 1,400 1,800 2,600
10 1,090 1,450 1,900 2,800 4,600
25 1,240 2,200 3,400 5,800 10,600
50 1,490 3,450 5,900 10,800 20,600

Fíjate en la asimetría de la tabla: el tamaño del cluster pesa mucho más que la correlación. Un rho modesto de 0,05 es inofensivo con 3 usuarios por cuenta (1,100) y devastador con 50 (3,450). Por eso la pregunta operativa correcta raramente es “cómo reduzco la correlación” y casi siempre es “cómo aumento el número de cuentas”.

Cómo crece el efecto de diseño con el tamaño del clusterTres curvas ascendentes que parten del valor 1 en el eje vertical. El eje horizontal trae el número de usuarios por cuenta, de 1 a 25. La curva más baja, correlación intraclase de 0,05, llega a 2,2 en 25 usuarios. La curva intermedia, correlación de 0,10, llega a 3,4. La curva más alta, correlación de 0,20, llega a 5,8. Las tres son rectas, porque el efecto de diseño es lineal en el tamaño del cluster.rho 0,05rho 0,10rho 0,2012351025usuarios por cuenta1x2x3x4x
El efecto de diseño es lineal en el tamaño del cluster. Duplicar el número de usuarios por cuenta casi duplica el coste en muestra; duplicar el número de cuentas no cobra nada.

Cuánto cuesta esto en días de calendario

Vamos a un plan concreto. Base de conversión de 5 por ciento, objetivo de detectar una ganancia relativa de 10 por ciento, 95 por ciento de confianza, 80 por ciento de potencia, 40 mil visitantes por semana. La calculadora de abajo devuelve 31.234 por variación, lo que da 11 días con los dos brazos corriendo.

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.

Ese 31.234 es el número para usuarios independientes. Si el sorteo es por cuenta, él es el piso, no el objetivo. Multiplica por el efecto de diseño y divide por el tamaño del cluster para saber cuántas cuentas necesitas en cada brazo:

Perfil de la base Efecto de diseño Usuarios por brazo Cuentas por brazo Días
5 usuarios/cuenta, rho 0,05 1,200 37.481 7.497 14
5 usuarios/cuenta, rho 0,10 1,400 43.728 8.746 16
5 usuarios/cuenta, rho 0,20 1,800 56.222 11.245 20
3 usuarios/cuenta, rho 0,30 1,600 49.975 16.659 18
10 usuarios/cuenta, rho 0,20 2,800 87.456 8.746 31
25 usuarios/cuenta, rho 0,05 2,200 68.715 2.749 25

El test de 11 días se convierte en un test de 20 días en el escenario más común de SaaS B2B, y de 31 días cuando las cuentas son mayores. Vale fijarse en la línea de 25 usuarios por cuenta: necesita solo 2.749 cuentas por brazo, lo que parece poco, pero cuesta 25 días, porque cada cuenta grande es cara en usuarios y barata en información.

El falso positivo, medido

Nada de esto necesita aceptarse por fe. Simulamos 20 mil experimentos por línea con un modelo beta-binomial, en el que la tasa de conversión de cada cuenta se sortea de una distribución con la correlación intraclase deseada y los usuarios dentro de ella convierten de forma independiente dada esa tasa. El efecto verdadero es exactamente cero en todas las líneas.

Escenario Efecto de diseño Falso positivo previsto Falso positivo medido (usuario) Falso positivo medido (cuenta)
5 usuarios/cuenta, rho 0,05 1,200 7,36% 7,38% 5,08%
5 usuarios/cuenta, rho 0,10 1,400 9,76% 9,70% 5,04%
3 usuarios/cuenta, rho 0,30 1,600 12,13% 12,03% 4,79%
5 usuarios/cuenta, rho 0,20 1,800 14,41% 14,50% 4,82%
10 usuarios/cuenta, rho 0,20 2,800 24,15% 23,47% 4,88%
5 usuarios/cuenta, rho cercano a cero 1,000 5,00% 5,20% 5,21%

La columna “previsto” no es una adivinanza: es simplemente la probabilidad de que el z inflado pase de 1,96, es decir, lo que queda después de dividir el corte por la raíz del efecto de diseño. Coincide con la medida en todas las líneas dentro del error de simulación, que aquí es de cerca de 0,15 punto porcentual. Y la última línea es la prueba por contraste: cuando la correlación desaparece, el test ingenuo vuelve a equivocarse 5 por ciento, porque no había ningún cluster que ignorar.

Falso positivo del test ingenuo contra el test a nivel de cuentaGráfico de barras pareadas en cinco escenarios. En cada par, la barra oscura es la tasa de falso positivo del test a nivel de usuario y la barra clara es la del test a nivel de cuenta. Los valores de la barra oscura suben de 7,38 por ciento con correlación 0,05 hasta 23,47 por ciento con diez usuarios por cuenta y correlación 0,20, mientras que la barra clara queda siempre cerca de 5 por ciento. Una línea discontinua horizontal marca el nivel nominal de 5 por ciento.5%7,49,712,014,523,55 u. rho 0,055 u. rho 0,103 u. rho 0,305 u. rho 0,2010 u. rho 0,20análisis por usuarioanálisis por cuenta
Veinte mil réplicas por escenario, todas con efecto verdadero igual a cero. El análisis a nivel de cuenta sostiene el 5 por ciento en todos los arreglos; el análisis a nivel de usuario llega a equivocarse casi una vez de cada cuatro.

La potencia también desaparece, y el efecto de diseño la devuelve

Si la corrección fuera solo un peaje, se podría fingir que no existe. No lo es: sin ella, el test se queda sin potencia, que es el problema opuesto e igualmente caro. Corrimos 8 mil réplicas por línea con un efecto verdadero de 10 por ciento relativo, comparando el número de cuentas que sale del plan ajustado por el efecto de diseño con el número que sale del plan ingenuo.

Escenario Cuentas/brazo por el plan ajustado Potencia medida Cuentas/brazo sin ajuste Potencia medida
5 usuarios/cuenta, rho 0,10 8.746 79,84% 6.247 65,36%
5 usuarios/cuenta, rho 0,20 11.245 79,71% 6.247 54,66%
10 usuarios/cuenta, rho 0,20 8.746 79,81% 3.124 38,06%

El plan ajustado devuelve el 80 por ciento prometido en las tres líneas, con una desviación menor a 0,4 punto porcentual del objetivo. El plan ingenuo entrega 38 por ciento de potencia en el escenario de cuentas grandes: dos de cada tres ganancias reales de 10 por ciento pasarían desapercibidas. Larsen y coautores resumen el mecanismo en una frase, al discutir aleatorización por cluster en redes sociales: con los clusters siendo la unidad de sorteo en lugar de los usuarios individuales, el tamaño efectivo de muestra, y por tanto la potencia, cae drásticamente.

El ejemplo trabajado: el mismo test, dos veredictos

Simulamos un único experimento con semilla fija. 1.200 cuentas por brazo, 5 usuarios por cuenta, correlación intraclase de 0,20, y efecto verdadero igual a cero. La variante no hace absolutamente nada.

Control Variante
Usuarios 6.000 6.000
Conversiones 304 360
Tasa 5,0667% 6,0000%

Pega esos cuatro números en la calculadora de significancia y el veredicto viene redondo: z de 2,2360, valor p de 0,025354, ganancia relativa de más 18,42 por ciento, intervalo de confianza de 0,1154 a 1,7513 punto porcentual, gana la variante. Es el tipo de resultado que un equipo celebra, escribe en el informe y manda a producción.

Ahora la misma tabla leída al nivel correcto. Cada cuenta tiene su propia tasa de conversión (0 de 5, 1 de 5, 2 de 5), y el test es sobre las 1.200 tasas de cuenta de cada brazo. Las medias son idénticas a las tasas globales, porque las cuentas tienen todas el mismo tamaño: 0,050667 en el control y 0,060000 en la variante. Lo que cambia es el error estándar, que ahora viene de la dispersión entre cuentas y no de la suma de los usuarios: 0,005759 en lugar de 0,004174.

Análisis Diferencia Error estándar Estadístico valor p IC 95% Veredicto
Por usuario (ingenuo) 0,9333 pp 0,004174 z 2,2360 0,025354 0,1154 a 1,7513 pp gana
Por cuenta (correcto) 0,9333 pp 0,005759 t 1,6206 0,105093 -0,1954 a 2,0621 pp inconcluso
Los dos intervalos de confianza del mismo experimentoDos barras horizontales de intervalo de confianza sobre un eje en puntos porcentuales que va de menos 0,5 a más 2,5. La barra de arriba, del análisis por usuario, va de 0,1154 a 1,7513 y no toca la línea vertical del cero. La barra de abajo, del análisis por cuenta, va de menos 0,1954 a 2,0621 y atraviesa la línea del cero. Las dos tienen el mismo punto central, 0,9333 punto porcentual.0-0,51,02,0diferencia en puntos porcentualespor usuario: p 0,0254, ganapor cuenta: p 0,1051, inconcluso
Mismo punto estimado, intervalos distintos. El intervalo del análisis por usuario es 27 por ciento más estrecho de lo que debería, y es solo eso lo que separa “gana” de “inconcluso”.

Vale comprobar que la cuenta cierra por otro camino. Dividiendo el z ingenuo de 2,2360 por la raíz del efecto de diseño de 1,8 salen 1,6666 y un valor p de 0,095596, prácticamente lo mismo que devolvió el test a nivel de cuenta (1,6206 y 0,105093). La pequeña diferencia es ruido muestral del rho real de esa muestra específica. Aplicando el estimador de análisis de varianza a los datos simulados, los dos brazos devolvieron una correlación intraclase de 0,1946 y 0,2526, alrededor del 0,20 verdadero.

Este experimento no tenía ningún efecto. Solo entró en la franja de 14,50 por ciento de falsos positivos que el análisis ingenuo produce en ese arreglo. Si corres diez tests por trimestre con sorteo por cuenta y lectura por usuario, el número esperado de victorias inventadas por año es cercano a seis.

Cómo medir tu rho sin correr ningún experimento

La correlación intraclase es una propiedad de tu base, no del test, así que se puede estimar con datos históricos de un periodo sin ningún experimento. El camino más corto:

  1. Elige una ventana reciente con volumen parecido al del test que vas a correr.
  2. Para cada cuenta, calcula la tasa de conversión de sus usuarios en esa ventana.
  3. Separa la variación entre cuentas de la variación dentro de cada cuenta, con el estimador de análisis de varianza.
  4. Rho es la fracción de la variación total que está entre cuentas.

Un atajo de sensatez, si el número parece demasiado alto o demasiado bajo: corre un test A/A con sorteo por cuenta, compara la lectura por usuario con la lectura por cuenta y mira cuánto divergen los errores estándar. La razón entre los dos al cuadrado es una estimación directa del efecto de diseño, sin necesidad de ninguna fórmula.

Killip y coautores registran que en estudios con personas los valores típicos quedan entre 0,01 y 0,02, y piden que los investigadores publiquen sus rhos para que el campo acumule referencias. Vale repetir de dónde viene ese intervalo: investigación clínica con pacientes de consultorios. Las cuentas de software suelen ser bastante más homogéneas por dentro, así que ese no es el número para copiar, es solo el recordatorio de que hasta un rho muy pequeño tira la muestra efectiva cuando el cluster es grande.

Cuentas, no usuarios por cuenta

La consecuencia más accionable de la fórmula es una regla de reclutamiento. Como el efecto de diseño depende de m y no de k, quien quiere potencia debe buscar más clusters, no clusters mayores. Killip y coautores lo demuestran manteniendo el total de personas fijo en 128 y solo cambiando el arreglo:

Clusters (k) Personas por cluster (m) Total Efecto de diseño Muestra efectiva Potencia
4 32 128 1,527 84 61%
8 16 128 1,255 102 70%
16 8 128 1,119 114 75%
32 4 128 1,051 122 78%
64 2 128 1,017 126 79%
128 1 128 1,000 128 80%

El mismo número de personas entrega de 61 a 80 por ciento de potencia dependiendo solo de cómo estén agrupadas. Y en la dirección contraria los autores muestran el coste de engordar el cluster: manteniendo 4 consultorios y subiendo de 10 a 80 pacientes cada uno, el efecto de diseño va de 1,153 a 2,343 y la potencia solo llega a 82 por ciento porque el total pasó de 40 a 320 personas. Multiplicar por 8 el reclutamiento para pasar de 29 a 82 por ciento de potencia es un pésimo negocio comparado con simplemente conseguir más clusters.

En la práctica, en producto B2B, eso significa preferir correr el test en la base entera de cuentas pequeñas y medianas antes que correrlo solo en las cuentas enterprise, aunque las enterprise traigan más usuarios. Y significa que extender el experimento en días, cuando no entran cuentas nuevas, ayuda mucho menos de lo que sugiere la curva de duración.

Las tres salidas de análisis, y lo que cobra cada una

Reconocido el problema, existen tres formas habituales de analizar, y no son equivalentes.

Agregar por cluster. Calcula la tasa de cada cuenta y haz un test de dos muestras sobre esas tasas. Es lo que hicimos en el ejemplo trabajado, es trivial de implementar en SQL y devolvió de 4,79 a 5,08 por ciento de falso positivo en todos los escenarios simulados. La limitación es que responde sobre la cuenta media, no sobre el usuario medio, lo que importa cuando las cuentas tienen tamaños muy distintos.

Método delta en la métrica de ratio. Mantiene la métrica a nivel de usuario y corrige solo la varianza, tratando la tasa como razón de dos medias de cantidades por cluster. Es lo que recomiendan Deng, Knoblich y Lu, y en su simulación devolvió un error estándar de 0,00908 contra una desviación verdadera de 0,00895. Detallamos el mecanismo en métricas de ratio y el método delta.

Modelo de efectos mixtos. Acierta la varianza pero tiene un problema de estimando que suele pasar desapercibido. Deng, Knoblich y Lu lo midieron: con un valor verdadero de 0,667, el modelo mixto devolvió 0,547. El motivo es que estima la media de las medias de cuenta, dando peso igual a toda cuenta, lo que solo coincide con la media poblacional cuando el efecto es homogéneo. En un conjunto de cuentas con tamaños y comportamientos muy distintos, el sesgo es grande.

Cuándo aparece esto fuera del B2B

El sorteo por cluster no es exclusividad del SaaS empresarial. La misma matemática vale cuando:

En todos, la pregunta de diagnóstico es la misma y cabe en una frase: ¿la cosa que el azar eligió es la misma cosa que la métrica cuenta? Si no lo es, tienes un efecto de diseño que pagar.

Hazlo automático en Donnu

El motivo más común de que un test B2B nazca con el falso positivo equivocado no es ignorancia de la estadística, es que la herramienta pregunta “cuántos visitantes” y nunca pregunta “sorteados cómo”. En Donnu la unidad de aleatorización es un campo del experimento, no una convención implícita: al declarar que el sorteo es por cuenta, el cálculo de muestra ya multiplica por el efecto de diseño estimado a partir de tu propio histórico, la fecha prevista de término considera la entrada de cuentas nuevas y no solo de usuarios, y la lectura del resultado sale al nivel del sorteo, con el intervalo de confianza correcto desde la primera mirada. Si la correlación intraclase observada durante el test diverge de la que entró en el plan, el experimento avisa en vez de dejar el número viejo en pie.

Preguntas frecuentes

Las respuestas cortas están en la sección de preguntas frecuentes de esta página, montadas a partir de los mismos cálculos presentados aquí.

Referencias

Lee también

Leia em português · Read in English

Preguntas frecuentes

¿Qué es la aleatorización por cluster en un test A/B?
Es cuando el sorteo ocurre en un nivel más grueso que el nivel en el que se calcula la métrica. El caso más común en B2B es sortear la cuenta y medir la conversión por usuario: todos los usuarios de la misma empresa caen en el mismo brazo. Deng, Knoblich y Lu describen exactamente ese caso, con una política corporativa que prohíbe que usuarios de la misma organización vean experiencias distintas, como un ejemplo práctico de experimento con aleatorización por cluster.
¿Por qué analizar usuarios cuando el sorteo fue por cuenta rompe el test?
Porque el test de dos proporciones asume que cada observación es independiente, y los usuarios de la misma cuenta no lo son. En nuestras 20 mil réplicas con 5 usuarios por cuenta y correlación intraclase de 0,20, el test ingenuo a nivel de usuario devolvió 14,50 por ciento de falso positivo en lugar de 5. El punto estimado sigue siendo correcto; lo que queda mal es el error estándar, que sale demasiado pequeño.
¿Qué es el efecto de diseño y cómo se calcula?
Es el factor por el cual la muestra necesita crecer para compensar la semejanza dentro del cluster. Vale 1 más (m menos 1) por rho, siendo m el tamaño medio del cluster y rho la correlación intraclase. Con 5 usuarios por cuenta y rho de 0,20 da 1,8: necesitas 80 por ciento más usuarios. Con 10 usuarios por cuenta y el mismo rho da 2,8.
¿Cómo estimar la correlación intraclase antes de correr el test?
Con tus propios datos históricos, con el estimador de análisis de varianza aplicado a las tasas por cuenta en un periodo sin ningún experimento. En nuestro ejemplo trabajado, en el que el valor verdadero era 0,20, los dos brazos devolvieron 0,1946 y 0,2526. Killip, Mahfoud y Pearce registran que en estudios con personas los valores suelen quedar entre 0,01 y 0,02, pero esa es la realidad de la investigación clínica en consultorios, no de cuentas de software, donde la semejanza interna tiende a ser bastante mayor.
¿Compensa más aumentar el número de cuentas o el número de usuarios por cuenta?
Cuentas, casi siempre. Killip y coautores muestran que manteniendo 128 personas en total y solo cambiando el arreglo, 4 clusters de 32 devuelven una potencia de 61 por ciento y 32 clusters de 4 devuelven 78 por ciento. El efecto de diseño depende del tamaño del cluster, no del total, así que un cluster grande es caro y un cluster pequeño es casi gratis.
¿Existe una forma de seguir analizando a nivel de usuario?
Existe, siempre que el error estándar se calcule al nivel del sorteo. Las dos rutas habituales son el método delta aplicado a la métrica de ratio y el test sobre las medias por cluster. Deng, Knoblich y Lu compararon las dos contra el modelo de efectos mixtos y registraron que el ingenuo subestima la varianza, el delta acierta, y el modelo mixto acierta la varianza pero devuelve un punto estimado sesgado, porque estima la media de las cuentas y no la media de los usuarios.