Estadística

Test Switchback: experimentar bajo efecto de red

Cuando los brazos comparten el mismo stock, el test A/B por usuario mide mal. El test switchback alterna en el tiempo y devuelve el efecto real.

Ilustración isométrica plana de manzanas de una ciudad alternando entre verde profundo y verde menta, con un pequeño marcador redondeado sobre uno de los bloques

En un marketplace, los dos brazos de un test A/B comparten el mismo stock de oferta, así que la asignación de un usuario cambia el resultado del otro y el experimento mide una versión diluida del efecto. El test switchback resuelve esto cambiando la unidad de aleatorización: en vez de sortear usuarios, sorteas ventanas de tiempo dentro de cada región, y cada par tiempo más región se convierte en una unidad experimental. Esta guía cubre por qué el test por usuario encoge el efecto en un sistema con oferta compartida, un ejemplo trabajado en el que el mismo efecto real de 2 puntos porcentuales aparece como 1 punto en el diseño equivocado y exige 4,1 veces más muestra, cómo elegir el tamaño de la ventana entre sesgo y margen de error, el diseño óptimo demostrado en la literatura, y por qué el valor p que sale de la calculadora necesita corrección. Forma parte de nuestra guía completa de test A/B y es el diseño que resuelve el problema descrito en interferencia entre variantes.

El problema: tus dos brazos comparten la misma flota

El test A/B estándar se apoya en una hipótesis que rara vez se dice en voz alta: que el resultado de un usuario no depende de qué variación recibieron los demás usuarios. En un sitio de contenido eso es casi siempre verdad. En un marketplace, casi nunca.

El equipo de Dispatch de DoorDash publicó el ejemplo más claro de esto. Usan un precio dinámico de pico cuando hay menos repartidores de los necesarios para el volumen de pedidos que está entrando: la tarifa de entrega sube, parte de la demanda se desplaza a más tarde y más repartidores deciden salir a trabajar. Supón que quieres probar un cambio en ese algoritmo como un test A/B de consumidores, con la mitad viendo el precio de pico y la mitad no. Su relato es directo sobre lo que pasa: el primer grupo recibe solo la mitad del beneficio del reequilibrio de oferta, y el segundo grupo recibe parte del beneficio sin pagar nada por él. Los dos grupos siguen compartiendo la misma flota, así que no existe independencia entre ellos.

El efecto práctico es siempre el mismo, y se mide de menos. El control queda contaminado por el tratamiento, la diferencia entre los brazos se encoge, y el test concluye que el cambio vale menos de lo que vale.

Por qué la división por usuario diluye el efecto en un marketplaceA la izquierda, el test por usuario: los grupos A y B son distintos, pero ambos tiran de la misma flota compartida de repartidores, así que el beneficio del tratamiento se filtra al control y la diferencia medida cae de 2 puntos porcentuales a 1. A la derecha, el switchback: la región entera está en control o en tratamiento durante una ventana de tiempo, así que ninguna flota se divide y la diferencia medida es el efecto completo.División por usuario: el beneficio se filtraDivisión por ventana: brazos separados en el tiempogrupo Agrupo Buna flota, dos gruposdiferencia medida: 1,000 ppla mitad del efecto se fue al controlventana en Aventana en Bflota enteraflota enteradiferencia medida: 2,000 ppnada se compartió entre los brazosEl efecto verdadero es el mismo en los dos diseños. Lo que cambia es cuánto de él consigue ver el experimento.Números del ejemplo trabajado más abajo.
La flota compartida es el canal de fuga. Separar en el tiempo cierra ese canal sin necesidad de separar el mercado.

Qué es un test switchback

En un test switchback alternas la región entera entre control y tratamiento a lo largo del tiempo, sorteando qué variación rige en cada ventana. DoorDash describe el mecanismo en una frase: se alterna entre los algoritmos de control y de tratamiento en una determinada región en periodos de tiempo alternados, y después se comparan las métricas de los periodos de control contra las de los periodos de tratamiento.

