Estatística

Lei de Twyman: o resultado bom demais para ser verdade

Lei de Twyman: por que uma vitória espetacular em teste A/B costuma ser bug e como desenhar a rodada de confirmação que resolve a dúvida.

Ilustração plana de um balão enorme flutuando acima de uma fileira de balões pequenos iguais, com um alfinete se aproximando, em tons de verde profundo

Um resultado espetacular de teste A/B é evidência sobre a sua instrumentação antes de ser evidência sobre o seu produto. A lei de Twyman, como Kohavi e colegas a enunciam nas regras de bolso do KDD 2014, diz que qualquer número que pareça interessante ou diferente costuma estar errado, e a consequência operacional é que uma vitória excepcionalmente forte deve disparar uma caça ao bug e uma rodada de confirmação, não um lançamento. Este guia cobre de onde vem a lei, a aritmética bayesiana que a torna rigorosa em vez de folclórica, quatro casos documentados em que uma vitória grande era artefato de medição, um exemplo trabalhado de um resultado estatisticamente impecável que ainda assim não deveria subir, e como dimensionar a rodada de confirmação que resolve a questão. Faz parte do nosso guia completo de teste A/B e conversa com teste A/A.

A lei de Twyman, e por que ela é procedimento operacional

Kohavi, Deng, Longbotham e Xu, ao consolidar sete regras de bolso generalizadas a partir de milhares de experimentos controlados na Amazon, Booking.com, LinkedIn e em várias propriedades da Microsoft para o KDD 2014, dedicam uma regra à assimetria com que os times leem resultados. A descrição que eles fazem da falha humana vale ser citada porque é o mecanismo, não a moral: somos inclinados a resistir e questionar resultados negativos sobre a nossa ótima funcionalidade nova, então cavamos mais fundo para achar a causa. Mas, quando o efeito é positivo, a inclinação é comemorar em vez de cavar mais fundo e procurar anomalias.

A resposta deles é instalar uma regra que tira a discricionariedade da mesa. Quando os resultados são excepcionalmente fortes, eles invocam a lei de Twyman: qualquer número que pareça interessante ou diferente costuma estar errado. O artigo credita a formulação a Twyman por meio de uma nota de A. S. C. Ehrenberg no Journal of the Royal Statistical Society, e os autores observam que o mesmo reflexo é padrão em outros cantos da ciência: nenhum editor moderno comemora uma prova submetida de que P é igual a NP, ele manda para um revisor achar o erro.

A regra não é ceticismo por esporte. É uma afirmação sobre taxas base, e é testável.

A aritmética bayesiana que torna a lei rigorosa

O mesmo artigo formaliza. Seja alfa o nível de significância, beta a taxa de erro tipo II e pi a probabilidade a priori de a hipótese alternativa ser verdadeira. Então a probabilidade posterior de um verdadeiro positivo dado um resultado estatisticamente significativo é

P(verdadeiro positivo | significativo) = pi × (1 − beta) ÷ [ pi × (1 − beta) + (1 − pi) × alfa ]

Esse é o mecanismo inteiro. O limiar de valor-p está fixo em 0,05 e o poder está fixo em 80 por cento em todas as linhas abaixo. A única coisa que muda é a frequência com que ideias desse tipo de fato funcionam, e isso muda a resposta por completo.

Probabilidade a priori de a ideia funcionar Probabilidade posterior de a vitória ser real, dado p abaixo de 0,05
1 em 3 88,9 por cento
1 em 5 80,0 por cento
1 em 10 64,0 por cento
1 em 50 24,6 por cento
1 em 100 13,9 por cento
1 em 500 3,1 por cento

Recalculamos esta tabela a partir da fórmula acima, com alfa 0,05 e poder 0,8. Duas das linhas são números publicados pelo próprio artigo e batem exatamente: Kohavi e colegas reportam 89 por cento para uma priori de 1 em 3, que eles descrevem como a taxa média de sucesso reportada em vários experimentos na Microsoft, e 3,1 por cento para uma priori de 1 em 500, que é a taxa que eles dão para um resultado de ruptura no Bing. O resto da tabela é a mesma aritmética estendida pela faixa.

