Estatística

Viés de Instrumentação: quando a medição é o bug

Quando a variação muda a forma como o dado é coletado, o teste A/B mede o instrumento. Como reconhecer, isolar e corrigir esse viés.

Ilustração plana de uma régua longa apoiada ao lado de um bloco retangular perfeitamente reto, com uma lente redonda de vidro pousada na superfície próxima, em tons de verde profundo

Um teste A/B compara duas experiências, mas ele só enxerga o que a telemetria conseguiu registrar. Quando a variação muda a forma como o dado é coletado, e não apenas o que o usuário fez, o experimento passa a medir o instrumento. O resultado é uma diferença perfeitamente significativa, com valor-p pequeno e intervalo estreito, correspondendo a um efeito real de zero. Este guia cobre por que o viés de instrumentação passa por todas as checagens estatísticas, um exemplo trabalhado em que uma melhora aparente de 4,26 por cento vem inteiramente de perda de sinal, os quatro modos de falha que aparecem na prática, e o desenho de quatro braços que separa o efeito da medição. Faz parte do nosso guia completo de teste A/B e conversa com erros comuns em teste A/B.

A medição não é neutra

Existe uma suposição escondida em todo painel de experimento: a de que o cano que leva o comportamento até o número é o mesmo nos dois braços. Quase sempre é. Quando não é, nada no aparato estatístico avisa.

O motivo é simples. O valor-p mede quão improváveis são os dados observados sob a hipótese nula, dado que os dados medem o que você acha que medem. Ele não carrega informação nenhuma sobre a validade da medição. Um defeito de telemetria que infla o tratamento produz um valor-p pequeno com total confiança, e um intervalo de confiança estreito em torno de um número que não descreve o mundo.

Onde o viés de instrumentação entra no caminho do dadoO comportamento real do usuário é idêntico nos dois braços. Entre o comportamento e o número no painel existe uma etapa de captura, e é ali que os braços diferem: o controle perde 6 por cento dos eventos e o tratamento perde apenas 2 por cento. O painel recebe dois números diferentes a partir de um comportamento igual.Mesmo comportamento, canos de medição diferentescomportamentoidêntico12,000%12,000%nos dois braçoscaptura do controleperde 6 por centocaptura do tratamentoperde 2 por cento11,280%11,760%o que o painel mostraA diferença de 0,480 ponto percentual entre as duas caixas da direita nasceu inteiramente nas caixas do meio.
Esquemático com os números do exemplo abaixo. Nenhum usuário se comportou de forma diferente. O que diferiu foi quanto do comportamento chegou ao banco.

Exemplo trabalhado: mais 4,26 por cento de nada

Um time testa abrir um link de destino numa janela nova. A taxa de clique verdadeira é 12,000 por cento nos dois braços, porque a mudança não afeta a decisão de clicar, só o que acontece depois do clique. São 60.000 usuários por variação.

O clique é registrado por um pedido assíncrono de uma imagem de 1 por 1 pixel, o mecanismo padrão da indústria e conhecidamente sujeito a perdas: quando a navegação sai da página antes de o pedido completar, o evento simplesmente não chega. No controle, a navegação no lugar mata 6 por cento dos sinais. No tratamento, a janela nova mantém a página original viva e a perda cai para 2 por cento.

Cole os 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.

O que o banco registrou Usuários Cliques medidos Taxa medida
A, controle, perde 6 por cento 60.000 6.768 11,280 por cento
B, janela nova, perde 2 por cento 60.000 7.056 11,760 por cento

A calculadora devolve mais 0,480 ponto percentual, mais 4,26 por cento relativo, z = 2,604, valor-p 0,00921, com intervalo de 95 por cento de mais 0,119 a mais 0,841 ponto percentual. Significativo a 99 por cento de confiança.

E a verdade era esta:

O que de fato aconteceu Usuários Cliques reais Taxa real
A, controle 60.000 7.200 12,000 por cento
B, janela nova 60.000 7.200 12,000 por cento

A calculadora devolve mais 0,000 ponto percentual, valor-p 1,00000, com intervalo de menos 0,368 a mais 0,368 ponto percentual. Efeito verdadeiro exatamente zero, resultado medido significativo a 99 por cento. Nenhuma quantidade de amostra adicional corrigiria isso: dobrar o teste apenas estreitaria o intervalo em torno dos 4,26 por cento inexistentes.

Este não é um cenário hipotético. Kohavi relata o caso real no artigo de resultados inesperados publicado no SIGKDD Explorations. O sinal de alarme não foi o resultado principal, foi uma métrica que não deveria ter se movido: a porcentagem de usuários que clicavam no link apareceu significativamente maior no tratamento. Como clicar no link é o ponto de gatilho do experimento, e antes desse ponto os dois braços são idênticos, aquela diferença era impossível por construção. O time cortou os dados por navegador, encontrou variação altamente significativa do efeito por família de navegador, e chegou à explicação: abrir o destino numa janela nova melhorou muito a confiabilidade do sinal em navegadores fora do Internet Explorer. Depois da correção o recurso continuou positivo, mas bem menos do que o resultado inicial afirmava.

