Estatística

Atrito Diferencial em Teste A/B: os limites de Lee

Atrito diferencial faz a média condicional mentir. Como os limites de Lee cercam o efeito real quando o tratamento muda quem sobra na análise.

Ilustração plana de dois funis verdes lado a lado, um cheio de esferas com algumas escapando pela lateral e outro despejando poucas esferas num copo pequeno

Atrito diferencial é quando o tratamento muda quem sobra na análise, e não só o valor da métrica. A partir daí a média entre os sobreviventes compara populações diferentes: no exemplo trabalhado deste guia, o efeito verdadeiro era de 0,10 e a média condicional devolveu 0,0422 com intervalo de 95 por cento de 0,0258 a 0,0585, ou seja, altamente significante e sem conter o valor certo. Este guia mostra como detectar o problema antes de ler o resultado, como cercar o efeito real com os limites de Lee quando a métrica só existe para quem sobrou, e qual é a métrica alternativa que não sofre do problema. Faz parte do nosso guia completo de teste A/B e continua a conversa de intenção de tratar e paradoxo de Simpson.

O sorteio protege o denominador que você sorteou, e só ele

Um teste A/B distribui usuários entre dois braços de forma aleatória e, com isso, torna os grupos comparáveis. Essa comparabilidade é uma propriedade do conjunto sorteado. Ela não acompanha nenhum subconjunto definido depois.

Toda métrica calculada sobre “quem chegou até aqui” carrega um denominador que o tratamento pode ter mudado. Alguns exemplos que aparecem toda semana:

Em todos, a pergunta interessante é sobre o efeito da mudança, e a conta feita responde a outra coisa: qual é a diferença entre dois grupos que foram formados de maneiras diferentes.

O nome disso na literatura de experimentação online é desbalanceamento de amostra da métrica. Dmitriev, Gupta, Kim e Vaz descrevem o fenômeno no artigo de armadilhas de interpretação da KDD 2017 e são diretos sobre a consequência: numa situação dessas o valor da métrica não pode ser confiado, a diferença entre tratamento e controle pode mudar em qualquer direção e a frase “o novo recurso causou tal variação na métrica” deixa de ser válida.

Um caso real: 8,32 por cento mais lento sem nada ter ficado mais lento

O exemplo mais didático que conhecemos está nesse mesmo artigo. Um experimento na página inicial do MSN trocou o comportamento dos links: no tratamento, clicar num link abria a página de destino numa aba nova; no controle, na mesma aba. O resultado veio com 8,32 por cento de aumento no tempo de carregamento da página inicial, uma degradação enorme para uma mudança de uma linha de JavaScript.

Não havia bug. O que havia era um denominador diferente. No controle, o usuário que clicava num link e queria voltar usava o botão voltar do navegador, o que recarregava a página inicial. Essas recargas eram rápidas, porque vinham do cache. No tratamento, o link abria numa aba nova e a página inicial permanecia aberta na aba antiga, então essas recargas rápidas simplesmente não aconteciam. O tratamento teve 7,8 por cento menos carregamentos da página inicial, e os que sumiram eram justamente os mais rápidos.

A média piorou porque a população de carregamentos mudou. Nenhum carregamento ficou mais lento.

Como sumir com observações rápidas piora a média sem piorar nadaDuas faixas horizontais de pontos representando tempos de carregamento, do rápido à esquerda ao lento à direita. Na faixa superior, o controle, existem muitos pontos claros agrupados na região rápida, correspondentes às recargas pelo botão voltar, além dos pontos escuros espalhados pelo restante. Na faixa inferior, o tratamento, os pontos claros da região rápida desapareceram e sobraram apenas os pontos escuros, idênticos aos do controle. Um marcador de média em cada faixa mostra que a média do tratamento está mais à direita, ou seja, mais lenta, embora nenhum ponto individual tenha se movido.Nenhum ponto se moveu, a média se moveucontrolemédiatratamentomédiaas recargas rápidas pelo botão voltar deixaram de existirrápidolentotempo de carregamento
O experimento do MSN relatado por Dmitriev e colegas: 8,32 por cento de piora no tempo médio de carregamento causada por 7,8 por cento menos carregamentos, todos eles rápidos.