Probabilidade posterior de uma vitória significativa ser real, por prioriA alfa 0,05 e 80 por cento de poder, uma priori de 1 em 3 dá 88,9 por cento de probabilidade posterior de a vitória significativa ser real. Uma priori de 1 em 5 dá 80,0 por cento, 1 em 10 dá 64,0 por cento, 1 em 50 dá 24,6 por cento, 1 em 100 dá 13,9 por cento e 1 em 500 dá 3,1 por cento. O valor-p é idêntico em todos os casos.Mesmo valor-p, mesmo poder, seis conclusões diferentesalfa 0,05, poder 80 por cento, só a priori muda050%100%88,9%1 em 3artigo80,0%1 em 564,0%1 em 1024,6%1 em 5013,9%1 em 1003,1%1 em 500artigo
Duas barras, 1 em 3 e 1 em 500, são os números publicados por Kohavi e colegas; o resto é a mesma fórmula estendida. Uma alegação de ruptura é julgada contra a taxa base de rupturas, e essa taxa base é brutal.

A tradução prática: quanto mais raro o resultado que você está alegando, mais evidência é preciso para alegá-lo, e um valor-p abaixo de 0,05 não vira mais evidência quando a alegação fica mais rara. É exatamente a mesma evidência.

Quatro vitórias que eram artefato de medição

A razão para levar a taxa base a sério é que as explicações alternativas são documentadas e banais. Os quatro casos abaixo são dos artigos da Microsoft.

Uma queda de 64 por cento nos cliques que era boa notícia. Kohavi e colegas (KDD 2014) descrevem um time do Office Online testando o redesenho de uma página com uma chamada para ação forte. Compras de verdade eram difíceis de rastrear, então o time usou cliques em links geradores de receita como métrica substituta, assumindo que cliques vezes taxa de conversão é igual a receita. O redesenho produziu uma redução de 64 por cento em cliques por usuário. O tamanho chocante é o que fez as pessoas olharem, e a explicação foi que a suposição de uma taxa estável de clique para compra estava errada: a página de tratamento mostrava o preço, então atraía menos cliques de usuários mais qualificados, que convertiam a uma taxa muito mais alta.

Mais cliques numa página mais lenta. Um JavaScript foi adicionado à página de resultados do Bing, o que normalmente deixa tudo mais lento e deveria custar engajamento. Os cliques por usuário subiram. Seguindo a lei de Twyman, eles investigaram. O rastreio de cliques é baseado em beacons e alguns navegadores descartam a chamada quando o usuário está saindo da página; o JavaScript extra melhorou a fidelidade do rastreio de cliques, não o ato de clicar.

Uma migração de CDN que melhorou tudo. Ao longo de vários meses de 2013, o Bing trocou sua rede de entrega de conteúdo da Akamai para o próprio Bing Edge. O clique na página inicial melhorou, o uso de funcionalidades subiu, o abandono caiu. Mesma causa raiz: melhor fidelidade no rastreio de cliques. Para quantificar, eles substituíram o rastreio por beacon por redirecionamentos, um método com perda de clique desprezível, e acharam que a taxa de perda de clique em alguns navegadores caiu mais de 60 por cento. Boa parte do ganho ao longo do tempo era artefato.

Uma melhora dramática que contava em dobro. Um experimento no MSN tentou um algoritmo melhor de sugestão automática, e as buscas no Bing vindas do MSN melhoraram dramaticamente. O código novo estava, na prática, disparando duas buscas quando o usuário escolhia uma sugestão; o navegador desconectava uma delas, então só uma página de resultados era exibida, mas as duas eram contadas.

O artigo de 2012 sobre resultados intrigantes acrescenta o padrão que fecha o ciclo, num caso em que métricas sem relação com a mudança se moveram em direções inesperadas com alta significância estatística: rodamos o experimento de novo numa amostra maior para aumentar o poder estatístico, e muitos dos efeitos desapareceram. A causa foi arrasto de um experimento anterior nos mesmos baldes de usuário, um efeito que eles mediram como ainda visível cerca de três semanas depois num caso e não totalmente recuperado após três meses em outro. É para isso que serve uma rodada de confirmação.

Exemplo trabalhado: um resultado impecável que você não deveria subir

Aqui vem a parte incômoda. Rode estes números 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.

Braço Visitantes Conversões Taxa
A, controle 40.000 1.200 3,000 por cento
B, variação 40.000 1.680 4,200 por cento

