Estatística

Paradoxo de Simpson em Teste A/B: segmento x total

Por que todo segmento pode perder enquanto o total vence, o que causa o paradoxo de Simpson em teste A/B e como corrigir o experimento.

Ilustração de uma balança com os pratos inclinados para um lado e o braço inclinado para o outro, alimentada por dois funis de larguras diferentes, em tons de verde profundo

O paradoxo de Simpson é quando o seu teste A/B reporta um vencedor claro no total enquanto cada segmento dentro dele reporta o contrário. A aritmética não está quebrada: o agregado é uma média ponderada, e quando os dois braços carregam misturas diferentes de usuários, o total pode apontar para um lugar que nenhum segmento aponta. Este guia cobre um exemplo trabalhado com números reais, as causas que produzem isso em experimento online, a única checagem que pega o problema antes de enganar alguém, e como consertar um teste que já caiu nele. Faz parte do nosso guia completo de teste A/B e depende do diagnóstico de SRM, divisão desigual de tráfego.

Um exemplo trabalhado em que todo segmento perde e o total vence

Um teste na página de preços roda por duas semanas e termina com 30.000 visitantes em cada braço, uma divisão de topo perfeitamente equilibrada. O painel diz que a variação venceu com folga. Este é o teste inteiro, aberto por dispositivo.

Segmento Visitantes controle Conversões controle Taxa controle Visitantes variação Conversões variação Taxa variação Vencedor
Desktop 10.000 600 6,00% 20.000 1.160 5,80% Controle, por 3,33% relativos
Mobile 20.000 400 2,00% 10.000 190 1,90% Controle, por 5,00% relativos
Total 30.000 1.000 3,333% 30.000 1.350 4,500% Variação, por 35,0% relativos

Todo número dessa tabela está correto. Confira você mesmo:

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.

A comparação agregada dá z = 7,37 e valor-p de cerca de 0,0000000000002, ganho de +35,0%, intervalo de confiança de +0,86 a +1,48 ponto percentual. Se um resultado desses caísse no seu painel, você subiria sem hesitar.

Agora os segmentos. Desktop: 6,00% contra 5,80%, z = -0,69, valor-p 0,4871, controle na frente. Mobile: 2,00% contra 1,90%, z = -0,59, valor-p 0,5565, controle na frente de novo. Nenhum é significativo sozinho, mas os dois apontam para o mesmo lado, e essa direção é o oposto da do total.

Taxa de conversão por segmento e no total, controle contra variaçãoNo desktop o controle converte a 6,00% contra 5,80% da variação. No mobile o controle converte a 2,00% contra 1,90%. No total combinado o controle mostra 3,333% contra 4,500% da variação, invertendo a direção vista nos dois segmentos.O controle vence duas vezes e depois perde uma, com os mesmos dadosDesktopcontrole na frente6,00%5,80%Mobilecontrole na frente2,00%1,90%Totalvariação na frente por 35%3,33%4,50%a inversão não está no dado,está na ponderaçãoBarras escuras são o controle, barras claras a variação. As barras do total fazem a média dos dois segmentos, mas cada braço tem uma mistura diferente.
Nada foi contado errado. A variação simplesmente recebeu o dobro do segmento que converte três vezes melhor, e a média ponderada carregou essa vantagem para o total.

Por que o paradoxo de Simpson acontece: o total é média ponderada

Olhe a mistura de segmentos dentro de cada braço, e não as taxas de conversão.

Desktop converte três vezes melhor que mobile. A variação recebeu o dobro do segmento bom, e isso vale muito mais que a pequena penalidade que ela carrega dentro de cada segmento. Crook e colegas, na Microsoft, escrevendo sobre armadilhas de experimentação em 2009, colocam a álgebra de forma direta: é perfeitamente possível uma fração ser menor que outra, e uma segunda fração também ser menor que a sua correspondente, enquanto a soma dos numeradores sobre a soma dos denominadores inverte a comparação.

O exemplo deles é uma rampa de tráfego, e vale reproduzir porque é o caso que a maioria dos times vai encontrar de verdade. Um site com um milhão de visitantes por dia roda um experimento com divisão 99 para 1 na sexta-feira e sobe o tratamento para 50% no sábado. O tratamento converte melhor na sexta (2,30% contra 2,02%) e melhor no sábado (1,20% contra 1,00%), e mesmo assim combinar os dois dias faz o tratamento parecer pior: 1,20% contra 1,68%. A direção do paradoxo inverteu em relação ao nosso exemplo de dispositivo, mas o mecanismo é idêntico. O sábado foi um dia pior no geral, e ele compôs metade dos dados do tratamento e só um terço dos do controle.

