Modelo Hierárquico em Teste A/B: agrupamento parcial
Modelo hierárquico estima a variação entre segmentos em vez de supor. A conta em 8 segmentos, o tau mal identificado e a reversão de ranking.

📚 Este artigo faz parte do guia Significância Estatística em Teste A/B: O Guia.
Você rodou um teste, ele deu positivo no agregado, e agora tem oito leituras de segmento na tela. Uma delas mostra mais 21 por cento. A pergunta não é se você acredita nela, é quanto. O modelo hierárquico responde isso com um número: ele estima quanta variação REAL existe entre segmentos e usa esse valor para decidir o peso de cada leitura individual. No exemplo trabalhado deste guia, o desvio entre segmentos sai em 0,2420 ponto percentual, o campeão bruto de mais 1,219 ponto cai para mais 0,392, e o pódio troca de dono: quem assume a liderança é um segmento com leitura bruta menor e amostra 6,8 vezes maior. Este guia mostra o modelo linha por linha, por que estimar o desvio entre segmentos é a parte difícil (o intervalo dele vai de 0,0000 a 0,6000 ponto com 8 segmentos), onde a versão simplificada por momentos mente sobre a própria precisão, e a simulação que diz quando agrupar parcialmente ganha de agrupar tudo. Faz parte do nosso guia completo de teste A/B e é o passo seguinte ao encolhimento bayesiano.
O teste que você já rodou
O exemplo é um teste único de reordenação da página de produto, com leitura por dispositivo e canal. Primeiro o agregado, que é a leitura que vai para o relatório:
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.
Com 60.000 visitantes e 2.873 conversões no controle e 59.920 visitantes e 3.038 conversões na variação, a calculadora devolve 4,7883 por cento contra 5,0701 por cento, um ganho relativo de 5,884 por cento, valor-p de 0,024218 e intervalo de confiança de mais 0,0367 a mais 0,5268 ponto percentual. Passa em 0,05, com folga pequena.
Agora a tabela por segmento, que é onde o relatório vira discussão:
| segmento | visitantes por variação | base | variação | diferença | relativo | valor-p |
|---|---|---|---|---|---|---|
| Desktop / busca orgânica | 14.200 | 5,500% | 6,100% | +0,600 pp | +10,91% | 0,030565 |
| Desktop / busca paga | 9.600 | 4,896% | 5,449% | +0,553 pp | +11,30% | 0,083781 |
| Desktop / e-mail | 4.300 | 6,907% | 7,710% | +0,803 pp | +11,63% | 0,152864 |
| Desktop / direto | 6.100 | 5,000% | 5,148% | +0,148 pp | +2,96% | 0,709749 |
| Mobile / busca orgânica | 13.800 | 4,000% | 3,897% | −0,103 pp | −2,58% | 0,660388 |
| Mobile / busca paga | 8.200 | 3,402% | 3,105% | −0,297 pp | −8,74% | 0,283598 |
| Mobile / e-mail | 2.100 | 5,762% | 6,981% | +1,219 pp | +21,16% | 0,105013 |
| Mobile / direto | 1.700 | 4,000% | 4,012% | +0,012 pp | +0,29% | 0,986167 |
A leitura ingênua dessa tabela produz três conclusões, e as três estão erradas: que o teste funciona muito bem no e-mail mobile, que ele prejudica a busca paga mobile, e que desktop e mobile reagem de formas opostas. Nada disso está estabelecido pelos dados.
Três formas de responder, e só uma é razoável
Diante de oito segmentos, existem três posturas possíveis:
Não agrupar nada é acreditar que 2.100 visitantes medem o efeito no e-mail mobile tão bem quanto 14.200 medem na busca orgânica desktop. Agrupar tudo é assumir que o efeito é idêntico nos oito, o que apaga por decreto qualquer diferença real. A terceira via não é um meio-termo arbitrário: o quanto agrupar é um parâmetro que se estima.
O modelo hierárquico, em três linhas
O modelo hierárquico normal-normal, escrito para segmentos de teste A/B, cabe em três afirmações:
- Cada segmento tem um efeito verdadeiro próprio, chame de
delta_j. - Esses efeitos verdadeiros vêm de uma distribuição comum, com média
mue desviotau. - A leitura observada
d_jé o efeito verdadeiro mais erro de medição, com desviose_j(o erro padrão da diferença naquele segmento, que você já tem).
Em notação: d_j ~ Normal(delta_j, se_j) e delta_j ~ Normal(mu, tau). Só existem dois números novos no mundo, mu e tau, e os dois saem dos dados.
mu é o efeito médio entre segmentos. tau é o número que decide tudo: se tau é zero, os efeitos verdadeiros são idênticos e o modelo colapsa em agrupamento total; se tau é gigante, cada segmento vira independente e o modelo colapsa em não agrupar nada. É por isso que a briga é sobre tau.
Estimar tau de verdade, não por fórmula fechada
Existem dois caminhos comuns para tau, e eles não são equivalentes.
O caminho por momentos (o estimador de DerSimonian e Laird, usado em meta-análise e na nossa peça sobre encolhimento bayesiano) usa a estatística de heterogeneidade Q. Nos dados acima, Q vale 11,2708 com 7 graus de liberdade, e a fórmula devolve tau igual a 0,2780 ponto percentual.
O caminho por verossimilhança maximiza a probabilidade dos dados sob o modelo, variando tau e recalculando mu a cada passo. Aqui ele devolve tau igual a 0,2420 ponto percentual e mu igual a 0,2355 ponto (erro padrão de 0,1569).
Os dois valores estão próximos, e isso é o resultado tranquilizador. O resultado inquietante é o que aparece quando se olha a curva inteira em vez do ponto de máximo:
Esse é o fato central sobre modelos hierárquicos em teste A/B: tau é mal identificado porque o número de segmentos é pequeno. Você tem 119.920 visitantes no teste, o que é bastante, mas só 8 observações para estimar a variação ENTRE segmentos, o que é pouquíssimo. Andrew Gelman trata exatamente desse caso em Bayesian Analysis (2006) e recomenda prior uniforme no desvio hierárquico, com a família meio-t “quando o número de grupos é pequeno”.
O fator de encolhimento, segmento por segmento
Com tau estimado, o peso de cada leitura sai de uma conta só: o fator de encolhimento B_j = tau² / (tau² + se_j²). Ele é a fração da própria leitura que sobrevive.
| segmento | erro padrão | fator B | leitura bruta | depois do encolhimento |
|---|---|---|---|---|
| Mobile / busca orgânica | 0,235 pp | 0,516 | −0,103 pp | +0,061 pp |
| Desktop / busca paga | 0,320 pp | 0,364 | +0,553 pp | +0,351 pp |
| Mobile / busca paga | 0,277 pp | 0,433 | −0,297 pp | +0,005 pp |
| Desktop / busca orgânica | 0,277 pp | 0,432 | +0,600 pp | +0,393 pp |
| Desktop / direto | 0,398 pp | 0,270 | +0,148 pp | +0,212 pp |
| Desktop / e-mail | 0,562 pp | 0,156 | +0,803 pp | +0,324 pp |
| Mobile / direto | 0,671 pp | 0,115 | +0,012 pp | +0,210 pp |
| Mobile / e-mail | 0,752 pp | 0,094 | +1,219 pp | +0,328 pp |
Leia a última linha com atenção. O segmento com a leitura mais espetacular do teste tem fator de encolhimento de 0,094: 9,4 por cento da leitura dele é levada a sério, e os outros 90,6 por cento vêm do efeito médio do teste. Não é arbitrariedade, é a consequência de ter 2.100 visitantes por variação num segmento cujo erro padrão (0,752 pp) é três vezes maior que o desvio real entre segmentos (0,242 pp). O sinal simplesmente não está lá.
Observe também Mobile / busca paga: a leitura bruta é negativa (−0,297 pp, que qualquer um leria como “o teste piora a busca paga mobile”) e o resultado depois do encolhimento é mais 0,005 ponto, ou seja, nada. A conclusão de dano ao segmento nunca existiu.
Onde a versão simplificada mente
Até aqui a conta é a mesma que um encolhimento por momentos faria. A diferença do modelo hierárquico completo aparece no PASSO SEGUINTE: em vez de fixar tau em 0,2420 e tratá-lo como conhecido, ele integra a incerteza sobre tau (aquela curva larga acima) no resultado final de cada segmento. Rodando isso com prior meio-normal de escala 0,5 ponto percentual sobre tau, como Gelman recomenda para poucos grupos:
| segmento | plug-in (tau fixo) | erro do plug-in | modelo completo | erro do modelo | P(efeito positivo) |
|---|---|---|---|---|---|
| Desktop / busca orgânica | +0,393 pp | 0,182 pp | +0,406 pp | 0,236 pp | 95,7% |
| Desktop / busca paga | +0,351 pp | 0,193 pp | +0,368 pp | 0,247 pp | 93,2% |
| Desktop / e-mail | +0,324 pp | 0,222 pp | +0,369 pp | 0,322 pp | 87,4% |
| Desktop / direto | +0,212 pp | 0,207 pp | +0,205 pp | 0,257 pp | 78,8% |
| Mobile / busca orgânica | +0,061 pp | 0,168 pp | +0,051 pp | 0,202 pp | 59,9% |
| Mobile / busca paga | +0,005 pp | 0,182 pp | −0,020 pp | 0,242 pp | 46,7% |
| Mobile / e-mail | +0,328 pp | 0,230 pp | +0,392 pp | 0,362 pp | 86,1% |
| Mobile / direto | +0,210 pp | 0,228 pp | +0,199 pp | 0,318 pp | 73,4% |
As médias quase não se movem, e é por isso que o plug-in é popular. Os erros padrão se movem muito. No segmento de e-mail mobile, o erro do modelo completo (0,362) é 57,4 por cento maior que o do plug-in (0,230). No de busca orgânica desktop, 29,7 por cento maior. O plug-in não erra a estimativa, ele erra a confiança na estimativa, sempre para o lado otimista, porque finge saber tau quando o intervalo de tau cobre de zero a 0,60.
Repare ainda na última coluna da tabela: um único segmento dos oito passa de 95 por cento de probabilidade de efeito positivo. A tabela bruta tinha três segmentos com valor-p abaixo de 0,16 e um abaixo de 0,05. Depois do modelo, existe uma leitura defensável e sete indefinidas.
A reversão de ranking
Aqui está o resultado que muda decisão. Ordenando os oito segmentos pela leitura bruta e depois pelo modelo completo:
Desktop / busca orgânica tinha leitura bruta MENOR que dois outros segmentos e assume a liderança porque tem 14.200 visitantes por variação contra 2.100 e 4.300. É a mesma lógica de Gelman, Hill e Yajima em “Why we (usually) don’t have to worry about multiple comparisons”: em vez de manter os centros dos intervalos parados e alargá-los para corrigir comparações múltiplas, o modelo multinível desloca os centros uns na direção dos outros.
Exemplo trabalhado: o campeão sozinho na calculadora
Vale pegar o segmento campeão e olhar ele de perto, com a mesma calculadora da abertura. Os números dele: 2.100 visitantes e 121 conversões no controle, 2.120 visitantes e 148 conversões na variação.
Isso devolve 5,762 por cento contra 6,981 por cento, ganho relativo de 21,16 por cento, valor-p de 0,105013 e intervalo de confiança de menos 0,254 a mais 2,692 ponto percentual. O intervalo dele tem 2,95 pontos percentuais de largura, o que é dez vezes a largura do intervalo do agregado (0,49 ponto). Esse é o campeão: um número enorme dentro de um intervalo que vai de “piora um pouco” a “melhora quatro vezes mais que o agregado”.
Não é preciso nenhum modelo hierárquico para desconfiar dele. Basta ler o intervalo. O que o modelo acrescenta é o SUBSTITUTO: em vez de “não sabemos”, ele entrega mais 0,392 ponto percentual com erro de 0,362, que é uma estimativa utilizável.
Quanto tráfego um segmento precisaria
A pergunta natural do time é quanto faltaria para ler esses segmentos de verdade. A calculadora de amostra responde:
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 base de 4 por cento e um efeito real de mais 0,30 ponto percentual (que é a ordem de grandeza do que o modelo estima), o requisito é 69.379 visitantes por variação, a 95 por cento de confiança e 80 por cento de poder. A 30.000 visitantes por semana no site inteiro, e com o segmento sendo uma fração disso, esse número não chega: 33 dias apenas para o segmento, se ele fosse o site todo.
O outro lado da mesma conta, e o mais útil de colar no relatório:
| segmento | amostra por variação | efeito mínimo detectável |
|---|---|---|
| Desktop / busca orgânica | 14.200 | +13,78% relativo |
| Mobile / e-mail | 2.100 | +34,97% relativo |
| agregado do teste | 60.000 | +7,21% relativo |
O segmento de e-mail mobile só consegue detectar efeitos acima de mais 34,97 por cento relativo. Ele leu mais 21,16 por cento. Um segmento que não tem poder para detectar o efeito que reportou está reportando ruído, e a leitura dele só existe porque alguém foi olhar. É o mesmo mecanismo da maldição do vencedor e do erro de magnitude que Gelman e Carlin chamam de razão de exagero.
Quanto o agrupamento parcial ganha, de fato
Falta a pergunta honesta: o agrupamento parcial é sempre melhor? Rodamos uma simulação para este guia, com 20.000 repetições, usando exatamente os oito erros padrão da tabela acima, efeito médio verdadeiro de 0,25 ponto percentual e variando o desvio real entre segmentos. A métrica é a raiz do erro quadrático médio contra os efeitos verdadeiros, em pontos percentuais (menor é melhor):
| desvio real entre segmentos | sem agrupamento | agrupamento total | agrupamento parcial |
|---|---|---|---|
| 0,00 pp | 0,4734 | 0,1206 | 0,1402 |
| 0,10 pp | 0,4739 | 0,1556 | 0,1698 |
| 0,25 pp | 0,4746 | 0,2705 | 0,2554 |
| 0,60 pp | 0,4748 | 0,5899 | 0,3843 |
| 1,20 pp | 0,4724 | 1,1654 | 0,4461 |
Três leituras saem daí:
- Não agrupar nada é ruim em todos os cenários, com erro parado em torno de 0,47 sempre. Nenhuma condição de heterogeneidade justifica ler segmento cru.
- Agrupar tudo é ótimo quando não há heterogeneidade e catastrófico quando há. Em
tauigual a 1,20, ele erra 2,6 vezes mais que o agrupamento parcial. - O agrupamento parcial nunca é o pior dos três, e a penalidade dele no melhor cenário do agrupamento total é pequena (0,1402 contra 0,1206). É uma apólice de seguro barata contra um cenário que você não observa diretamente.
Essa última linha é o argumento prático do método: você não sabe qual é o tau verdadeiro (o intervalo dele cobre de 0 a 0,60 nos seus próprios dados), então escolher o estimador que se comporta bem em toda a faixa é a decisão defensável.
Como rodar um modelo hierárquico na prática
- Defina os segmentos ANTES do teste, no plano de análise pré-registrado. Segmento escolhido depois de ver o resultado não é salvo por nenhum modelo.
- Exporte diferença e erro padrão por segmento, não só a taxa. O modelo precisa dos dois.
- Estime
taupor verossimilhança, não por olho. E olhe a curva inteira, não só o máximo. - Reporte o intervalo de
taujunto. Se ele cobre zero, diga isso no relatório: significa que o teste não estabeleceu heterogeneidade nenhuma. - Integre a incerteza de
tauem vez de fixá-la, ou aceite que seus intervalos por segmento são de 30 a 57 por cento mais estreitos do que deveriam. - Use prior meio-normal ou meio-t na escala de
tauquando houver poucos segmentos, e declare a escala escolhida. Com 8 grupos, essa escolha aparece no resultado. - Decida pelo ranking do modelo, nunca pelo ranking bruto. Foi só no topo que a ordem mudou, e o topo é o que vai virar investimento.
Erros comuns
- Confundir “
tauestimado em zero” com “não há heterogeneidade”. Nos dados deste guia, o máximo é 0,2420, mas zero está dentro do intervalo. Estimativa de fronteira é informação fraca, não prova de homogeneidade. - Cortar segmentos até um deles ficar significante. Isso é um problema de comparações múltiplas resolvido do jeito errado; veja muitas métricas num teste.
- Achar que encolhimento é conservadorismo. Ele move estimativas para cima também: Mobile / direto foi de +0,012 para +0,210 ponto percentual.
- Usar o modelo para justificar personalização por segmento. Estimar efeito por segmento é diferente de montar uma política de tratamento; para isso, veja modelagem de uplift.
- Aplicar o modelo em segmentos que se sobrepõem. Se um visitante aparece em dois segmentos, os erros deixam de ser independentes e a conta de
taufica torta. - Ler o fator de encolhimento como nota de qualidade do segmento. Ele mede precisão relativa, não importância do canal.
- Trocar heterogeneidade real por paradoxo de Simpson. Quando a composição dos grupos difere, o problema é de mistura, não de efeito por segmento, e o modelo hierárquico não conserta isso.
Faça isso automático na Donnu
Esse cálculo esbarra sempre no mesmo lugar: para estimar tau é preciso ter a diferença E o erro padrão de cada segmento declarado antes do teste, guardados juntos. Painel que exporta só taxa de conversão por segmento não permite montar o modelo, e reconstruir isso depois, na mão, é onde o time desiste.
A Donnu registra a configuração do experimento no momento em que ele é criado, incluindo os segmentos declarados e a métrica primária, e mantém o histórico por experimento. Isso deixa a leitura por segmento disponível com a amostra e a variância de cada um, que é exatamente o insumo do agrupamento parcial.
E fica a recomendação mais prática deste guia: antes de aprovar qualquer decisão baseada num segmento, calcule o efeito mínimo detectável daquele segmento com a amostra que ele teve. Se o efeito reportado é menor que o mínimo detectável, a leitura é ruído e nenhum modelo vai salvá-la. A calculadora de tamanho de amostra resolve isso em dez segundos.
Referências
- Gelman, A. Prior distributions for variance parameters in hierarchical models. Bayesian Analysis, volume 1, número 3, 2006, páginas 515 a 533. Fonte da recomendação de usar prior uniforme no desvio padrão hierárquico, com a família meio-t “quando o número de grupos é pequeno e em outros contextos em que se deseja um prior fracamente informativo”; da demonstração de que o modelo uniforme(0, A) gera posterior próprio no limite desde que o número de grupos J seja no mínimo 3, enquanto o modelo gama-inversa(epsilon, epsilon) não tem limite próprio algum; e da apresentação da meio-Cauchy como caso particular da família meio-t com um grau de liberdade. sites.stat.columbia.edu.
- Gelman, A., Hill, J. e Yajima, M. Why we (usually) don’t have to worry about multiple comparisons. 2009. Fonte da tese de que o problema de comparações múltiplas pode desaparecer quando visto de uma perspectiva bayesiana hierárquica, e do contraste central usado neste guia: modelos multinível fazem agrupamento parcial, deslocando as estimativas umas na direção das outras, enquanto os procedimentos clássicos mantêm os centros dos intervalos parados e ajustam alargando os intervalos; e do registro de que o ganho de eficiência é maior justamente em contextos de baixa variação entre grupos, que é onde as comparações múltiplas mais preocupam. arxiv.org.
- Gelman, A. e Carlin, J. Beyond Power Calculations: Assessing Type S (Sign) and Type M (Magnitude) Errors. Perspectives on Psychological Science, volume 9, número 6, 2014, páginas 641 a 651. Fonte do enquadramento usado aqui para segmentos pequenos: em contextos de amostra pequena e medição ruidosa, resultados estatisticamente significantes são frequentemente enganosos, e o diagnóstico recomendado é estimar a probabilidade de a estimativa estar na direção errada (erro de sinal) e o fator pelo qual a magnitude do efeito pode estar superestimada (erro de magnitude, ou razão de exagero). sites.stat.columbia.edu.
Leia também: Encolhimento bayesiano · Efeito heterogêneo por segmento · Maldição do vencedor · Meta-análise de testes A/B · Muitas métricas num teste · Calculadora de significância · Read in English
Perguntas frequentes
- O que é um modelo hierárquico num teste A/B?
- É um modelo que trata os efeitos dos segmentos como vindos de uma mesma distribuição, com um efeito médio e um desvio entre segmentos. Em vez de supor que todos os segmentos têm o mesmo efeito, ou que cada um tem o seu próprio efeito independente, ele estima quanta variação real existe entre eles a partir dos próprios dados e usa esse número para decidir o quanto confiar na leitura de cada segmento.
- Qual a diferença entre modelo hierárquico e encolhimento por momentos?
- O encolhimento por momentos estima o desvio entre segmentos por uma fórmula fechada e depois trata esse valor como se fosse conhecido. O modelo hierárquico completo estima o mesmo desvio por verossimilhança e depois integra a incerteza que sobra sobre ele. No exemplo deste guia, os dois caminhos dão desvios parecidos, 0,2420 ponto percentual contra 0,2780, mas o intervalo do plug-in fica de 23 a 57 por cento mais estreito do que o do modelo completo, ou seja, o plug-in parece mais preciso do que é.
- Por que o desvio entre segmentos costuma ser mal estimado?
- Porque o número de segmentos é pequeno. No exemplo deste guia, com 8 segmentos, a estimativa de máxima verossimilhança do desvio é 0,2420 ponto percentual, mas o intervalo de 95 por cento por verossimilhança perfilada vai de 0,0000 a 0,6000 ponto. Ou seja, os dados não descartam nem heterogeneidade nenhuma nem heterogeneidade grande. Andrew Gelman mostra que, com poucos grupos, a escolha do prior para esse desvio deixa de ser inócua.
- O modelo hierárquico pode mudar qual segmento é o melhor?
- Pode, e mudou no exemplo deste guia. O segmento com a maior leitura bruta é Mobile e-mail, com mais 1,219 ponto percentual e mais 21,16 por cento relativo. Depois do modelo completo, ele cai para mais 0,392 ponto e perde a liderança para Desktop busca orgânica, que tinha leitura bruta menor e amostra 6,8 vezes maior. A troca de ranking acontece porque o modelo desconta cada leitura pela precisão dela.
- Quantos visitantes um segmento precisa para ser lido sozinho?
- Muito mais do que a intuição sugere. No exemplo deste guia, o segmento Mobile e-mail tem 2.100 visitantes por variação e uma base de 5,762 por cento, o que dá um efeito mínimo detectável de mais 34,97 por cento relativo. Para ler com poder de 80 por cento um efeito de mais 0,30 ponto percentual sobre uma base de 4 por cento, seriam necessários 69.379 visitantes por variação, ou 33 dias a 30.000 visitantes por semana.
- Agrupamento parcial é sempre melhor que agrupamento total?
- Não em todos os cenários, e vale dizer isso com honestidade. Numa simulação de 20.000 repetições feita para este guia, com desvio real entre segmentos de zero, o agrupamento total ganha, com erro quadrático médio de 0,1206 contra 0,1402 ponto percentual do parcial. Com desvio real de 0,60 ponto, a ordem se inverte de forma brutal: 0,5899 do total contra 0,3843 do parcial. O agrupamento parcial nunca é o pior dos três em nenhum cenário testado, e é isso que o recomenda.