A calculadora devolve mais 1,200 ponto percentual, mais 40,00 por cento relativo, z = 9,11, valor-p abaixo de 0,0001, com intervalo de confiança de 95 por cento de mais 0,942 a mais 1,458 ponto percentual. Não teve peeking, não teve divisão desigual de tráfego, não teve problema de comparações múltiplas. Por toda checagem estatística este experimento passa, e o intervalo está confortavelmente longe de zero.

Agora aplique a taxa base. O efeito mínimo detectável deste desenho, com 40.000 por braço e taxa base de 3 por cento, é mais 11,3 por cento relativo, então o efeito observado é mais de três vezes o menor efeito que o teste foi montado para enxergar. Uma mudança de texto produzindo 40 por cento de ganho relativo na conversão do checkout não está na mesma categoria do movimento que Kohavi e colegas reportam como típico: num site como o Bing, onde milhares de experimentos rodam por ano, a maioria falha e os que dão certo melhoram métricas-chave em 0,1 a 1,0 por cento depois de diluídos ao impacto total. Coloque no quadro de Sessões por usuário deles: com uma distribuição de efeitos de experimento centrada em zero e desvio padrão de 0,25 por cento, eles apontam que uma melhora de 2,0 por cento fica a oito desvios padrão da média, com probabilidade da ordem de um em mil trilhões antes de considerar qualquer outro fator. A conclusão deles não é comemorar, é começar a trabalhar para achar o bug, que na experiência deles costuma ser erro de instrumentação.

Então a ação correta sobre este resultado não é subir nem descartar. É rodar a checklist de bug e depois rodar uma confirmação dimensionada para o efeito que você de fato aceitaria.

Onde um resultado espetacular fica na distribuição dos efeitos reaisA distribuição dos efeitos observados de experimento numa métrica-chave é centrada em zero com desvio padrão pequeno, então quase todo resultado real se agrupa perto de nenhuma mudança. Uma vitória espetacular alegada fica muito longe na cauda, a muitos desvios padrão do centro, numa região onde quase nenhum resultado genuíno jamais caiu.Quase todo efeito real é pequeno; o espetacular não cabe no gráficosem mudançaperda pequenaganho pequenoa população inteira de resultados honestosa alegaçãoa muitos desvios padrãonada honesto caiu aquiO valor-p é calculado dentro da curva. Ele não consegue te dizer que o ponto não pertence à curva.
Esquemático, não é dado ajustado. O ponto é estrutural: teste de significância pergunta se um resultado está longe de zero, e a lei de Twyman pergunta se ele plausivelmente vem da mesma população de todos os outros resultados que você já mediu.

A checklist de bug, antes de gastar tráfego

Rodar de novo custa calendário. Checagem de defeito custa uma tarde, então vem primeiro.

Checagem Como é uma falha Onde está coberto
Divisão de tráfego contra a proporção pretendida A divisão observada se afasta da configurada além do acaso SRM: divisão desigual de tráfego
Efeito concentrado num navegador ou dispositivo A vitória existe num segmento e é plana em todos os outros, assinatura clássica de fidelidade de rastreio Paradoxo de Simpson
Efeito concentrado num dia Um release, uma indisponibilidade ou uma campanha caiu dentro da janela Como fazer um teste A/B
Mesmo código de rastreio disparando nos dois braços A variação dispara um evento a mais, ou o controle perde um São os casos do MSN e do beacon acima
Definição de métrica idêntica entre braços Um denominador mudou, ou um filtro se aplica a só um braço Escolhendo a métrica primária
Métrica substituta no lugar da métrica real Cliques se moveram, compras não, e a razão entre as duas nunca foi estável O caso do Office Online acima
Usuários herdados de um experimento anterior Os baldes não foram re-aleatorizados antes desta rodada Teste A/A
O resultado apareceu enquanto você olhava A decisão foi tomada no momento em que a linha cruzou O problema do peeking

Se alguma linha falha, você tem a sua explicação e nenhuma nova rodada é necessária. Se todas passam, o resultado se gradua de implausível para inexplicado, e a rodada de confirmação vira a forma mais barata que sobrou de aprender alguma coisa.

Desenhando a rodada de confirmação

Três regras, e a segunda é a que os times erram.

Re-aleatorize. A rodada de confirmação precisa atribuir usuários com uma semente de hash nova, não reusar os baldes da primeira rodada. Essa é a lição direta do achado de arrasto de 2012: reusar os mesmos baldes de usuário significa que a segunda rodada herda o que a primeira fez com aqueles usuários.