Exemplo trabalhado: um onboarding que ativa mais e parece entregar menos

Para medir o tamanho do estrago, simulamos um caso em que a verdade é conhecida. O cenário: um SaaS testa um onboarding novo. Cada usuário tem uma qualidade latente que determina tanto a chance de ativar quanto o valor que ele gera. O onboarding novo facilita a ativação, e o valor gerado por quem ativaria de qualquer jeito sobe 0,10.

Os parâmetros do mundo simulado:

Rodamos com 30.000 usuários por braço, semente fixa. Primeiro, a checagem que precede qualquer leitura:

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.

Colando na calculadora acima o controle com 30.000 visitantes e 11.972 ativações (39,9067 por cento) contra o tratamento com 30.000 visitantes e 13.817 ativações (46,0567 por cento), o resultado é z de 15,2150, valor-p abaixo de 0,000001 e diferença de 6,1500 pontos percentuais, com intervalo de 5,3593 a 6,9407. Esse número é excelente notícia de produto e péssima notícia de leitura: ele avisa que qualquer média calculada entre os ativados compara grupos formados de maneiras diferentes.

E é o que acontece. Entre quem ativou, o valor médio foi 2,4774 no controle e 2,5196 no tratamento:

conta resultado erro-padrão intervalo de 95% contém a verdade (0,10)?
média entre ativados (ingênua) mais 0,0422 0,00833 de 0,0258 a 0,0585 não
limites de Lee de menos 0,1267 a mais 0,2052 aparo de 13,3531% largura de 0,3319 sim
métrica incondicional mais 4,8567 pp ver seção adiante de 4,1336 a 5,5797 pp não se aplica

A média ingênua devolve um t de 5,0623 e um intervalo apertado que exclui o valor verdadeiro. Não é falta de amostra: com 30 mil por braço o intervalo é estreito, e ele está estreito em volta do número errado. Mais tráfego só aperta mais o intervalo em torno do mesmo viés.

Quem o tratamento trouxe para dentro da amostraDiagrama de duas colunas representando a população ordenada por qualidade latente, do topo para a base. Na coluna do controle, uma linha de corte deixa 40 por cento dos usuários acima dela, dentro da amostra medida, e 60 por cento abaixo, fora. Na coluna do tratamento, a linha de corte desce e deixa 46 por cento dentro. A faixa de 6 pontos percentuais entre as duas linhas está destacada e rotulada como marginais, usuários que só entram na amostra do tratamento e não têm equivalente no controle. Uma anotação registra que esses usuários entram na média do tratamento trazendo valores baixos, o que empurra a média para baixo sem que ninguém tenha piorado.Os marginais entram só de um ladocontrole40% medidos60% foratratamento40% medidos6% marginais54% foraestes não têm par no controleQualidade latente decrescente de cima para baixo. A média do tratamento inclui uma faixa que a do controle não tem.
O tratamento baixou o corte de ativação. A faixa de 6 pontos percentuais que entrou é composta pelos usuários mais fracos, e é ela que puxa a média condicional para baixo.

Limites de Lee: aparar em vez de adivinhar

David Lee publicou em 2009 um procedimento que resolve esse problema de um jeito honesto: em vez de estimar um número, ele cerca o efeito. O raciocínio, no resumo do próprio artigo, é identificar o número excedente de indivíduos que foram induzidos a entrar na amostra por causa do tratamento e então aparar as caudas superior e inferior da distribuição do desfecho por esse número, produzindo os limites de pior caso.

A conta tem três passos:

  1. Calcule a fração de aparo. Ela é a diferença entre as taxas de presença, dividida pela taxa do braço tratado. No nosso exemplo: (46,0567 menos 39,9067) dividido por 46,0567 igual a 13,3531 por cento.
  2. Apare o topo da distribuição do tratado por essa fração e compare a média resultante com o controle. Isso dá o limite inferior, o cenário em que os marginais eram os melhores da amostra.
  3. Apare a base pela mesma fração e compare. Isso dá o limite superior, o cenário em que os marginais eram os piores.