Os dois braços carregam misturas diferentes dos mesmos segmentosO braço de controle é um terço desktop e dois terços mobile. O braço da variação é dois terços desktop e um terço mobile. Como desktop converte três vezes melhor que mobile, o total da variação herda uma vantagem que não tem nada a ver com a mudança testada.Mesmos segmentos, proporções opostas, e só uma das duas coisas está sendo testadaControledesktop 10.000mobile 20.000Variaçãodesktop 20.000mobile 10.000desktop converte a cerca de 6%mobile converte a cerca de 2%Checagem no total: 30.000 contra 30.000qui-quadrado 0,00, valor-p 1,00, passaChecagem dentro do desktop: 10.000 contra 20.000qui-quadrado 3.333, valor-p perto de 0, reprova feio
As duas caixas de baixo são o diagnóstico inteiro. Uma checagem de divisão no total do experimento passa perfeitamente aqui, e é exatamente por isso que ela precisa rodar dentro de cada segmento também.

A única checagem que pega: verificação de divisão por segmento

O paradoxo de Simpson precisa de alocação desigual para existir. Uma verificação de SRM mede alocação desigual diretamente, então rodá-la dentro de cada segmento é o diagnóstico.

No nosso exemplo os números são gritantes. O total do experimento é 30.000 contra 30.000, o que dá qui-quadrado de 0,00 e valor-p de 1,00: aprovação impecável no nível de topo. Dentro do desktop a divisão é 10.000 contra 20.000, o que dá qui-quadrado de 3.333,33 com um grau de liberdade e valor-p indistinguível de zero. O mobile é a imagem espelhada, qui-quadrado de 3.333,33 na outra direção. Um teste pode passar na checagem de divisão do topo e ainda assim ser feito de duas metades completamente desbalanceadas.

Dmitriev e colegas transformam isso em regra explícita, e acrescentam o caso que a maioria dos times não vê chegando: a definição do segmento não pode ser afetada pelo tratamento. Eles descrevem um experimento de ranqueamento no Bing em que tanto os usuários que viram um certo link extra quanto os que não viram mostraram aumento significativo em sessões por usuário, enquanto a população combinada não mostrou mudança nenhuma. O experimento não tinha movido sessões por usuário. Ele tinha movido quem caía em qual segmento, e os usuários menos ativos que saíram do primeiro grupo elevaram a média dele e também a média do grupo em que entraram. A recomendação é direta: teste SRM em cada grupo de segmento, e quando a proporção diferir de forma significativa, os resultados daquele grupo, e normalmente de todos os grupos daquele segmento, são inválidos e devem ser ignorados.

Há uma segunda disciplina na mesma seção. Fatiar a população recursivamente até algo alcançar significância é um erro separado que também convida o paradoxo, e a aritmética é ingrata: com grupos de segmento independentes lidos a um limiar de 5%, cerca de 1 em 20 vai parecer significativo só por acaso. Declare antes de subir quais segmentos você pretende reportar, ou aplique uma correção como Bonferroni ao analisá-los depois. A mecânica dessa correção está em teste A/B/n com várias variações.

Como consertar um teste que já caiu nisso

Crook e colegas listam três remédios, e são francos sobre qual deles de fato usam.

Remédio Como funciona Quando serve
Descartar os dados da rampa Analisar só o período em que a alocação ficou estável O preferido deles, porque a rampa costuma ser curta em relação ao teste inteiro
Parear dentro de períodos estáveis Comparar controle e tratamento dentro de cada janela em que as proporções não mudaram, e depois combinar Quando a alocação mudou mais de uma vez e os trechos estáveis são longos o bastante
Combinação ponderada Repesar cada segmento pela sua fatia real de tráfego antes de fazer a média Quando o desequilíbrio é entre segmentos, e não ao longo do tempo

O terceiro aplicado ao nosso exemplo é instrutivo. Desktop e mobile respondem por 30.000 dos 60.000 visitantes cada, então ponderá-los igualmente dá uma estimativa corrigida de 4,000% para o controle (metade de 6,00 mais metade de 2,00) e 3,850% para a variação (metade de 5,80 mais metade de 1,90). O aparente ganho de +35,0% vira uma perda de 3,75%, que é a direção para a qual os dois segmentos apontavam desde o começo.

