Estatística

Outliers em Teste A/B: quando cortar a cauda longa

Outliers de receita: um cliente sozinho pode inventar uma vitória de 50 por cento por usuário. Como usar capping sem trocar um viés por outro.

Ilustração plana de uma fileira de barras baixas e uniformes com uma barra muito mais alta ao centro, cortada por uma linha horizontal na altura das demais

Métricas de receita por usuário são fortemente assimétricas, e a média é o resumo mais frágil que existe para uma distribuição assim. Um único cliente, um outlier de receita, move a média de um braço inteiro em dezenas de por cento sem que nada tenha acontecido com o produto. Este guia cobre um exemplo trabalhado em que um comprador corporativo inventa uma vitória de 50 por cento sozinho, a regra de bolso publicada pela equipe do Bing para saber quantos usuários a sua métrica realmente precisa, por que o piso de poder e o piso de normalidade são dois pisos diferentes, como escolher um teto sem transformar capping em manipulação, e o que capping definitivamente não conserta. Faz parte do nosso guia completo de teste A/B e conversa diretamente com métricas de razão.

A média não aguenta a sua distribuição de receita

Taxa de conversão é uma métrica bem comportada: cada usuário contribui com zero ou um, a variância é limitada e o teorema central do limite chega rápido. Receita por usuário não tem nenhuma dessas propriedades. A maior parte dos usuários contribui com zero, a maioria dos compradores contribui com pouco, e uma minúscula fração contribui com valores centenas de vezes maiores que a média.

O tamanho disso não é uma impressão. Kohavi, Deng, Longbotham e Xu relatam que, num site de comércio, a assimetria da métrica de compras por cliente passava de 10 e a de receita por cliente passava de 30. No Bing, a receita por usuário tinha coeficiente de assimetria de 17,9. Para efeito de comparação, uma distribuição simétrica tem assimetria zero, e a regra de bolso dos autores só é acionada quando o módulo da assimetria passa de 1.

Forma típica de uma distribuição de receita por usuárioHistograma em que a primeira barra, correspondente a usuários que gastaram zero, é de longe a mais alta, seguida de barras que caem rapidamente e de uma cauda muito longa e muito baixa à direita. A média fica à direita da mediana, puxada pela cauda, e uma linha vertical tracejada marca onde um teto de valor seria aplicado, cortando apenas a ponta extrema da cauda.medianamédiatetodefinido antesgasto por usuário, crescendo para a direitaA barra laranja na ponta é um único usuário. Ele sozinho move a média mais do que as centenas de barras claras juntas.
A média fica sempre à direita da mediana numa distribuição assim, e a distância entre as duas é exatamente a alavanca que a cauda tem sobre o seu resultado.

Exemplo trabalhado: uma compra que inventa 50 por cento

Um comércio B2B roda um teste com 60.000 usuários por braço. O comportamento real é idêntico nos dois lados: a mudança testada não afetou compra nenhuma. Cada braço acumula R$ 240.000 em receita, dando uma média honesta de R$ 4,00 por usuário.

Só que um usuário do braço B é um comprador corporativo que colocou um pedido único de R$ 120.000. Não é fraude, não é robô, não é bug: é uma venda real que aconteceria de qualquer jeito.

Braço Usuários Receita total Receita por usuário
A, controle 60.000 R$ 240.000 R$ 4,0000
B, tratamento, com o pedido corporativo 60.000 R$ 360.000 R$ 6,0000
Diferença medida R$ 120.000 mais R$ 2,0000, mais 50,00 por cento

Uma vitória de 50 por cento em receita por usuário, produzida por 1 usuário em 120.000. Se o pedido tivesse caído no braço A, o mesmo experimento teria produzido uma derrota de 33,3 por cento. O resultado do teste foi decidido por um sorteio que nada tem a ver com o produto.

Agora o mesmo experimento com um teto de R$ 200 por usuário, definido antes e aplicado igualmente nos dois braços:

Braço Receita total limitada Receita por usuário limitada
A, controle R$ 240.000 R$ 4,0000
B, tratamento R$ 240.200 R$ 4,0033
Diferença medida mais R$ 0,0033, mais 0,08 por cento

