Estatística

Teste Switchback: experimentar sob efeito de rede

Quando os braços compartilham o mesmo estoque, o teste A/B de usuário mede errado. O teste switchback alterna no tempo e devolve o efeito real.

Ilustração isométrica plana de quarteirões de uma cidade alternando entre verde profundo e verde menta, com um pequeno marcador arredondado sobre um dos blocos

Num marketplace, os dois braços de um teste A/B compartilham o mesmo estoque de oferta, então a atribuição de um usuário muda o resultado do outro e o experimento mede uma versão diluída do efeito. O teste switchback resolve isso trocando a unidade de aleatorização: em vez de sortear usuários, você sorteia janelas de tempo dentro de cada região, e cada par tempo mais região vira uma unidade experimental. Este guia cobre por que o teste de usuário encolhe o efeito num sistema com oferta compartilhada, um exemplo trabalhado em que o mesmo efeito real de 2 pontos percentuais aparece como 1 ponto no desenho errado e exige 4,1 vezes mais amostra, como escolher o tamanho da janela entre viés e margem de erro, o desenho ótimo demonstrado na literatura, e por que o valor-p que sai da calculadora precisa de correção. Faz parte do nosso guia completo de teste A/B e é o desenho que resolve o problema descrito em interferência entre variações.

O problema: seus dois braços dividem a mesma frota

O teste A/B padrão repousa numa hipótese que raramente é dita em voz alta: a de que o resultado de um usuário não depende de qual variação os outros usuários receberam. Em um site de conteúdo isso é quase sempre verdade. Em um marketplace, quase nunca.

O time de Dispatch do DoorDash publicou o exemplo mais claro disso. Eles usam um preço dinâmico de pico quando há entregadores de menos para o volume de pedidos que está entrando: a taxa de entrega sobe, parte da demanda se desloca para mais tarde e mais entregadores decidem sair para rodar. Suponha que você queira testar uma mudança nesse algoritmo como um teste A/B de consumidores, com metade vendo o preço de pico e metade não. O relato deles é direto sobre o que acontece: o primeiro grupo recebe só metade do benefício do reequilíbrio de oferta, e o segundo grupo recebe parte do benefício sem pagar nada por ele. Os dois grupos continuam dividindo a mesma frota, então não existe independência entre eles.

O efeito prático é sempre o mesmo, e é medido para menos. O controle é contaminado pelo tratamento, a diferença entre os braços encolhe, e o teste conclui que a mudança vale menos do que vale.

Por que a divisão por usuário dilui o efeito num marketplaceÀ esquerda, o teste por usuário: os grupos A e B são distintos, mas ambos puxam da mesma frota compartilhada de entregadores, então o benefício do tratamento vaza para o controle e a diferença medida cai de 2 pontos percentuais para 1. À direita, o switchback: a região inteira fica em controle ou em tratamento durante uma janela de tempo, então nenhuma frota é dividida e a diferença medida é o efeito completo.Divisão por usuário: o benefício vazaDivisão por janela: braços separados no tempogrupo Agrupo Buma frota, dois gruposdiferença medida: 1,000 ppmetade do efeito foi para o controlejanela em Ajanela em Bfrota inteirafrota inteiradiferença medida: 2,000 ppnada foi compartilhado entre os braçosO efeito verdadeiro é o mesmo nos dois desenhos. O que muda é quanto dele o experimento consegue enxergar.Números do exemplo trabalhado abaixo.
A frota compartilhada é o canal de vazamento. Separar no tempo fecha esse canal sem precisar separar o mercado.

O que é um teste switchback

Num teste switchback você alterna a região inteira entre controle e tratamento ao longo do tempo, sorteando qual variação vale em cada janela. O DoorDash descreve o mecanismo em uma frase: alterna-se entre os algoritmos de controle e de tratamento numa determinada região em períodos de tempo alternados, e depois se comparam as métricas dos períodos de controle contra as dos períodos de tratamento.