Dos detalles de implementación separan un switchback correcto de una alternancia ingenua:

  1. La variante de cada ventana se sortea, no se alterna. El relato de DoorDash es explícito en este punto: aleatorizan la variante usada en cada ventana de tiempo, en vez de sortear la variante inicial y después alternar de forma determinista. La alternancia fija es vulnerable a cualquier ciclo del negocio que tenga un periodo parecido al de la alternancia.
  2. Las regiones se sortean de forma independiente unas de otras. La región A puede usar el algoritmo actual en una ventana y el nuevo en la siguiente, mientras la región B hace el camino inverso. Eso es lo que crea lo que ellos llaman unidades tiempo más región.
Patrón de sorteo de dos regiones a lo largo de doce ventanasDos líneas de tiempo, una por región, divididas en doce ventanas de 30 minutos. Cada ventana se rellena en verde oscuro cuando se sortea para tratamiento y en gris claro cuando se sortea para control. Los patrones de las dos regiones son diferentes entre sí porque cada región se sortea de forma independiente, y ninguno de los dos patrones alterna de forma regular.Doce ventanas de 30 minutos, dos regiones sorteadas de forma independienteregión Aregión BtratamientocontrolCada cuadrado es una unidad experimental: un par de ventana y región. Doce ventanas en dos regiones generan 24 unidades.Fíjate en que ninguna de las dos líneas alterna de forma regular. La alternancia regular no es sorteo.
El sorteo ocurre en cada ventana y en cada región por separado. Eso es lo que convierte tiempo y geografía en muestra.

Ejemplo trabajado: el mismo efecto, dos diseños

Un marketplace de entregas quiere probar un nuevo algoritmo de despacho. Su efecto verdadero sobre la tasa de entregas dentro del plazo prometido es de 2,000 puntos porcentuales, del 85,000 por ciento al 87,000 por ciento, cuando el algoritmo gobierna el mercado entero.

Diseño 1, test A/B por consumidor. La mitad de los consumidores se despacha con el algoritmo nuevo, la mitad con el antiguo, y las dos mitades compiten por la misma flota. El beneficio se esparce: el control también mejora, porque la flota en conjunto quedó más eficiente. Supón que se filtre la mitad de la ganancia, un escenario conservador. Pega esto 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.

Test por consumidor Entregas En plazo Tasa medida
A, algoritmo actual, contaminado por la fuga 120.000 102.000 85,000 por ciento
B, algoritmo nuevo 120.000 103.200 86,000 por ciento

La calculadora devuelve más 1,000 punto porcentual, más 1,176 por ciento relativo, z = 6,957, valor p por debajo de 0,00001, intervalo del 95 por ciento de más 0,718 a más 1,282 punto porcentual. El resultado es significativo y está equivocado por la mitad.

Diseño 2, switchback. Las mismas 240 mil entregas, ahora organizadas en ventanas de 30 minutos sorteadas por región. Ninguna ventana divide la flota:

Switchback por ventana y región Entregas En plazo Tasa medida
Ventanas en control 120.000 102.000 85,000 por ciento
Ventanas en tratamiento 120.000 104.400 87,000 por ciento

Ahora la calculadora devuelve más 2,000 puntos porcentuales, más 2,353 por ciento relativo, z = 14,119, valor p por debajo de 0,00001, intervalo de más 1,722 a más 2,278 punto porcentual.

El punto no es que el primer diseño saliera no significativo, porque con 120 mil entregas por brazo salió significativo. El punto es el precio en muestra. Para detectar 2,000 puntos porcentuales sobre una base del 85 por ciento con 95 por ciento de confianza y 80 por ciento de potencia se necesitan 4.724 por brazo. Para detectar el efecto diluido de 1,000 punto porcentual se necesitan 19.461 por brazo. La fuga cobra 4,1 veces más muestra para ver el mismo cambio de producto, y esa cuenta la puedes rehacer en la calculadora de tamaño de muestra.

La unidad de análisis tiene que ser la unidad de sorteo

Este es el error más caro del switchback, y es sutil porque parece desperdicio de dato. Sorteaste ventanas, así que el análisis corre sobre ventanas, no sobre entregas.

DoorDash es explícito: realizan los tests estadísticos sobre los valores medios de las unidades tiempo más región de control y de tratamiento, y no sobre los valores individuales de las entregas. En la práctica eso significa que la media de cada brazo es una media simple de las unidades, no una media de las entregas ponderada por el volumen de cada ventana.