Nos nossos dados, 13,3531 por cento de 13.817 observações são 1.845 observações aparadas de cada lado. O quantil de corte inferior fica em 1,7798 e o superior em 3,2657. As médias aparadas são 2,3506 e 2,6826, contra o controle de 2,4774.

limite média aparada do tratamento contra o controle leitura
inferior 2,3506 (sem os 1.845 maiores) menos 0,1267 pior caso: marginais eram os melhores
superior 2,6826 (sem os 1.845 menores) mais 0,2052 melhor caso: marginais eram os piores

O intervalo de identificação vai de menos 0,1267 a mais 0,2052. Ele contém o valor verdadeiro de 0,10, e contém o zero. A tradução honesta desse resultado é: com 6,15 pontos percentuais de atrito diferencial, esses dados não conseguem nem dizer o sinal do efeito sobre o valor gerado. É desconfortável, e é verdade. O intervalo apertado de 0,0258 a 0,0585 era conforto falso.

A estimativa ingênua contra os limites de LeeGráfico de intervalos horizontais. Uma linha vertical tracejada marca o zero e outra marca o valor verdadeiro de 0,10. A barra superior, curta e escura, é o intervalo de 95 por cento da média condicional, indo de 0,0258 a 0,0585, inteiramente à esquerda do valor verdadeiro. A barra inferior, muito mais longa e em tom claro, é o intervalo de identificação dos limites de Lee, indo de menos 0,1267 a mais 0,2052, que atravessa o zero e contém o valor verdadeiro.Estreito e errado contra largo e corretozeroverdade: 0,10média condicional0,02580,0585limites de Leemenos 0,1267mais 0,2052contém o zeroEscala em unidades do valor gerado por usuário ativado. O intervalo estreito não contém o valor verdadeiro.
Os limites de Lee não estreitam a resposta: eles mostram o quanto a resposta realmente é desconhecida quando o tratamento mexe no denominador.

Repetimos o desenho em 1.200 réplicas com 12.000 usuários por braço para confirmar que não é sorte de semente:

verificação resultado
média condicional, média das réplicas mais 0,0484 (verdadeiro 0,10)
viés da média condicional menos 0,0516
limite inferior médio menos 0,1165
limite superior médio mais 0,2080
réplicas em que os limites contêm o valor verdadeiro 100,00%

A conta original de Lee, em salários de verdade

Vale ver o procedimento na aplicação que o originou, porque ela mostra o caso feliz: aparo pequeno, limites úteis. Lee avaliou o Job Corps, um grande programa federal de treinamento profissional nos Estados Unidos. O desafio é que salário só existe para quem está empregado, e o programa também muda a chance de estar empregado. É o mesmo problema, com outro vocabulário.

Na semana 208 depois do sorteio:

quantidade tratamento controle
observações 5.546 3.599
proporção com salário observado 0,607 0,566
média do logaritmo do salário entre empregados 2,031 1,997

A diferença ingênua é 0,034. A fração de aparo é (0,607 menos 0,566) dividido por 0,607, ou seja, 0,068. O quantil de corte fica em 1,636 e a média aparada por cima em 2,090, o que dá limite superior de 0,093. Pelo outro lado, o quantil em 2,768 e a média aparada em 1,978 dão limite inferior de menos 0,019. Lee reporta erros-padrão de 0,0123 e 0,0165 para os dois limites e um intervalo de confiança de menos 0,052 a 0,117.

A largura dos limites aqui é 0,112, e Lee registra que isso é um catorze avos da largura que a abordagem alternativa de Horowitz e Manski produziria nos mesmos dados. Os limites na semana 208 contêm o zero, mas os da semana 90 não contêm, e a conclusão do artigo é que a evidência aponta para efeito positivo sobre salários, embora não muito acima de 10 por cento.

A lição prática: com 4,1 pontos percentuais de atrito diferencial, os limites ainda decidem coisas. Com 6,15 pontos, no nosso exemplo, eles já não decidiam o sinal. A diferença entre um caso e outro não é o método, é quanto de atrito o desenho gerou.

Quanto o atrito diferencial custa em largura

Repetimos a simulação variando só a taxa de ativação do tratamento, com o mesmo efeito verdadeiro de 0,10:

ativação do tratamento atrito diferencial fração de aparo limite inferior limite superior largura média condicional
41% 1 pp 0,0216 mais 0,0495 mais 0,1195 0,0700 mais 0,0853
43% 3 pp 0,0688 menos 0,0296 mais 0,1604 0,1899 mais 0,0673
46% 6 pp 0,1304 menos 0,1264 mais 0,2011 0,3275 mais 0,0405
50% 10 pp 0,2019 menos 0,2311 mais 0,2439 0,4751 mais 0,0106
55% 15 pp 0,2744 menos 0,3411 mais 0,2807 0,6218 menos 0,0257

Duas leituras saem daí.

Primeira: a largura cresce muito mais rápido que o atrito. Triplicar o atrito de 1 para 3 pontos quase triplica a largura; de 1 para 15 pontos, a largura cresce quase nove vezes. Com 1 ponto percentual de atrito, os limites vão de 0,0495 a 0,1195 e já excluem o zero: o resultado decide.

Segunda, e mais desconfortável: a média condicional degrada monotonicamente e chega a trocar de sinal. Com 15 pontos de atrito diferencial, ela devolve menos 0,0257 num mundo em que o efeito verdadeiro é mais 0,10. Um time que lesse só essa coluna concluiria que o onboarding novo, que ativa 15 pontos percentuais a mais, piorou o valor gerado. Ele não piorou nada.

A saída barata: uma métrica que existe para todos os sorteados

Antes de aparar distribuição, tente a solução mais simples: trocar a métrica por uma que esteja definida para todo usuário sorteado. Em vez de “valor médio entre quem ativou”, meça “proporção de todos os sorteados que ativaram e passaram de um limiar de valor”.

No nosso exemplo, com limiar em 2,2 unidades de valor: 7.888 dos 30.000 usuários do controle (26,2933 por cento) contra 9.345 dos 30.000 do tratamento (31,1500 por cento). Colando esses quatro números na calculadora deste artigo: z de 13,1462, valor-p abaixo de 0,000001, diferença de 4,8567 pontos percentuais, ganho relativo de 18,4711 por cento e intervalo de 4,1336 a 5,5797 pontos percentuais.

Essa conta é limpa porque o denominador é o do sorteio. O que ela responde é diferente, e vale declarar: ela mede o efeito conjunto de ativar mais gente e de entregar valor, sem separar as duas coisas. Para uma decisão de lançamento, é exatamente a pergunta certa, e é a mesma lógica de intenção de tratar aplicada ao desfecho. Para um diagnóstico de “o produto ficou melhor para quem já usava”, ela não serve, e aí você volta para os limites.

Dmitriev e colegas fazem a mesma recomendação para funis: medir taxas de sucesso condicionais e incondicionais, sendo a incondicional calculada sobre todos os usuários que entraram no topo do funil, e não só sobre quem tentou a etapa.

Um cuidado que a peça sobre muitas métricas num teste já cobre: o limiar de valor precisa ser escolhido antes de olhar os dados. Testar 1,8, 2,0 e 2,2 e publicar o que deu significante é teste múltiplo disfarçado de escolha de métrica.

Checklist de atrito diferencial antes de ler qualquer média condicional

  1. Meça a taxa de presença nos dois braços e teste a diferença como se fosse uma métrica, do mesmo jeito que numa checagem de divisão desigual de tráfego.
  2. Se a diferença for significante, pare. Nenhuma média calculada depois desse ponto é comparável, por mais tráfego que você junte.
  3. Tente primeiro a métrica incondicional, no denominador do sorteio. É a solução mais barata e quase sempre é a pergunta de negócio correta.
  4. Se a métrica só existir para quem sobrou, calcule os limites de Lee. São três linhas de código: fração de aparo, dois quantis, duas médias aparadas.
  5. Reporte a largura junto com os limites. Largura grande é informação, não fracasso: ela diz que o desenho não permite a conclusão pretendida.
  6. Verifique a monotonicidade da seleção. Se o tratamento tira gente da amostra em algum subgrupo enquanto traz gente em outro, os limites não valem como estão.
  7. Segmente com critério anterior ao sorteio. Segmento definido por comportamento pós-tratamento reproduz o problema, e é o caso do Bing relatado por Dmitriev e colegas, em que dois segmentos subiram enquanto a população combinada não se moveu, o paradoxo de Simpson em forma de armadilha operacional.