Dois detalhes de implementação separam um switchback correto de uma alternância ingênua:

  1. A variante de cada janela é sorteada, não alternada. O relato do DoorDash é explícito nesse ponto: eles aleatorizam a variante usada em cada janela de tempo, em vez de sortear a variante inicial e depois alternar de forma determinística. Alternância fixa é vulnerável a qualquer ciclo do negócio que tenha período parecido com o da alternância.
  2. As regiões são sorteadas de forma independente umas das outras. A região A pode usar o algoritmo atual numa janela e o novo na seguinte, enquanto a região B faz o caminho inverso. É isso que cria o que eles chamam de unidades tempo mais região.
Padrão de sorteio de duas regiões ao longo de doze janelasDuas linhas do tempo, uma por região, divididas em doze janelas de 30 minutos. Cada janela é preenchida em verde escuro quando sorteada para tratamento e em cinza claro quando sorteada para controle. Os padrões das duas regiões são diferentes entre si porque cada região é sorteada de forma independente, e nenhum dos dois padrões alterna de forma regular.Doze janelas de 30 minutos, duas regiões sorteadas de forma independenteregião Aregião BtratamentocontroleCada quadrado é uma unidade experimental: um par de janela e região. Doze janelas em duas regiões geram 24 unidades.Repare que nenhuma das duas linhas alterna de forma regular. Alternância regular não é sorteio.
O sorteio acontece a cada janela e em cada região separadamente. É isso que transforma tempo e geografia em amostra.

Exemplo trabalhado: o mesmo efeito, dois desenhos

Um marketplace de entregas quer testar um novo algoritmo de despacho. O efeito verdadeiro dele sobre a taxa de entregas dentro do prazo prometido é de 2,000 pontos percentuais, de 85,000 por cento para 87,000 por cento, quando o algoritmo governa o mercado inteiro.

Desenho 1, teste A/B por consumidor. Metade dos consumidores é despachada pelo algoritmo novo, metade pelo antigo, e as duas metades disputam a mesma frota. O benefício se espalha: o controle também melhora, porque a frota como um todo ficou mais eficiente. Suponha que metade do ganho vaze, um cenário conservador. Cole na calculadora:

Calculadora de significância estatística
Controle (A)
Variação (B)
Controle (A) · Taxa-
Variação (B) · Taxa-
Melhora relativa-
valor-p-
IC 95% da diferença-

Teste z bilateral de duas proporções. "Sem significância" quase sempre quer dizer que falta amostra, não que as versões são iguais.

Teste por consumidor Entregas No prazo Taxa medida
A, algoritmo atual, contaminado pelo vazamento 120.000 102.000 85,000 por cento
B, algoritmo novo 120.000 103.200 86,000 por cento

A calculadora devolve mais 1,000 ponto percentual, mais 1,176 por cento relativo, z = 6,957, valor-p abaixo de 0,00001, intervalo de 95 por cento de mais 0,718 a mais 1,282 ponto percentual. O resultado é significativo e está errado pela metade.

Desenho 2, switchback. As mesmas 240 mil entregas, agora organizadas em janelas de 30 minutos sorteadas por região. Nenhuma janela divide a frota:

Switchback por janela e região Entregas No prazo Taxa medida
Janelas em controle 120.000 102.000 85,000 por cento
Janelas em tratamento 120.000 104.400 87,000 por cento

Agora a calculadora devolve mais 2,000 pontos percentuais, mais 2,353 por cento relativo, z = 14,119, valor-p abaixo de 0,00001, intervalo de mais 1,722 a mais 2,278 ponto percentual.

O ponto não é que o primeiro desenho deu não significativo, porque com 120 mil entregas por braço ele deu significativo. O ponto é o preço de amostra. Para detectar 2,000 pontos percentuais sobre uma base de 85 por cento com 95 por cento de confiança e 80 por cento de poder são necessários 4.724 por braço. Para detectar o efeito diluído de 1,000 ponto percentual são necessários 19.461 por braço. O vazamento cobra 4,1 vezes mais amostra para enxergar a mesma mudança de produto, e essa conta você pode refazer na calculadora de tamanho de amostra.

A unidade de análise tem que ser a unidade de sorteio

Este é o erro mais caro do switchback, e ele é sutil porque parece desperdício de dado. Você sorteou janelas, então a análise roda sobre janelas, não sobre entregas.