O efeito medido contra o efeito verdadeiroO resultado medido aponta mais 4,26 por cento relativo com valor-p 0,00921 e intervalo de confiança inteiramente acima de zero. O efeito verdadeiro é exatamente zero, com intervalo simétrico em torno de zero. A diferença entre os dois vem apenas da perda de sinal desigual entre os braços.Um resultado significativo em cima de efeito zero0%medidomais 4,26%p 0,00921verdadeiro0,00%p 1,00000A barra de cima não é um erro de amostragem. É um viés, e viés não encolhe com mais dados.
Todos os testes estatísticos passaram. O que falhou foi a premissa de que os dois braços mediam do mesmo jeito.

Os quatro modos de falha

Modo O que acontece Sinal que denuncia
Perda desigual de sinal Um braço registra melhor que o outro Métrica pré-gatilho difere entre braços
Robô concentrado Tráfego automatizado cai sempre na mesma variação Contagem por usuário com cauda absurda
Penalidade assimétrica Um braço paga redirecionamento, latência ou etapa extra Tempo de carregamento difere entre braços
Exposição mal controlada Populações diferentes entram em cada braço Composição por país, navegador ou dispositivo difere

Os dois últimos merecem detalhe, porque não parecem problemas de medição à primeira vista.

Robôs: quando o ruído vira viés

A intuição comum é que robô sempre contamina experimento. A realidade é mais precisa e mais útil. Crook, Frasca, Kohavi e Longbotham colocam a regra assim no artigo do KDD 2009: em experimentação, a preocupação é remover robôs que causam viés. Se o tráfego de um robô se distribui entre as variações de forma não enviesada, ele adiciona ruído aos dados e reduz o poder do experimento, mas não invalida os resultados. Robôs que aparecem como vários usuários distintos, por resetarem cookies ou rodarem de várias máquinas, também não introduzem viés.

O caso perigoso é o robô que age como um usuário só e gera tráfego de forma consistente para uma única variação. Nas palavras dos autores, se um robô consistentemente atribuído à variação A gera um número excessivo de cliques, ele pode fazer com que A tenha taxa de clique estatisticamente maior que B mesmo que B seja preferida pelos humanos.

A escala disso surpreende. No mesmo artigo, os autores relatam um experimento no portal MSN em que uma mudança pequena e localizada num único módulo produziu diferenças estatisticamente significativas na taxa de clique de várias áreas não relacionadas da página. A causa eram robôs que aceitavam cookies e executavam JavaScript, disparando eventos de clique a cerca de 100 por minuto durante 2,5 horas. São 15.000 cliques vindos de uma origem só. Contra um braço de 60.000 usuários com aproximadamente 7.000 cliques legítimos, isso triplica a métrica.

Os autores acrescentam um detalhe que complica a limpeza: quando um robô roda numa máquina também usada por uma pessoa, os dois compartilham o mesmo cookie. Se a identidade do usuário está guardada em cookie, o que é muito comum, o usuário aparece como se tivesse duas personalidades, agindo como humano em alguns momentos e como robô em outros.

Penalidade assimétrica e exposição

Redirecionamento é o exemplo canônico de penalidade que recai sobre um braço só. Kohavi lista três razões pelas quais a versão com redirecionamento fica atrás: os usuários do tratamento sofrem um redirecionamento extra, que parece rápido em laboratório mas pode custar centenas de milissegundos na vida real, e desacelerações nessa escala têm impacto significativo em métricas; robôs distintos tratam redirecionamentos de formas distintas, o que introduz vieses sutis e faz até testes A/A falharem; e o redirecionamento é assimétrico, porque a página de destino pode ser marcada nos favoritos, passada adiante ou indexada, e na maioria das implementações a página de tratamento não confere se aquele usuário realmente deveria estar ali, o que gera contaminação.

Controle de exposição é o parente próximo. Kohavi relata dois casos: a página inicial americana do MSN redirecionava visitantes de certos países para versões locais, e a nova versão testada ainda não tinha essa checagem implementada, então a população de usuários com endereços fora dos Estados Unidos ficou muito maior no tratamento que no controle. Em outro caso, uma configuração errada no Bing fazia com que todos os usuários da Microsoft vissem sempre o controle. Em nenhum dos dois o problema aparece como erro; ele aparece como resultado.

O desenho de quatro braços que isola a instrumentação

Quando não dá para eliminar a assimetria, dá para medi-la. Kohavi descreve o desenho: rodar A, B, A linha e B linha, em que A linha e B linha passam pelo mesmo redirecionamento ou pelo mesmo caminho de medição.

O custo é tráfego dividido em quatro em vez de dois, o que reduz o poder do desenho e alonga o prazo. Vale quando a decisão é cara e o mecanismo é suspeito, e é uma extensão natural da disciplina de teste A/A e validação de plataforma.