O jeito mais limpo de ver o que o teste teria dito é rodá-lo de novo com a mistura equilibrada. Dê a cada braço 15.000 visitantes de desktop e 15.000 de mobile, exatamente com as mesmas taxas por segmento, e o controle termina com 1.200 conversões em 30.000 visitantes (4,000%) contra 1.155 da variação (3,850%). Essa comparação dá z = -0,95, valor-p 0,3441, intervalo de confiança de -0,46 a +0,16 ponto percentual. Não é vencedora de 35%. Também não é perdedora provada. Inconclusivo, levemente negativo, que é uma frase muito diferente da que estava no painel original.

O mesmo experimento lido de três formasLido de forma ingênua o teste mostra ganho de 35% com valor-p perto de zero. Ponderado pela fatia real de tráfego de cada segmento ele mostra perda de 3,75%. Rodado de novo com mistura equilibrada mostra perda de 3,75% com valor-p 0,3441 e intervalo de confiança cruzando o zero, ou seja inconclusivo.Um conjunto de dados, três leituras, três decisões diferentesAgregado ingênuo+35,0%valor-p perto de zero3,333% contra 4,500%subiriaPonderado por tráfego-3,75%4,000% contra 3,850%direção agora batecom os dois segmentosRefeito equilibrado-3,75%valor-p 0,3441intervalo -0,46 a +0,16 ppinconclusivoA caixa da direita é a única resposta honesta, e a distância entre ela e a da esquerda é o custo de pular uma checagem.Repare que a leitura correta não é “a variação perdeu”. É “este teste nunca teve equilíbrio para dizer”, o que é motivo para rodar de novo.
Repesar recupera a direção, mas não recupera a confiança. Um teste contaminado nesse nível é melhor refeito com alocação travada do que remendado na análise.

De onde vem o desequilíbrio por trás do paradoxo de Simpson

Causa Como aparece Prevenção
Rampa dentro da janela de análise A alocação começa em 5% ou 10% e é aumentada no meio do teste, e tudo é analisado junto Descartar o período de rampa, ou travar a alocação antes de abrir a janela de medição
Alocação diferente por região ou plataforma Um país ou versão do app roda uma divisão diferente porque um time local dimensionou por conta Analisar por região e nunca juntar braços com divisões diferentes
Segmento limitado Clientes de alto valor deliberadamente restritos a uma fatia pequena do tratamento Reportar esse segmento em separado e nunca dobrá-lo dentro do número de manchete
Amostragem não uniforme Alguns navegadores ou classes de dispositivo amostrados a taxa maior por questão de cobertura Repesar pela fatia real da população antes de combinar
Segmento que o próprio tratamento move Pertencer ao segmento depende de algo que a mudança torna mais ou menos provável Rodar a checagem de divisão por segmento; reprovar significa que todo grupo daquele segmento é ilegível
Falha de redirect ou de carregamento num braço Uma variação perde em silêncio uma fatia de um segmento porque é mais lenta ou quebra em algum ponto Isso é divisão desigual de tráfego (SRM) puro, e a correção é causa raiz mais reteste

Repare que só a última linha é um defeito. As outras são escolhas operacionais comuns e sensatas, que só ficam perigosas no momento em que alguém junta os braços num único número sem checar se juntar era legítimo.

Erros comuns com segmento e total

Erro O que produz
Ler só o total Um artefato de média ponderada sobe como vitória de 35%
Ler só os segmentos O artefato oposto, mais um problema de comparações múltiplas que ninguém corrigiu
Rodar a checagem de divisão só no topo A checagem que pegaria o problema passa perfeitamente, como no exemplo acima
Fatiar até algo dar significativo Cerca de 1 em 20 fatias independentes parece significativa por acaso, e o paradoxo fica mais provável quanto mais fundo se vai
Segmentar por algo que o tratamento muda Todo grupo daquele segmento fica ilegível, por mais limpos que os números pareçam
Chamar de efeito heterogêneo Leva a subir a mudança para uma classe de dispositivo quando o problema real era um bug de alocação
Repesar e declarar vitória Recupera a direção, mas não a precisão; teste muito contaminado deve ser refeito

Se os segmentos de fato discordam entre si num teste cuja alocação estava limpa dentro de cada um, aí é outra situação, bem mais interessante: um efeito heterogêneo de verdade, que nosso guia de erros comuns em teste A/B trata ao lado das ameaças de validade com que ele costuma ser confundido.

Faça isso automático na Donnu

O paradoxo de Simpson sobrevive num painel que mostra um número agregado e esconde a divisão por trás dele. A Donnu A/B roda a verificação de proporção dentro de cada segmento reportado, além do total do experimento, sinaliza segmento cuja alocação não bate com a divisão configurada antes de mostrar os números de conversão dele, e mantém a mistura de segmentos de cada braço visível ao lado do resultado de manchete. Quando o total e os segmentos apontam em direções opostas, essa contradição aparece como aviso, em vez de ficar esperando alguém reparar durante uma reunião.