O DoorDash é explícito: eles conduzem os testes estatísticos sobre os valores médios das unidades tempo mais região de controle e de tratamento, e não sobre os valores individuais das entregas. Na prática isso significa que a média de cada braço é uma média simples das unidades, não uma média das entregas ponderada pelo volume de cada janela.

A diferença entre as duas médias não é cosmética. Eles registram uma leitura de diagnóstico útil sobre ela: a média simples e a ponderada costumam convergir com o tempo, e quando não convergem isso é sinal de que a intervenção tem impacto diferente em unidades com muitas entregas e em unidades com poucas. Vale a pena calcular as duas justamente por causa desse sinal.

Pergunta Teste A/B de usuário Teste switchback
O que é sorteado usuário ou dispositivo par de janela de tempo e região
O que entra no teste estatístico usuário janela e região
Tamanho típico da amostra centenas de milhares milhares de janelas
Hipótese de independência plausível violada por construção
Resolve interferência de oferta não sim
Custo baixo perde poder, exige mais tempo de calendário

Escolher a janela: viés de um lado, margem de erro do outro

O tamanho da janela e o tamanho da região são a decisão de desenho que realmente importa, e o DoorDash enquadra a escolha como um cabo de guerra entre dois problemas.

Viés. Aparece quando a aleatorização das unidades é comprometida e os tipos de entrega que caem em cada braço deixam de ser parecidos em média. O exemplo que eles dão é preciso: um algoritmo relutante em aceitar entregas com distância longa entre loja e cliente pode ser observado como mais rápido sem ser melhor, porque escolheu as entregas curtas e deixou as longas para o controle limpar. Esse viés fica mais provável quando as regiões ficam pequenas demais ou quando a troca é frequente demais, porque a janela seguinte herda o serviço que a anterior empurrou para frente.

Margem de erro. Anda no sentido oposto. Quanto mais granular a unidade, maior a variação natural da métrica dentro dela, mas também maior o número de unidades. Como a margem de erro é proporcional à variação natural dividida pela raiz do número de unidades, existe um ponto de equilíbrio, e ele se encontra empiricamente. Eles encontraram o deles rodando uma série de testes A/A longos e medindo como a margem de erro mudava conforme trocavam mais rápido ou mais devagar. O resultado prático relatado: janelas de 30 minutos, em divisões geográficas aproximadamente no nível de cidade.

O cabo de guerra entre viés e margem de erro na escolha da janelaDuas curvas sobre o mesmo eixo horizontal, que vai de janelas curtas à esquerda para janelas longas à direita. A curva do viés é alta à esquerda e cai para a direita. A curva da margem de erro é baixa à esquerda e sobe para a direita. A faixa útil fica no meio, onde nenhuma das duas está alta, e é ali que a escolha de 30 minutos relatada pelo DoorDash se encaixa.janela curta, região pequenajanela longa, região grandeproblemafaixa útilviés de atribuiçãomargem de erroo tratamento empurra serviçopara a janela seguintepoucas unidades sobrampara o teste estatísticoO ponto de equilíbrio não é teórico. Encontra-se rodando testes A/A com janelas de tamanhos diferentes e comparando as margens de erro.
Nenhum dos dois extremos é seguro. Encurtar a janela para ganhar unidades compra viés com poder.

O desenho ótimo, segundo a teoria

O lado empírico dessa escolha ganhou tratamento formal em Design and Analysis of Switchback Experiments, de Iavor Bojinov, David Simchi-Levi e Jinglong Zhao. Eles formulam o desenho como um problema de otimização minimax e chegam a dois resultados que interessam diretamente a quem vai rodar o teste.

Primeiro: a moeda tem que ser honesta. O Teorema 1 do artigo estabelece que qualquer desenho ótimo precisa ter probabilidade de atribuição igual a 1 sobre 2 em todos os pontos de sorteio. Dividir 70 contra 30 não é uma escolha conservadora aqui, é uma escolha pior.