La diferencia entre las dos medias no es cosmética. Ellos registran una lectura de diagnóstico útil al respecto: la media simple y la ponderada suelen converger con el tiempo, y cuando no convergen eso es señal de que la intervención tiene un impacto diferente en unidades con muchas entregas y en unidades con pocas. Vale la pena calcular las dos justamente por esa señal.

Pregunta Test A/B de usuario Test switchback
Qué se sortea usuario o dispositivo par de ventana de tiempo y región
Qué entra en el test estadístico usuario ventana y región
Tamaño típico de la muestra cientos de miles miles de ventanas
Hipótesis de independencia plausible violada por construcción
Resuelve interferencia de oferta no
Coste bajo pierde potencia, exige más tiempo de calendario

Elegir la ventana: sesgo de un lado, margen de error del otro

El tamaño de la ventana y el tamaño de la región son la decisión de diseño que de verdad importa, y DoorDash encuadra la elección como un tira y afloja entre dos problemas.

Sesgo. Aparece cuando la aleatorización de las unidades queda comprometida y los tipos de entrega que caen en cada brazo dejan de parecerse en promedio. El ejemplo que dan es preciso: un algoritmo reacio a aceptar entregas con distancia larga entre tienda y cliente puede ser observado como más rápido sin ser mejor, porque eligió las entregas cortas y dejó las largas para que el control las limpiara. Ese sesgo es más probable cuando las regiones se hacen demasiado pequeñas o cuando el cambio es demasiado frecuente, porque la ventana siguiente hereda el servicio que la anterior empujó hacia adelante.

Margen de error. Va en el sentido opuesto. Cuanto más granular la unidad, mayor la variación natural de la métrica dentro de ella, pero también mayor el número de unidades. Como el margen de error es proporcional a la variación natural dividida por la raíz del número de unidades, existe un punto de equilibrio, y se encuentra empíricamente. Ellos encontraron el suyo ejecutando una serie de tests A/A largos y midiendo cómo cambiaba el margen de error según cambiaban más rápido o más despacio. El resultado práctico que informan: ventanas de 30 minutos, en divisiones geográficas aproximadamente al nivel de ciudad.

El tira y afloja entre sesgo y margen de error en la elección de la ventanaDos curvas sobre el mismo eje horizontal, que va de ventanas cortas a la izquierda a ventanas largas a la derecha. La curva del sesgo es alta a la izquierda y cae hacia la derecha. La curva del margen de error es baja a la izquierda y sube hacia la derecha. La franja útil queda en el medio, donde ninguna de las dos está alta, y ahí es donde encaja la elección de 30 minutos que informa DoorDash.ventana corta, región pequeñaventana larga, región grandeproblemafranja útilsesgo de asignaciónmargen de errorel tratamiento empuja serviciohacia la ventana siguientequedan pocas unidadespara el test estadísticoEl punto de equilibrio no es teórico. Se encuentra ejecutando tests A/A con ventanas de tamaños diferentes y comparando los márgenes de error.
Ninguno de los dos extremos es seguro. Acortar la ventana para ganar unidades compra sesgo con potencia.

El diseño óptimo, según la teoría

El lado empírico de esa elección recibió tratamiento formal en Design and Analysis of Switchback Experiments, de Iavor Bojinov, David Simchi-Levi y Jinglong Zhao. Formulan el diseño como un problema de optimización minimax y llegan a dos resultados que interesan directamente a quien va a ejecutar el test.

Primero: la moneda tiene que ser honesta. El Teorema 1 del artículo establece que cualquier diseño óptimo necesita tener probabilidad de asignación igual a 1 sobre 2 en todos los puntos de sorteo. Dividir 70 contra 30 no es una elección conservadora aquí, es una elección peor.

Segundo: el periodo debe acompañar al efecto residual. El efecto residual, o carryover, es el tiempo durante el cual el tratamiento sigue influyendo en el resultado después de apagado. Llamando m al orden de ese efecto y T al horizonte total, cuando T es múltiplo de m con al menos cuatro bloques, los puntos de sorteo óptimos son el instante 1 y después los instantes 2m+1, 3m+1, y así sucesivamente hasta (n-2)m+1. El efecto práctico es que el primer y el último bloque tienen el doble de longitud que los bloques del medio.