Erros comuns

Faça isso automático na Donnu

A raiz do problema quase nunca é estatística: é o momento em que o dado é gravado. Ferramentas que registram o usuário no experimento quando ele atinge a etapa medida perdem para sempre o denominador do sorteio, e nesse modelo de dados nem a checagem de presença nem os limites de Lee são calculáveis, porque a informação de quem sumiu não existe em lugar nenhum.

A Donnu grava a atribuição no instante do sorteio, separada dos eventos de etapa, o que mantém disponíveis os dois números de que este artigo depende: quantos foram sorteados e quantos chegaram. Se a sua ferramenta atual só registra quem completou, o passo imediato é adicionar um evento de exposição na atribuição, e enquanto isso rodar a comparação de presença com a calculadora de valor-p antes de qualquer leitura de média condicional. Uma diferença significante ali é motivo suficiente para não publicar o resultado.

Referências

Leia também: Intenção de tratar · SRM: divisão desigual de tráfego · Paradoxo de Simpson · Análise por gatilho e diluição · Métricas de guardrail · Calculadora de valor-p · Read in English

Perguntas frequentes

O que é atrito diferencial em teste A/B?
É quando o tratamento muda quantos usuários chegam ao ponto em que a métrica é medida, e não apenas o valor da métrica. Uma variação que ativa mais gente, retém mais gente ou faz mais gente responder à pesquisa muda a composição de quem entra na conta. A partir daí, comparar a média entre os dois braços compara populações diferentes, e a diferença deixa de ser causal mesmo com sorteio perfeito e milhões de usuários.
Por que a média entre quem completou o fluxo é enganosa?
Porque os usuários que o tratamento trouxe para dentro do fluxo são, tipicamente, os marginais: os que estavam mais perto de desistir. Eles entram na média do tratamento e não têm par no controle. No exemplo trabalhado deste guia, o efeito verdadeiro era de 0,10 e a média condicional devolveu 0,0422 com intervalo de 0,0258 a 0,0585, um resultado altamente significante cujo intervalo de 95 por cento não contém o valor verdadeiro.
O que são os limites de Lee?
É um procedimento de aparo publicado por David Lee em 2009 que cerca o efeito real em vez de estimá-lo por um número só. A ideia: identificar o excesso de usuários que só apareceram por causa do tratamento e aparar essa fração do topo e da base da distribuição do braço tratado, produzindo o melhor e o pior cenário compatíveis com os dados. Lee mostra que os limites são exatos, no sentido de serem os mais estreitos consistentes com o que foi observado.
Os limites de Lee dependem de alguma suposição?
De uma: monotonicidade da seleção, ou seja, ninguém que teria chegado ao fim sob controle deixa de chegar sob tratamento. É a mesma família de suposição usada em estudos de adesão parcial, mas aplicada à presença na amostra em vez do recebimento do tratamento. Fora isso, o procedimento não exige restrição de exclusão nem suporte limitado para o desfecho, e é essa economia de suposições que o torna útil na prática.
Existe uma saída mais simples que aparar a distribuição?
Sim, e ela deve ser a primeira tentativa: mudar a métrica para uma que exista para todos os sorteados. Em vez da média entre quem ativou, meça a proporção de todos os sorteados que ativaram e passaram de um limiar de valor. No exemplo deste guia, essa métrica incondicional foi de 26,2933 por cento no controle para 31,1500 por cento na variação, com valor-p abaixo de 0,000001 e intervalo de 4,1336 a 5,5797 pontos percentuais, sem nenhum problema de seleção.
Como detectar atrito diferencial antes de ler o resultado?
Testando a taxa de presença como se fosse uma métrica. Compare quantos usuários de cada braço chegaram ao ponto de medição e rode a mesma conta de duas proporções que você rodaria numa checagem de divisão desigual de tráfego. Se essa diferença é significante, qualquer média condicional daquele ponto para a frente está contaminada. Dmitriev e colegas chamam o fenômeno de desbalanceamento de amostra da métrica e registram que ele costuma invalidar a métrica inteira.