A leitura correta apareceu: não houve efeito. E o que aconteceu com a receita real da empresa? Nada. Os R$ 120.000 entraram no caixa. O que o teto fez foi impedir que uma venda que teria acontecido de qualquer forma fosse creditada à mudança de produto.

O mesmo experimento lido com e sem teto de valorDuas comparações lado a lado. À esquerda, sem teto: a barra do controle marca 4 reais por usuário e a do tratamento marca 6 reais, uma diferença de 50 por cento. À direita, com teto de 200 reais por usuário: as duas barras ficam praticamente na mesma altura, 4,0000 contra 4,0033 reais, uma diferença de 0,08 por cento. O comportamento dos usuários é idêntico nas duas leituras.Sem tetoCom teto de R$ 200 por usuárioR$ 4,0000controleR$ 6,0000tratamentomais 50,00 por centoR$ 4,0000controleR$ 4,0033tratamentomais 0,08 por cento
Nenhum usuário se comportou de forma diferente entre as duas leituras. A diferença de 50 por cento existia só na sensibilidade da média a um valor extremo.

A régua de Kohavi: 355 vezes o quadrado da assimetria

Se a média demora a ficar normal, o intervalo de confiança que a calculadora imprime não vale o que promete. A pergunta prática é: quantos usuários bastam? Kohavi, Deng, Longbotham e Xu publicaram uma regra de bolso direta no KDD 2014, derivada do trabalho de Boos e Hughes-Oliver: o número mínimo de observações independentes e identicamente distribuídas para que a média tenha distribuição aproximadamente normal é de 355 vezes o quadrado do coeficiente de assimetria, por variação. Eles recomendam aplicar a regra sempre que o módulo da assimetria passa de 1.

A tabela que eles publicaram com métricas reais do Bing, junto do resultado que a fórmula devolve quando refeita à mão:

Métrica do Bing Assimetria (módulo) 355 vezes o quadrado Amostra publicada Sensibilidade a 80 por cento de poder
Receita por usuário 17,9 113.746 114 mil 4,4 por cento
Receita por usuário, limitada 5,2 9.599 9,7 mil 10,5 por cento
Sessões por usuário 3,6 4.601 4,70 mil 5,4 por cento
Tempo até o sucesso 2,1 1.566 1,55 mil 12,3 por cento

A conta refeita reproduz a tabela publicada dentro do arredondamento do coeficiente de assimetria, e o salto entre a primeira e a segunda linha é o argumento inteiro do capping em um número: a mesma métrica, limitada, precisa de doze vezes menos usuários para que a média seja confiável.

Amostra mínima para normalidade da média por nível de assimetriaBarras horizontais comparando a amostra mínima por variação exigida pela regra de 355 vezes o quadrado da assimetria. Receita por usuário com assimetria 17,9 exige 113.746 usuários; a mesma métrica limitada, com assimetria 5,2, exige 9.599; sessões por usuário com assimetria 3,6 exige 4.601; tempo até o sucesso com assimetria 2,1 exige 1.566. A escala é dominada pela primeira barra, o que é justamente o ponto.Usuários por variação exigidos só para a média ficar aproximadamente normalreceita por usuário113.746receita limitada9.599sessões por usuário4.601tempo até o sucesso1.566A regra cresce com o QUADRADO da assimetria, então dobrar a cauda quadruplica a amostra necessária.
Valores calculados com a regra publicada por Kohavi, Deng, Longbotham e Xu, usando os coeficientes de assimetria da tabela deles.

Dois pisos diferentes, e vale o maior

Aqui está a confusão que faz times subestimarem a duração de um teste. A calculadora de tamanho de amostra responde a uma pergunta de poder: quantos usuários para detectar um efeito de tamanho X. A regra dos 355 responde a uma pergunta de validade: quantos usuários para que a matemática do intervalo de confiança faça sentido. São pisos distintos e independentes, e você precisa passar nos dois.

Rode o piso de poder para a sua métrica binária de conversão:

Calculadora de tamanho de amostra
-Visitantes por variação
-Total (2 variações)
-Duração estimada

Cálculo por aproximação normal de duas proporções, 2 variações (50/50). Mexa nos campos e veja o impacto ao vivo.

Com uma base de 5 por cento e um efeito mínimo detectável de 10 por cento relativo, a 95 por cento de confiança e 80 por cento de poder, saem 31.234 usuários por variação. Se o seu teste também acompanha receita por usuário com assimetria perto de 18, o piso de normalidade dessa métrica sozinho é de 113.746 por variação. O teste que você acha que dura duas semanas dura sete, e quem dita isso é a métrica de receita, não a de conversão.

Piso O que ele responde Exemplo Valor
Poder consigo detectar o efeito que me interessa conversão de 5 por cento, MDE de 10 por cento relativo 31.234 por variação
Normalidade o intervalo de confiança significa o que diz receita por usuário, assimetria 17,9 113.746 por variação
Decisão vale o maior dos dois 113.746 por variação

Kohavi e colegas acrescentam uma recomendação barata que ajuda de graça: garantir que controle e tratamento tenham o mesmo tamanho. Com divisão 50 contra 50 e distribuições parecidas, a distribuição da diferença fica aproximadamente simétrica, e a assimetria deixa de ser o problema que era. Divisões desiguais custam mais do que parecem, e a checagem disso é o assunto de divisão desigual de tráfego.

Como escolher um teto sem virar manipulação

A diferença entre método e manipulação está inteira no procedimento, não no valor do teto.

  1. Escolha o teto antes do experimento, a partir de dados históricos, nunca olhando o resultado. Kohavi e colegas relatam ter limitado a receita por usuário do Bing em 10 dólares por usuário por semana; a assimetria caiu de cerca de 18 para cerca de 5, e com o mesmo tamanho de amostra a métrica limitada passou a detectar uma mudança 30 por cento menor que a métrica sem limite.
  2. Aplique exatamente o mesmo teto aos dois braços. Teto assimétrico não é análise, é escolha de vencedor.
  3. Fixe uma janela junto do valor. Dez dólares por usuário por semana é diferente de dez dólares por usuário por experimento. Sem janela declarada, o mesmo teto vira mais restritivo em testes longos.
  4. Reporte as duas métricas. A limitada decide, a bruta acompanha. Quando as duas discordam de forma grande e persistente, isso é informação: significa que o efeito está concentrado na cauda, e a decisão de negócio pode ser diferente da decisão estatística.
  5. Diga qual pergunta você está respondendo. A métrica limitada fala do cliente típico. Ela não fala da receita total da empresa, e apresentá-la como se falasse é o único jeito real de mentir com capping.

Uma alternativa ao teto rígido, quando a cauda é o produto e não o ruído: em vez de limitar, reduza a variância por outros caminhos. CUPED usa dados pré-experimento para tirar variação que não tem nada a ver com o tratamento e costuma dar ganho de sensibilidade sem tocar em nenhum valor observado.

O que capping não conserta

Teto é uma ferramenta contra valores legítimos e extremos. Ele não é, e não substitui, limpeza de dado sujo.

Robô ainda precisa ser tratado como robô. Crook, Frasca, Kohavi e Longbotham fazem a 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. Eles relatam um caso no portal MSN em que robôs aceitavam cookies e executavam JavaScript, disparando eventos de clique a cerca de 100 por minuto durante 2,5 horas.

Defeito de medição continua defeito. Se a diferença nasce de quanto do comportamento foi registrado, e não do comportamento, nenhum teto resolve. Esse é o assunto de viés de instrumentação, e o sintoma clássico é métrica pré-gatilho desbalanceada.

Efeito concentrado na cauda não some porque foi cortado. Se a sua mudança de produto realmente faz clientes grandes comprarem mais, o teto vai esconder exatamente o efeito que interessa. Aí a resposta não é remover o teto no meio do teste, é declarar antes uma segunda métrica, por exemplo receita entre grandes contas, e dimensionar o teste para ela.