Dimensione para o efeito que você aceitaria, não para o efeito que observou. A primeira estimativa é inflada justamente porque foi selecionada por ser grande, então calcular o poder contra ela garante uma rodada sem poder. Suponha que o menor ganho que vale subir seja mais 10 por cento relativo sobre uma base de 3 por cento. A 95 por cento de confiança e 80 por cento de poder, isso exige 53.211 usuários por variação, número que você pode conferir na calculadora de tamanho de amostra. Calcular o poder pelos mais 40 por cento observados pediria uma fração disso e falharia em resolver a resposta honesta. A mecânica de escolher esse limiar está em efeito mínimo detectável.

Decida antes o que cada desfecho significa. Escreva os três casos antes de a rodada começar: o efeito replica perto da mesma magnitude e você sobe; o efeito replica muito menor mas ainda acima do seu limiar e você sobe o número menor; o efeito some e você encerra o experimento e mantém a caça ao bug aberta. Decidir depois é como uma confirmação fracassada vira uma análise de segmento.

O que fazer com um resultado bom demais para ser verdadeUm resultado espetacular passa primeiro pela checklist de defeitos. Se uma checagem falha, a explicação é um bug e nenhuma nova rodada é necessária. Se todas passam, uma rodada de confirmação é lançada com aleatorização nova e dimensionada para o menor efeito que vale subir. Se o efeito replica, sobe na magnitude replicada. Se some, o experimento é encerrado e a investigação de instrumentação continua.O caminho de um número espetacular até uma decisãoresultado espetacularno painelchecklist de defeitosdivisão, segmentos, rastreiofalhou uma: achou o bug, parerodada de confirmaçãosemente nova, dimensionadapro seu limiar realreplicou: suba o menorsumiu: encerree investigueO passo mais barato primeiroA checklist custa uma tarde. A rodada de confirmação custa semanas de tráfego. A maioria dos resultados espetaculares morrena checklist, e é por isso que ela roda primeiro e por que rodar de novo não é a resposta padrão a um número surpreendente.Decida o que cada um dos três desfechos significa antes de a confirmação começar, não depois que ela ler.
A ordem importa mais que os passos. Um time que roda de novo primeiro gasta semanas de tráfego para redescobrir um bug de rastreio que teria achado checando se a variação dispara um evento a mais.

Erros comuns

Erro O que produz
Tratar um valor-p pequeno como prova de que a medição está correta Uma vitória divulgada que era artefato de rastreio por beacon
Dimensionar a confirmação pela estimativa da primeira rodada Uma nova rodada pequena demais para resolver o efeito honesto, lida como “inconclusivo, sobe”
Reusar os mesmos baldes de usuário na nova rodada Arrasto da primeira rodada embutido na segunda, conforme os achados de 2012
Aplicar o ceticismo só às perdas A assimetria que Kohavi e colegas nomeiam como a razão de a lei ser necessária
Confiar numa métrica substituta quando ela se move muito O caso do Office Online: a substituta se moveu porque a relação quebrou
Anunciar o número antes de rodar a checklist Um compromisso organizacional com um resultado que você não verificou
Concluir “não é bug” porque olhou e não achou Ausência de bug encontrado é evidência fraca; a rodada de confirmação é o teste forte
Chamar a segunda rodada de fracasso quando ela devolve um efeito menor Menor é o desfecho esperado, e muitas vezes ainda vale subir

Faça isso automático na Donnu

A lei de Twyman só funciona como regra se as checagens já estiverem no relatório, porque ninguém roda uma checklist manual contra um número que o empolgou. A Donnu A/B roda a checagem de proporção de amostra em todo experimento e bloqueia a leitura quando a divisão falha, abre o resultado por dispositivo e por dia para que uma vitória concentrada num navegador fique visível sem consulta separada, e permite clonar um experimento com semente de aleatorização nova para que uma rodada de confirmação nunca herde os baldes da rodada que está confirmando. A página de resultado reporta o intervalo de confiança ao lado da estimativa pontual, que é o que te diz se um efeito replicado menor ainda está dentro do que você estava disposto a aceitar.

Comece um teste grátis de 14 dias e passe a sua próxima vitória surpreendente pelas checagens antes que ela chegue a um roadmap.