Horizonte T = 12 periodos, efecto residual de orden m = 2 Periodos
Puntos de sorteo óptimos 1, 5, 7, 9
Bloque inicial periodos 1 a 4, longitud 2m
Bloques del medio 5 a 6 y 7 a 8, longitud m
Bloque final periodos 9 a 12, longitud 2m

Los autores sacan de ahí una orientación práctica que vale la pena leer despacio: la frecuencia óptima de sorteo depende de la duración física del efecto residual, independientemente de la granularidad elegida para un único periodo. Es decir, la pregunta correcta no es cuántos minutos quieres, sino cuánto tiempo tarda tu sistema en olvidar el tratamiento. Si el mercado tarda 25 minutos en reequilibrar la oferta después de un cambio de precio, es eso lo que dicta el periodo, no la conveniencia del informe.

También observan una robustez útil: cuando no existe efecto residual (m igual a cero) o es mínimo (m igual a 1), los diseños óptimos son prácticamente los mismos. Errar hacia el lado de suponer un efecto residual corto cuesta poco.

El valor p que devuelve la calculadora es optimista

Aquí está la parte que ninguna calculadora avisa, incluida la nuestra. El test de dos proporciones que acabas de ejecutar supone unidades independientes. En un switchback esa hipótesis es falsa por construcción.

El motivo es físico. DoorDash lo pone en términos concretos: el tiempo medio para completar entregas en un área durante un intervalo de 10 minutos está fuertemente correlacionado con el tiempo medio en la misma área en el intervalo siguiente, mucho más de lo que una entrega aislada está correlacionada con la entrega siguiente. Las ventanas vecinas comparten clima, tráfico, promociones y el mismo turno de repartidores.

Correlación positiva entre unidades del mismo brazo significa varianza subestimada, que significa error estándar demasiado pequeño, que significa valor p demasiado pequeño. La corrección que usan es un estimador de varianza robusto a la falta de independencia, de tipo sándwich, y informan que en los tests A/A ejecutados el efecto de ese estimador sobre las cuentas de varianza quedó por debajo del 10 por ciento.

Vale la pena ver el tamaño de esa corrección en nuestro ejemplo. Inflar la varianza en un 10 por ciento multiplica el error estándar por raíz de 1,10, es decir, por 1,0488. La z de 14,119 del switchback cae a 13,462, y el resultado sigue a millas de cualquier umbral de significancia. Esa es la buena noticia incorporada en su número: cuando la correlación entre ventanas es moderada, la corrección cambia la cuenta y rara vez cambia la decisión. La mala noticia es que eso no es una ley, es una medición que ellos hicieron en su sistema. Mide en el tuyo, con tests A/A, antes de asumir que tu correlación también es pequeña. El procedimiento es el mismo descrito en test A/A y validación.

Bojinov, Simchi-Levi y Zhao ofrecen dos salidas más rigurosas para quien las quiera: valores p exactos basados en aleatorización, y tests conservadores construidos sobre un teorema central del límite para población finita. Las dos prescinden de la hipótesis de normalidad que carga la aproximación de dos proporciones.

Checklist antes de ejecutar un switchback

  1. ¿La interferencia existe de verdad? Si los brazos no compiten por ningún recurso, el switchback solo cuesta potencia. Un test A/B común es mejor siempre que sea válido.
  2. ¿Cuál es el orden del efecto residual? Cuánto tiempo tarda tu sistema en volver a la normalidad después de apagar el tratamiento. Ese número, y no la conveniencia, define la ventana.
  3. ¿La variante de cada ventana se sortea de verdad? Sorteo en cada ventana, mitad y mitad, e independiente entre las regiones.
  4. ¿El análisis corre sobre ventanas? Media simple de las unidades tiempo más región. Calcula también la ponderada, pero solo para comparar las dos.
  5. ¿La varianza se corrigió por la dependencia entre ventanas vecinas? Sin eso el valor p es optimista.
  6. ¿La aleatorización pasó la comprobación de salud? DoorDash informa que comprobar si la proporción esperada de entregas cayó en cada brazo ya detecta la mayor parte de los casos de sesgo, y que, cuando notan sesgo, cierran el experimento y recomienzan con unidades de tiempo o geografía más gruesas. Vale la misma disciplina de reparto desigual de tráfico.
  7. ¿El resultado coincide con la realidad después del lanzamiento? Ellos hacen esa verificación mirando la serie temporal de la métrica antes y después del lanzamiento definitivo, buscando confirmación direccional, no igualdad exacta.