Checklist de outliers antes de olhar a média

  1. Qual é a assimetria da minha métrica principal? Se passa de 1, a regra dos 355 se aplica e provavelmente muda a sua estimativa de duração.
  2. Robô, teste interno e tráfego de monitoramento já foram removidos? Isso vem antes de qualquer decisão de teto.
  3. O teto foi definido antes, com janela, e vale para os dois braços?
  4. A métrica bruta e a limitada contam a mesma história? Divergência grande é informação, não incômodo.
  5. A divisão é 50 contra 50? É a correção mais barata disponível para assimetria.
  6. O maior dos dois pisos foi respeitado? Poder e normalidade são exigências separadas.
  7. Um único usuário consegue mudar a decisão? Se sim, você não tem um resultado, tem um sorteio. Refaça a média tirando o maior valor de cada braço e veja se a conclusão sobrevive.

Erros comuns

Faça isso automático na Donnu

O problema do outlier não é matemático, é de sequência: quase sempre a decisão de teto é tomada depois de alguém ver um número estranho, e nesse ponto ela já não é mais uma decisão neutra.

Na Donnu, a métrica de receita chega com a assimetria calculada e com o piso de normalidade da regra de 355 exibido ao lado do piso de poder, para que a estimativa de duração já nasça pelo maior dos dois. O teto é um campo do desenho do experimento, preenchido antes de rodar e registrado no histórico, e o relatório mostra sempre a métrica bruta e a limitada lado a lado, com aviso quando as duas discordam. Se quiser refazer a conta de duração na mão, a calculadora de tamanho de amostra e a calculadora de duração aceitam os seus números.

Referências

Leia também: Métricas de razão · O que é CUPED · Viés de instrumentação · Métricas de guardrail · Calculadora de tamanho de amostra · Read in English

Perguntas frequentes

O que é capping em teste A/B?
É limitar o valor máximo que um único usuário pode contribuir para uma métrica antes de calcular a média. Kohavi, Deng, Longbotham e Xu relatam ter limitado a receita por usuário do Bing em 10 dólares por usuário por semana; a assimetria da métrica caiu de cerca de 18 para cerca de 5 e, com o mesmo tamanho de amostra, a receita por usuário limitada passou a detectar uma mudança 30 por cento menor do que a versão sem limite. O teto tem que ser decidido antes do experimento e aplicado de forma idêntica aos dois braços.
Quantos usuários preciso para uma métrica de receita?
Mais do que a conta de poder sugere. A regra de bolso publicada por Kohavi, Deng, Longbotham e Xu no KDD 2014 é de 355 vezes o quadrado do coeficiente de assimetria por variação, e eles recomendam usá-la sempre que o módulo da assimetria passa de 1. Para a receita por usuário do Bing, com assimetria de 17,9, isso dá cerca de 114 mil usuários por braço só para a média ficar aproximadamente normal, antes de qualquer consideração de poder estatístico.
Capping não é manipular o resultado?
É manipulação quando o teto é escolhido depois de ver os dados, ou aplicado a um braço só, ou trocado até o número ficar bonito. Não é manipulação quando o teto é definido antes do experimento a partir de dados pré-experimento, aplicado igualmente aos dois braços, documentado, e reportado junto da métrica sem limite. O que muda de verdade é a pergunta: a métrica limitada responde sobre o cliente típico, não sobre a receita total, e isso precisa estar dito.
Um robô estraga a média de receita do experimento?
Depende de como ele se distribui. Crook, Frasca, Kohavi e Longbotham são precisos nesse ponto: tráfego de robô espalhado pelas variações de forma não enviesada 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 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 significativamente melhor sem que nenhum humano tenha preferido nada.
Qual a diferença entre outlier e cauda longa legítima?
Outlier é o valor que não deveria estar no conjunto: robô, teste interno, erro de instrumentação, pedido duplicado. Cauda longa legítima é o cliente corporativo real que comprou 30 mil reais de verdade. O primeiro se remove, e remover é a decisão certa. O segundo não se remove, porque é receita real da empresa; o que se faz é limitar a influência dele sobre a média, aceitando que a métrica limitada responde a uma pergunta um pouco diferente.