Segundo: o período deve acompanhar o efeito residual. O efeito residual, ou carryover, é o tempo durante o qual o tratamento continua influenciando o resultado depois de desligado. Chamando de m a ordem desse efeito e de T o horizonte total, quando T é múltiplo de m com pelo menos quatro blocos, os pontos de sorteio ótimos são o instante 1 e depois os instantes 2m+1, 3m+1, e assim por diante até (n-2)m+1. O efeito prático é que o primeiro e o último blocos têm o dobro do comprimento dos blocos do meio.

Horizonte T = 12 períodos, efeito residual de ordem m = 2 Períodos
Pontos de sorteio ótimos 1, 5, 7, 9
Bloco inicial períodos 1 a 4, comprimento 2m
Blocos do meio 5 a 6 e 7 a 8, comprimento m
Bloco final períodos 9 a 12, comprimento 2m

Os autores tiram daí uma orientação prática que vale ser lida devagar: a frequência ótima de sorteio depende da duração física do efeito residual, independentemente da granularidade escolhida para um único período. Ou seja, a pergunta certa não é quantos minutos você quer, e sim quanto tempo o seu sistema leva para esquecer o tratamento. Se o mercado leva 25 minutos para reequilibrar a oferta depois de uma mudança de preço, é isso que dita o período, não a conveniência do relatório.

Eles também observam uma robustez útil: quando não existe efeito residual (m igual a zero) ou ele é mínimo (m igual a 1), os desenhos ótimos são praticamente os mesmos. Errar para o lado de supor um efeito residual curto custa pouco.

O valor-p que a calculadora devolve é otimista

Aqui está a parte que nenhuma calculadora avisa, incluindo a nossa. O teste de duas proporções que você acabou de rodar supõe unidades independentes. Num switchback essa hipótese é falsa por construção.

O motivo é físico. O DoorDash coloca em termos concretos: o tempo médio para completar entregas numa área durante um intervalo de 10 minutos é fortemente correlacionado com o tempo médio na mesma área no intervalo seguinte, muito mais do que uma entrega isolada é correlacionada com a entrega seguinte. Janelas vizinhas compartilham clima, trânsito, promoções e o mesmo turno de entregadores.

Correlação positiva entre unidades do mesmo braço significa variância subestimada, que significa erro-padrão pequeno demais, que significa valor-p pequeno demais. A correção usada por eles é um estimador de variância robusto à falta de independência, do tipo sanduíche, e eles relatam que nos testes A/A rodados o efeito desse estimador sobre as contas de variância ficou abaixo de 10 por cento.

Vale ver o tamanho dessa correção no nosso exemplo. Inflar a variância em 10 por cento multiplica o erro-padrão por raiz de 1,10, ou seja, por 1,0488. O z de 14,119 do switchback cai para 13,462, e o resultado continua a milhas de qualquer limiar de significância. Essa é a boa notícia embutida no número deles: quando a correlação entre janelas é moderada, a correção muda a conta e raramente muda a decisão. A má notícia é que isso não é uma lei, é uma medição que eles fizeram no sistema deles. Meça no seu, com testes A/A, antes de assumir que a sua correlação também é pequena. O procedimento é o mesmo descrito em teste A/A e validação.

Bojinov, Simchi-Levi e Zhao oferecem duas saídas mais rigorosas para quem quiser: valores-p exatos baseados em aleatorização, e testes conservadores construídos sobre um teorema central do limite para população finita. As duas dispensam a hipótese de normalidade que a aproximação de duas proporções carrega.

Checklist antes de rodar um switchback

  1. A interferência existe mesmo? Se os braços não disputam recurso nenhum, o switchback só custa poder. Um teste A/B comum é melhor sempre que ele é válido.
  2. Qual é a ordem do efeito residual? Quanto tempo o seu sistema leva para voltar ao normal depois de desligar o tratamento. Esse número, e não a conveniência, define a janela.
  3. A variante de cada janela é sorteada de verdade? Sorteio a cada janela, meio a meio, e independente entre as regiões.
  4. A análise roda sobre janelas? Média simples das unidades tempo mais região. Calcule também a ponderada, mas só para comparar as duas.
  5. A variância foi corrigida para a dependência entre janelas vizinhas? Sem isso o valor-p é otimista.
  6. A aleatorização passou na checagem de saúde? O DoorDash relata que checar se a proporção esperada de entregas caiu em cada braço já pega a maior parte dos casos de viés, e que, quando notam viés, encerram o experimento e recomeçam com unidades de tempo ou geografia mais grossas. Vale a mesma disciplina de divisão desigual de tráfego.
  7. O resultado bate com a realidade depois do lançamento? Eles fazem essa verificação olhando a série temporal da métrica antes e depois do lançamento definitivo, buscando confirmação direcional, não igualdade exata.