Comece um teste grátis de 14 dias e cheque a divisão dentro dos seus próprios segmentos antes de ler qualquer taxa de conversão.

Referências

Leia também: SRM: divisão desigual de tráfego · Significância estatística em teste A/B · Teste A/B/n com várias variações · Erros comuns em teste A/B · Verificador de SRM grátis · Read in English

Perguntas frequentes

O que é o paradoxo de Simpson em teste A/B?
O paradoxo de Simpson é quando o resultado agregado do teste aponta para um lado enquanto cada segmento individual aponta para o outro. Não é erro de conta: é matematicamente possível uma variação perder no desktop, perder no mobile e ainda assim vencer no total, porque o agregado é uma média ponderada e os dois braços podem carregar pesos diferentes. Em experimento online a causa usual é que a divisão de tráfego não foi idêntica dentro de cada segmento, o que acontece em rampa de tráfego, em alocação por país ou quando um segmento foi limitado de propósito.
Como uma variação vence no total e perde em todos os segmentos?
Porque os braços não foram feitos da mesma mistura de usuários. Pegue um teste em que o controle recebeu 10.000 visitantes de desktop e 20.000 de mobile enquanto a variação recebeu 20.000 de desktop e 10.000 de mobile. Desktop converte a 6% e mobile a 2%, e a variação é um pouco pior nos dois. Os totais ainda saem 3,333% para o controle e 4,500% para a variação, um ganho aparente de 35%, porque a variação foi alimentada com mais do segmento que converte melhor. Nada na mudança testada causou essa distância.
Como detectar o paradoxo de Simpson antes de ser enganado por ele?
Rode uma verificação de SRM dentro de cada segmento que você pretende reportar, não só no total do experimento. É essa checagem que pega o problema, porque o paradoxo precisa de alocação desigual para existir e o teste de SRM mede exatamente isso. No exemplo acima, a divisão geral é um 30.000 contra 30.000 perfeito, com qui-quadrado 0 e valor-p 1, então a checagem de topo passa limpa, enquanto a divisão dentro do desktop, de 10.000 contra 20.000, dá qui-quadrado 3.333 e valor-p indistinguível de zero.
O que causa o paradoxo de Simpson em experimentos online?
Crook e colegas (KDD 2009) listam a rampa de tráfego como causa mais comum: um experimento que roda a 1% de alocação num dia e 50% no dia seguinte, e depois é analisado juntando os dois dias, mistura duas ponderações diferentes. Os outros exemplos deles são amostragem não uniforme por navegador, alocações diferentes por país e um segmento de clientes valiosos limitado de propósito a uma fatia pequena. Dmitriev e colegas (KDD 2017) acrescentam um caso mais sutil: um segmento cuja própria composição é alterada pelo tratamento, como ter visto ou não uma funcionalidade que o tratamento mostra menos.
Posso simplesmente reportar os segmentos em vez do total?
Só se a definição do segmento não tiver sido afetada pelo tratamento e você tiver resolvido o problema de comparações múltiplas. Segmento é a unidade certa quando a alocação diferiu por segmento, mas fatiar recursivamente até algo dar significativo é uma falha separada e muito comum: com grupos de segmento independentes a um limiar de 5%, cerca de 1 em 20 vai parecer significativo só por acaso. Declare antes de subir quais segmentos você vai reportar, ou aplique uma correção como Bonferroni ao analisá-los depois.
Qual é a correção depois que o paradoxo de Simpson já aconteceu?
A correção mais simples, e a que o time de experimentação da Microsoft diz usar, é descartar os dados do período de rampa, que normalmente é curto em relação ao teste inteiro. As alternativas que eles listam são parear controle e tratamento dentro de janelas em que as proporções ficaram estáveis, e usar combinações ponderadas que repesam cada segmento pela fatia real de tráfego. No exemplo trabalhado, ponderar os dois segmentos igualmente transforma um ganho aparente de 35% numa perda de 3,75%.
Paradoxo de Simpson é a mesma coisa que efeito heterogêneo?
Não, e confundir os dois leva à ação errada. Efeito heterogêneo é real: a mudança de fato ajuda o usuário de mobile e prejudica o de desktop, e a resposta certa é decidir para quem subir. O paradoxo de Simpson é artefato de ponderação desigual, e a resposta certa é corrigir a alocação e reler o teste. A pergunta que separa os dois é se a proporção da divisão foi a mesma dentro de cada segmento, e é por isso que a checagem de SRM por segmento vem antes de qualquer interpretação.