Referências

Leia também: Teste A/A · SRM: divisão desigual de tráfego · O problema do peeking · Efeito mínimo detectável · Calculadora de significância grátis · Read in English

Perguntas frequentes

O que é a lei de Twyman?
A lei de Twyman é a regra de que qualquer número que pareça interessante ou diferente costuma estar errado. Kohavi e colegas colocam exatamente nesses termos nas sete regras de bolso para experimentadores web publicadas no KDD 2014, creditando a formulação a Twyman por meio de uma nota de A. S. C. Ehrenberg no Journal of the Royal Statistical Society, e aplicam isso como procedimento operacional: quando um resultado é excepcionalmente forte, eles param de comemorar e começam a procurar o bug. O ponto não é que vitórias grandes nunca acontecem. É que vitória grande e erro de instrumentação produzem o mesmo número no painel, e erro de instrumentação é muito mais comum.
Um valor-p baixo me protege da lei de Twyman?
Não, e essa é a parte que os times mais erram. O valor-p mede quão improváveis são os dados sob a hipótese nula dado que a medição está correta. Ele não carrega informação nenhuma sobre a medição estar correta. Um defeito de rastreio de clique que infla o tratamento produz um valor-p pequeno com total confiança. Kohavi e colegas (KDD 2014) descrevem exatamente isso: um resultado positivo que passou por todas as checagens estatísticas e acabou sendo melhora na fidelidade do rastreio de cliques, não mais cliques.
Por que uma priori forte ganha de um resultado significativo?
Porque significância é condicional e a priori não. Kohavi e colegas (KDD 2014) formalizam com a regra de Bayes: a probabilidade posterior de um verdadeiro positivo dado um resultado estatisticamente significativo é a priori vezes o poder, dividido por isso mais um menos a priori vezes alfa. A alfa 0,05 e 80 por cento de poder, uma priori de 1 em 3 dá 89 por cento de confiança, mas uma priori de 1 em 500, que é a taxa declarada por eles para um resultado de ruptura no Bing, dá só 3,1 por cento. Mesmo valor-p, mesmo poder, conclusão completamente diferente.
O que é uma rodada de confirmação?
É uma segunda execução independente do mesmo experimento com aleatorização nova, tratada como a rodada que decide, enquanto a primeira é rebaixada a hipótese. Kohavi e colegas (KDD 2014) enunciam a regra sem rodeio: resultados estatisticamente significativos no limite devem ser vistos como provisórios e rodados de novo para replicar. O artigo de 2012 sobre resultados intrigantes mostra o retorno disso, descrevendo um caso surpreendente em que eles rodaram de novo com amostra maior e boa parte dos efeitos desapareceu.
De que tamanho deve ser a rodada de confirmação?
Dimensione para o efeito que você de fato aceitaria, não para o efeito inflado que a primeira rodada reportou. Se a primeira rodada mostrou mais 23 por cento relativo mas o menor efeito que vale subir é mais 10 por cento, calcule o poder para mais 10 por cento. Dimensionar pela primeira estimativa garante uma rodada pequena demais, porque a primeira estimativa é enviesada para cima justamente pela seleção que fez você reparar nela.
O que devo checar antes de rodar de novo?
Cheque o encanamento primeiro, porque rodar de novo é caro e bug é barato de achar. Confirme que a divisão de tráfego bate com a proporção pretendida, que o efeito não está concentrado num navegador, num dispositivo ou num dia, que a definição da métrica não mudou entre os braços, que o mesmo código de rastreio dispara nos dois braços, e que nenhum outro release subiu no meio do experimento. Kohavi e colegas (KDD 2012) rastreiam vários resultados espetaculares exatamente a essas categorias, com destaque para rastreio de cliques.
A lei de Twyman vale também para perdas espetaculares?
Deveria valer, mas a reação humana é assimétrica e essa assimetria é a razão de a lei ser útil. Kohavi e colegas (KDD 2014) nomeiam isso diretamente: os times resistem e questionam resultados negativos sobre a própria funcionalidade nova, então investigam fundo e acham a causa, enquanto um resultado positivo convida à comemoração em vez de escrutínio. Um resultado de menos 40 por cento normalmente é investigado sozinho. Um de mais 40 por cento precisa de uma regra que force a mesma investigação.