Erros comuns

Faça isso automático na Donnu

O que torna um switchback difícil não é a estatística, é a disciplina de manter a unidade de sorteio e a unidade de análise casadas do começo ao fim, com o resultado bom já na tela.

Na Donnu, o relatório de um experimento sempre declara qual foi a unidade de aleatorização e roda o teste sobre essa unidade, sem oferecer a opção de trocar a unidade na hora da análise porque o número fica mais bonito. Quando o desenho tem unidades agrupadas, o alerta de dependência aparece acima do resultado, não num rodapé. E se você quiser refazer qualquer conta na mão, a calculadora de valor-p aceita as contagens brutas de qualquer corte.

Referências

Leia também: Interferência entre variações · Testes simultâneos e efeito de interação · Métricas de razão · Teste A/A e validação · Calculadora de valor-p · Read in English

Perguntas frequentes

O que é um teste switchback?
É um experimento em que a mesma unidade, normalmente uma cidade ou região inteira, é exposta ao controle e ao tratamento em janelas de tempo alternadas e sorteadas. Em vez de dividir os usuários em dois grupos, você divide o tempo. A unidade experimental deixa de ser o usuário e passa a ser o par tempo mais região. O time de Dispatch do DoorDash descreveu essa arquitetura em detalhe em 2018 e roda os testes deles com janelas de 30 minutos em divisões geográficas próximas do nível de cidade.
Quando o teste switchback é melhor que o teste A/B tradicional?
Quando os dois braços disputam o mesmo recurso compartilhado e por isso interferem um no outro. O exemplo canônico é o preço dinâmico num marketplace de entregas: se metade dos consumidores vê o preço de pico e metade não, as duas metades continuam dividindo a mesma frota de entregadores, então o controle recebe parte do benefício do tratamento e a diferença medida encolhe. Sempre que a atribuição de um usuário muda o resultado de outro, a hipótese de unidades independentes cai e o teste A/B comum passa a medir uma versão diluída do efeito.
Qual deve ser o tamanho da janela de um switchback?
Bojinov, Simchi-Levi e Zhao mostram no artigo deles que o desenho ótimo depende da duração física do efeito residual, não da granularidade escolhida para o período, e recomendam que cada período seja quase tão longo quanto a ordem desse efeito residual. Na prática o DoorDash relatou usar 30 minutos. Janela curta demais introduz viés porque o tratamento devolve trabalho pendente para o controle limpar; janela longa demais reduz o número de unidades e infla a margem de erro.
Por que o valor-p de um switchback é otimista demais?
Porque o teste padrão supõe unidades independentes e as janelas consecutivas da mesma região não são independentes: o tempo médio de entrega numa área em uma janela de 10 minutos é fortemente correlacionado com o da janela seguinte. Sem correção, a variância fica subestimada e o valor-p sai menor do que deveria. O DoorDash usa um estimador de variância do tipo sanduíche para lidar com isso e relatou que, nos testes A/A que rodou, o efeito desse estimador sobre as contas de variância ficou abaixo de 10 por cento.
Qual é a probabilidade de sorteio ideal num switchback?
Meio a meio. O Teorema 1 de Bojinov, Simchi-Levi e Zhao estabelece que qualquer desenho ótimo de switchback regular tem que ter probabilidade de atribuição igual a 1 sobre 2 em todos os pontos de sorteio. E o sorteio precisa ser real a cada janela, não uma alternância determinística iniciada por um sorteio único: o DoorDash é explícito ao dizer que aleatoriza a variante de cada janela em vez de sortear só a primeira e alternar depois.