Ciclo Semanal em Teste A/B: rode semanas inteiras
Ciclo semanal em teste A/B: por que parar na sexta mede outra coisa, quanto a janela parcial distorce o lift e por que estratificar por dia não ajuda.

📚 Este artigo faz parte do guia Significância Estatística em Teste A/B: O Guia.
Um teste que roda de segunda a sexta não mede a mesma coisa que um teste que roda o ciclo semanal inteiro. No modelo deste artigo, o ganho verdadeiro da semana é 6,89 por cento relativo, e a janela de segunda a sexta devolve 6,00 por cento: 12,86 por cento menor, sem nenhum erro de estatística. A comparação em si continua válida, com falso positivo de 4,40 por cento sob a nula. O que mudou não foi a precisão, foi a pergunta. Este guia mostra o que cada janela de calendário está estimando, quanto a base errada contamina o plano de amostra, por que estratificar por dia da semana não devolve quase nada de precisão, e onde fica o limite superior de duração. Faz parte do nosso guia completo de teste A/B e complementa quantos visitantes um teste A/B precisa.
O site modelo
Para falar com números, precisamos de um site. O nosso tem 40 mil visitantes por semana, com o padrão comum de comércio: mais gente nos dias úteis, público diferente no fim de semana. E a mudança testada ajuda mais quem navega no sábado e no domingo, o que também é comum, porque no fim de semana o tráfego é mais casual e mais móvel.
| Dia | Visitantes | Taxa do controle | Taxa da variação | Ganho relativo |
|---|---|---|---|---|
| Segunda a sexta (cada dia) | 6.400 | 5,20% | 5,512% | 6% |
| Sábado e domingo (cada dia) | 4.000 | 3,60% | 4,032% | 12% |
O alvo, a quantidade que você quer estimar, é o ganho relativo médio sobre uma semana completa: 6,8852 por cento. Ele sai de uma média ponderada, 80 por cento do tráfego ganhando 6 por cento sobre uma base alta e 20 por cento ganhando 12 por cento sobre uma base baixa.
O ciclo semanal: o que cada janela de calendário mede
Com o modelo definido, dá para calcular exatamente o que cada duração devolve, sem nenhum ruído amostral no meio:
| Janela | Base medida | Ganho absoluto | Ganho relativo | Erro contra a semana inteira |
|---|---|---|---|---|
| Segunda a sexta (5 dias) | 5,2000% | 0,3120 pp | 6,0000% | menos 12,86% |
| Segunda a sábado (6 dias) | 5,0222% | 0,3253 pp | 6,4779% | menos 5,92% |
| Semana inteira (7 dias) | 4,8800% | 0,3360 pp | 6,8852% | alvo |
| 9 dias (semana mais seg e ter) | 4,9576% | 0,3302 pp | 6,6601% | menos 3,27% |
| 12 dias (semana mais seg a sex) | 5,0222% | 0,3253 pp | 6,4779% | menos 5,92% |
| Duas semanas (14 dias) | 4,8800% | 0,3360 pp | 6,8852% | zero |
| Só o fim de semana (2 dias) | 3,6000% | 0,4320 pp | 12,0000% | mais 74,29% |
Duas leituras merecem destaque. A primeira: esticar o teste sem fechar a semana pode piorar em vez de melhorar. Doze dias erram tanto quanto seis (5,92 por cento), porque doze dias são uma semana inteira mais cinco dias úteis, ou seja, os dias úteis entram de novo com peso extra. A segunda: o erro é sistemático, não aleatório. Rodar mais réplicas do teste de cinco dias não faz o resultado convergir para 6,89 por cento; ele converge para 6,00 por cento, que é a resposta certa para uma pergunta que ninguém fez.
Isso é viés ou não é?
Aqui vale a precisão que costuma faltar na discussão. Não é viés na comparação. Os dois braços recebem exatamente os mesmos dias, na mesma proporção, então o estimador continua estimando corretamente o que aqueles dias contêm. Confirmamos rodando 3.000 réplicas sob a hipótese nula, com controle e variação idênticos:
| Janela | Falso positivo medido | Ganho relativo médio | Erro-padrão de Monte Carlo |
|---|---|---|---|
| 5 dias | 4,40% | 0,0880% | 0,40 pp |
| 7 dias | 5,17% | 0,0958% | 0,40 pp |
| 9 dias | 5,00% | 0,0357% | 0,40 pp |
Todas dentro do nominal. O problema é de alvo, não de precisão. Um teste de cinco dias estima com honestidade o efeito médio entre segunda e sexta; se você vai lançar a mudança para os sete dias da semana, esse não é o número que sustenta a decisão. A distinção importa porque muda o remédio: não adianta mais amostra, adianta a janela certa.
O que a base errada faz com o plano
O estrago mais silencioso acontece antes do teste começar. Se você mediu a taxa base num período que não fecha a semana, todo o plano de amostra herda o erro.
| De onde veio a taxa base | Taxa base | N por variação (MDE 10% relativo) | Dias a 40 mil por semana |
|---|---|---|---|
| Segunda a sexta | 5,2000% | 29.966 | 11 |
| Semana inteira | 4,8800% | 32.045 | 12 |
| Só o fim de semana | 3,6000% | 44.054 | 16 |
Aproximação normal de duas proporções, divisão igual entre as variações. A data usa o seu fuso e recalcula ao vivo.
Confira na calculadora: base 4,88, MDE 10 por cento relativo, 2 variações, 40.000 visitantes por semana, confiança 95, poder 80, bicaudal. Ela devolve os 12 dias da linha do meio. Trocando a base para 5,2, o plano cai para 11 dias e parece ter ficado mais barato, quando na verdade só ficou 6,5 por cento otimista. Uma taxa base medida numa janela parcial é a forma mais comum de subestimar um plano de teste, e ela não deixa rastro: o número parece plausível, o plano parece bem feito, e o teste termina cedo demais.
A leitura diária de um teste real
Simulamos um único teste do site modelo rodando por três semanas, com o efeito verdadeiro de 6,89 por cento, e lemos o painel todo dia:
| Dia | Controle | Variação | Ganho relativo | valor-p | Abaixo de 0,05? |
|---|---|---|---|---|---|
| 1 (seg) | 177 de 3.200 | 156 de 3.200 | menos 11,86% | 0,2372 | não |
| 3 (qua) | 474 de 9.600 | 527 de 9.600 | 11,18% | 0,0853 | não |
| 7 (dom) | 988 de 20.000 | 1.060 de 20.000 | 7,29% | 0,1024 | não |
| 11 (qui) | 1.645 de 32.800 | 1.773 de 32.800 | 7,78% | 0,0245 | sim |
| 14 (dom) | 1.975 de 40.000 | 2.128 de 40.000 | 7,75% | 0,0142 | sim |
| 17 (qua) | 2.522 de 49.600 | 2.645 de 49.600 | 4,88% | 0,0788 | não |
| 21 (dom) | 2.995 de 60.000 | 3.185 de 60.000 | 6,34% | 0,0131 | sim |
Três coisas para levar dessa tabela. No primeiro dia o painel dizia que a variação era 11,86 por cento PIOR. No dia 11 o resultado ficou significante, no dia 17 deixou de ser, e no dia 21 voltou a ser: parar em qualquer um desses pontos dá uma história diferente, que é exatamente o problema do peeking. E as três fechadas de semana, nos dias 7, 14 e 21, devolvem 7,29, 7,75 e 6,34 por cento, um intervalo bem mais estreito e mais perto do 6,89 verdadeiro do que qualquer sequência de leituras no meio da semana.
E quanto mais semanas, mais estável fica a leitura, com o poder subindo junto:
| Duração | Visitantes totais | Ganho relativo médio | Desvio-padrão entre réplicas | Detectou em |
|---|---|---|---|---|
| 5 dias | 32.000 | 6,252% | 5,011 | 23,80% das réplicas |
| 7 dias | 40.000 | 7,078% | 4,746 | 34,27% |
| 9 dias | 52.800 | 6,757% | 4,024 | 40,20% |
| 14 dias | 80.000 | 6,942% | 3,318 | 57,70% |
| 21 dias | 120.000 | 6,797% | 2,689 | 73,90% |
Estratificar por dia da semana não devolve precisão
Uma reação natural a tudo isso é querer corrigir a análise estratificando por dia. A conta diz que não vale a pena, e a diferença é grande o bastante para encerrar a discussão.
Decompondo a variância do indicador de conversão no nosso modelo, com a taxa média da semana em 4,88 por cento:
| Componente | Valor |
|---|---|
| Variância total | 4,64185600 vezes 10 elevado a menos 2 |
| Dentro dos dias | 4,63776000 vezes 10 elevado a menos 2 |
| Entre dias | 4,09600000 vezes 10 elevado a menos 5 |
| Teto de redução por estratificar em dia | 0,0882% |
O dia da semana explica menos de um décimo de um por cento da variância. E na prática nem esse décimo aparece: quando a divisão de tráfego é equilibrada dentro de cada dia, o estimador pós-estratificado coincide com o agrupado, e a redução medida em 6.000 réplicas de teste A/A foi de 0,0000 por cento, com variância idêntica até a sexta casa decimal nos dois.
A razão é que uma conversão é um evento binário, e a variância de um evento binário é dominada por p vezes 1 menos p, que muda muito pouco entre 3,6 e 5,2 por cento. O ciclo semanal é um problema de estimando, não de ruído. Se o seu objetivo é reduzir variância, o caminho é outro, e ele passa por covariáveis contínuas de pré-período, como explicamos em CUPED.
E o limite superior: quando o teste está longo demais
Rodar em múltiplos de semana não quer dizer rodar para sempre. Kohavi, Longbotham, Sommerfield e Henne colocam a fronteira em números ao discutir divisões desiguais: um experimento que precisasse de mais de 125 dias não deveria ser rodado, porque é um período longo demais para resultado confiável e porque fatores de impacto secundário em testes de poucas semanas, como a troca de cookie, começam a contaminar os dados.
Os mesmos autores registram uma advertência ainda menos conhecida: algumas métricas têm característica ruim de poder, no sentido de que o poder delas de fato piora conforme o experimento roda por mais tempo. Para essas, a recomendação deles é garantir um número adequado de usuários por dia e grupos de tratamento e controle de tamanhos iguais, em vez de simplesmente esticar o calendário.
O outro lado da conta é o efeito novidade. Kohavi, Deng, Longbotham e Xu recomendam rodar experimentos por duas semanas justamente para procurar efeitos que somem rápido, e observam que, na prática, novidade e primazia são incomuns, aparecendo sobretudo em sistemas de recomendação. Tratamos disso em efeito novidade.
Juntando as três pontas, a regra prática fica curta:
- Meça a base numa janela que feche semana. Se você tem 28 dias de histórico, use 28, não 30.
- Planeje em semanas. Pegue os dias que a calculadora devolveu e arredonde para cima até o próximo múltiplo de sete. Doze dias viram quatorze.
- Duas semanas é o piso confortável, uma é o mínimo, e a segunda semana serve para comparar com a primeira.
- Pare sempre no mesmo dia da semana em que começou. Uma leitura de segunda a domingo é comparável com a anterior; uma de quarta a quinta não é.
- Acima de dez ou doze semanas, desconfie do desenho, não da paciência. O problema provavelmente é tráfego insuficiente para o efeito que você quer detectar, e a resposta está em CRO para sites de baixo tráfego.
Faça isso automático na Donnu
O erro do ciclo semanal quase nunca aparece como erro: aparece como um teste que terminou na sexta porque a sexta era o fim do sprint. Na Donnu a data prevista de término já sai arredondada para fechar a mesma janela de dias da semana em que o teste começou, e o painel mostra a leitura fechada por semana ao lado da acumulada, para que o time compare semana 1 com semana 2 em vez de comparar quarta com quarta. Quando a taxa base do plano é estimada a partir do seu histórico, a janela usada também fecha em múltiplos de sete dias, para que o número que entra na calculadora não venha com o mesmo viés que este artigo descreve.
Perguntas frequentes
As respostas curtas estão na seção de perguntas frequentes desta página, montadas a partir dos mesmos cálculos apresentados aqui.
Referências
- Ron Kohavi, Roger Longbotham, Dan Sommerfield e Randal M. Henne. Controlled experiments on the web: survey and practical guide, Data Mining and Knowledge Discovery, 2009. A seção 6.2.5 (“Beware of day of week effects”) é a fonte da recomendação de rodar experimentos por pelo menos uma ou duas semanas e depois continuar em múltiplos de uma semana para que o efeito de dia da semana possa ser analisado, da observação de que em muitos sites os visitantes de fim de semana representam segmentos diferentes, da generalização para feriados, estações e geografias, e da advertência de que um experimento que exigisse mais de 125 dias é longo demais para resultado confiável porque fatores como a troca de cookie começam a contaminar os dados. A seção 6.2.3 é a fonte da advertência de que algumas métricas têm característica ruim de poder, com o poder piorando conforme o experimento roda por mais tempo.
- Ron Kohavi, Alex Deng, Roger Longbotham e Ya Xu. Seven Rules of Thumb for Web Site Experimenters, KDD 2014. Fonte da recomendação de rodar experimentos por duas semanas para procurar efeitos de novidade que se dissipam rápido, do registro de que na prática efeitos de novidade e primazia são incomuns e aparecem sobretudo em sistemas de recomendação, e do exemplo do algoritmo de recomendação de pessoas do LinkedIn cujo ganho inicial vem de diversidade e se esgota conforme o usuário se conecta às melhores sugestões.
- U.S. Food and Drug Administration. Adaptive Designs for Clinical Trials of Drugs and Biologics: Guidance for Industry, novembro de 2019. Seção V.A é a fonte do princípio, usado aqui como analogia, de que o calendário das leituras precisa estar definido de antemão e que mudanças no cronograma devem se apoiar em informação estatisticamente independente do efeito estimado, como o ritmo de coleta, e não no resultado observado.
Leia também
Perguntas frequentes
- Por que rodar um teste A/B por semanas inteiras?
- Porque a janela de calendário decide quais dias entram na média, e dias diferentes têm públicos diferentes. Kohavi e coautores recomendam rodar experimentos por pelo menos uma ou duas semanas e depois continuar em múltiplos de uma semana, justamente para que o efeito de dia da semana possa ser analisado. No modelo deste artigo, medir de segunda a sexta devolveu 6,00 por cento de ganho relativo contra os 6,89 por cento da semana inteira, uma diferença de 12,86 por cento no tamanho do efeito.
- Parar o teste na sexta enviesa a comparação entre controle e variação?
- Não no sentido estatístico estrito, e vale ser preciso. Nas nossas 3.000 réplicas sob a hipótese nula, a taxa de falso positivo ficou em 4,40 por cento para 5 dias, 5,17 por cento para 7 e 5,00 por cento para 9, todas dentro do erro de simulação. Os dois braços veem os mesmos dias, então a comparação continua válida. O que muda é O QUE está sendo estimado: a média sobre os dias incluídos, não sobre a semana.
- Vale estratificar a análise por dia da semana para ganhar precisão?
- Praticamente não vale. Decompondo a variância no nosso modelo, o dia da semana explica 0,0882 por cento do total, e esse é o teto teórico do ganho. Quando a divisão de tráfego é equilibrada dentro de cada dia, a estimativa pós-estratificada e a agrupada coincidem, e a redução medida em 6.000 réplicas foi de 0,0000 por cento. O ciclo semanal importa para o que você mede, não para a precisão com que mede.
- Quanto tempo é tempo demais para um teste A/B?
- Kohavi e coautores dão a fronteira prática: um experimento que exigiria mais de 125 dias é longo demais para dar resultado confiável, porque fatores de impacto secundário em testes de poucas semanas, como a troca de cookie, começam a contaminar os dados. Some a isso a advertência dos mesmos autores de que algumas métricas têm característica ruim de poder, no sentido de que o poder delas de fato piora conforme o experimento roda por mais tempo.
- A janela parcial atrapalha o cálculo de amostra?
- Atrapalha, pelo lado da taxa base. No nosso modelo, a base medida de segunda a sexta é 5,20 por cento e a da semana inteira é 4,88 por cento. Levando cada uma à calculadora com MDE de 10 por cento relativo, a primeira pede 29.966 visitantes por variação e a segunda pede 32.045: um plano 6,5 por cento otimista, feito com um número que parecia estar certo.
- Duas semanas ou uma?
- Duas, quando der. A recomendação de Kohavi e coautores para efeito de novidade é rodar experimentos por duas semanas e olhar para esse tipo de efeito, e a de sazonalidade é começar com uma ou duas semanas e seguir em múltiplos de sete dias. Uma semana já resolve a composição de dias; a segunda é o que permite comparar semana 1 com semana 2 e ver se o efeito é estável ou se está morrendo.