Errores comunes

Hazlo automático con Donnu

Lo que hace difícil un switchback no es la estadística, es la disciplina de mantener la unidad de sorteo y la unidad de análisis emparejadas de principio a fin, con el resultado bueno ya en pantalla.

En Donnu, el informe de un experimento siempre declara cuál fue la unidad de aleatorización y ejecuta el test sobre esa unidad, sin ofrecer la opción de cambiar la unidad a la hora del análisis porque el número quede más bonito. Cuando el diseño tiene unidades agrupadas, la alerta de dependencia aparece encima del resultado, no en un pie de página. Y si quieres rehacer cualquier cuenta a mano, la calculadora de valor p acepta los recuentos brutos de cualquier corte.

Referencias

Lee también: Interferencia entre variantes · Tests simultáneos y efecto de interacción · Métricas de ratio · Test A/A y validación · Calculadora de valor p · Leia em português

Preguntas frecuentes

¿Qué es un test switchback?
Es un experimento en el que la misma unidad, normalmente una ciudad o una región entera, se expone al control y al tratamiento en ventanas de tiempo alternadas y sorteadas. En vez de dividir a los usuarios en dos grupos, divides el tiempo. La unidad experimental deja de ser el usuario y pasa a ser el par tiempo más región. El equipo de Dispatch de DoorDash describió esa arquitectura en detalle en 2018 y ejecuta sus tests con ventanas de 30 minutos en divisiones geográficas cercanas al nivel de ciudad.
¿Cuándo es mejor el test switchback que el test A/B tradicional?
Cuando los dos brazos compiten por el mismo recurso compartido y por eso interfieren entre sí. El ejemplo canónico es el precio dinámico en un marketplace de entregas: si la mitad de los consumidores ve el precio de pico y la mitad no, las dos mitades siguen compartiendo la misma flota de repartidores, así que el control recibe parte del beneficio del tratamiento y la diferencia medida se encoge. Siempre que la asignación de un usuario cambia el resultado de otro, la hipótesis de unidades independientes cae y el test A/B común pasa a medir una versión diluida del efecto.
¿De qué tamaño debe ser la ventana de un switchback?
Bojinov, Simchi-Levi y Zhao muestran en su artículo que el diseño óptimo depende de la duración física del efecto residual, no de la granularidad elegida para el periodo, y recomiendan que cada periodo sea casi tan largo como el orden de ese efecto residual. En la práctica DoorDash informó usar 30 minutos. Una ventana demasiado corta introduce sesgo porque el tratamiento devuelve trabajo pendiente para que el control lo limpie; una ventana demasiado larga reduce el número de unidades e infla el margen de error.
¿Por qué el valor p de un switchback es demasiado optimista?
Porque el test estándar supone unidades independientes y las ventanas consecutivas de la misma región no son independientes: el tiempo medio de entrega en un área en una ventana de 10 minutos está fuertemente correlacionado con el de la ventana siguiente. Sin corrección, la varianza queda subestimada y el valor p sale menor de lo que debería. DoorDash usa un estimador de varianza de tipo sándwich para lidiar con eso e informó que, en los tests A/A que ejecutó, el efecto de ese estimador sobre las cuentas de varianza quedó por debajo del 10 por ciento.
¿Cuál es la probabilidad de sorteo ideal en un switchback?
Mitad y mitad. El Teorema 1 de Bojinov, Simchi-Levi y Zhao establece que cualquier diseño óptimo de switchback regular tiene que tener probabilidad de asignación igual a 1 sobre 2 en todos los puntos de sorteo. Y el sorteo tiene que ser real en cada ventana, no una alternancia determinista iniciada por un sorteo único: DoorDash es explícito al decir que aleatoriza la variante de cada ventana en vez de sortear solo la primera y alternar después.