Checklist antes de confiar num resultado

  1. Métricas pré-gatilho batem? Contagem de usuários expostos, taxa de disparo e qualquer métrica anterior ao ponto da mudança. Diferença aqui é defeito, não achado.
  2. A divisão de tráfego bate com o planejado? O procedimento de divisão desigual de tráfego pega uma boa parte desses problemas antes de qualquer análise.
  3. O tempo de carregamento é igual entre os braços? Se um braço é mais lento, parte do efeito é velocidade e não produto.
  4. A composição da população bate? Corte por país, navegador e dispositivo. Diferença grande de composição aponta para controle de exposição furado.
  5. O efeito se concentra num navegador ou dispositivo? Efeito de produto costuma ser difuso; efeito de instrumentação costuma se concentrar exatamente onde o mecanismo de captura difere.
  6. Existe cauda absurda na contagem por usuário? Um usuário com centenas de eventos num período curto é robô ou monitoramento, não cliente.
  7. Algum sistema automatizado toca esse fluxo? Kohavi relata um caso em que o monitoramento de disponibilidade pedia a página e simulava clique no botão de compra, e com o novo desenho o clique falhava e o sistema tentava de novo várias vezes, derrubando a taxa de clique do tratamento. O sinal foi o número de páginas vistas por usuário significativamente maior no tratamento.

Erros comuns

Faça isso automático na Donnu

Nada disso é difícil de entender. É difícil de lembrar, toda vez, com o resultado bom já na tela e a reunião marcada.

Na Donnu, as checagens que denunciam medição rodam antes de o resultado aparecer, e não depois que alguém desconfia: comparação de métricas pré-gatilho entre os braços, checagem da proporção de tráfego, tempo de carregamento por variação e composição da população por navegador, dispositivo e origem. Quando alguma delas acende, o relatório mostra o alerta acima do resultado principal, porque a ordem em que a informação aparece muda a decisão que é tomada. Se preferir conferir os números na mão, a calculadora de valor-p aceita as contagens brutas de qualquer um dos cortes.

Referências

Leia também: Erros comuns em teste A/B · Teste A/A e validação · Divisão desigual de tráfego · Métricas de guardrail · Calculadora de valor-p · Read in English

Perguntas frequentes

O que é viés de instrumentação em teste A/B?
É quando a variação altera não o comportamento do usuário, mas a forma como esse comportamento é registrado. O resultado é uma diferença real nos dados e inexistente na realidade. Kohavi descreve um caso exato disso: ao abrir um link numa janela nova, a confiabilidade do sinal de clique melhorou em navegadores fora do Internet Explorer, porque cliques são medidos por um pedido assíncrono de uma imagem de 1 por 1 pixel, mecanismo conhecidamente sujeito a perdas. O recurso continuou positivo depois da correção, mas bem menos do que o número inicial dizia.
Como diferenciar viés de instrumentação de um efeito real?
A checagem mais forte é o ponto de gatilho. Antes do ponto em que as variações passam a ser diferentes, os dois braços viram exatamente a mesma coisa, então nenhuma métrica pré-gatilho deveria diferir de forma estatisticamente significativa. Quando difere, aquilo é impossível por construção e a causa é medição, não comportamento. Foi assim que o caso do link em nova janela foi descoberto: a porcentagem de usuários que clicavam no link apareceu significativamente maior no tratamento, o que não podia acontecer.
Robô sempre estraga o resultado do teste?
Não. Crook, Frasca, Kohavi e Longbotham fazem essa distinção com cuidado no artigo do KDD 2009: se o tráfego de robô se distribui entre as variações de forma não enviesada, ele adiciona ruído e reduz o poder do experimento, mas não invalida o resultado. Robô que reseta cookie ou roda de várias máquinas aparece como vários usuários distintos e também não gera viés. O caso perigoso é o robô que age como um usuário só e gera tráfego de forma consistente para uma única variação, porque aí ele pode tornar aquela variação estatisticamente melhor sem que nenhum humano tenha preferido nada.
Por que redirecionamento é um problema em teste A/B?
Porque ele penaliza um braço só. Kohavi lista três razões: os usuários do tratamento sofrem um redirecionamento extra que pode custar centenas de milissegundos, robôs diferentes tratam redirecionamentos de formas diferentes e introduzem viés sutil, e o redirecionamento é assimétrico, já que a página de destino pode ser marcada nos favoritos, compartilhada ou indexada sem que ninguém confira se aquele usuário deveria estar no tratamento. A recomendação é preferir um mecanismo no servidor e, quando não der, garantir que os dois braços paguem a mesma penalidade.
O que é um teste A/A com braços redirecionados?
É o desenho que isola a instrumentação do efeito. Você roda quatro braços: A e B normais, mais A linha e B linha que passam pelo mesmo redirecionamento ou pelo mesmo caminho de medição. A comparação entre A linha e B linha é justa, porque os dois pagaram a mesma penalidade, e a diferença entre A e A linha mede exatamente quanto o mecanismo de medição custou nas métricas-chave. Kohavi relata usar esse desenho quando não é possível eliminar o redirecionamento.