Estatística

Dados Faltantes em Teste A/B: MCAR, MAR e imputação

A linha que não chegou muda o resultado. Como classificar dados faltantes, por que casos completos exageram o efeito e o que a imputação conserta.

Ilustração plana de uma grade de blocos arredondados com alguns espaços vazios e uma lupa sobre uma das lacunas

A linha que não chegou ao banco não é neutra. No exemplo deste guia, uma variação que perdia mais rastreio em aparelhos antigos fez a leitura por casos completos devolver mais 14,71 por cento quando o efeito real era mais 10,48 por cento, um exagero de 40 por cento; imputar pela média do braço manteve o mesmo erro e ainda estreitou o intervalo; e padronizar pelo tipo de aparelho recuperou exatamente mais 0,6500 ponto e mais 10,48 por cento. Dados faltantes não são um detalhe de limpeza, são uma decisão estatística com viés previsível. Este guia mostra a classificação que organiza o problema, a conta que separa o que dá para consertar do que não dá, e como cercar o que sobra. Faz parte do nosso guia completo de teste A/B e complementa perda de rastreamento por consentimento, que trata das causas técnicas da perda.

Dados faltantes: a perda quase nunca é simétrica

Todo teste A/B perde dado. As causas são conhecidas: bloqueador de anúncio, recusa de consentimento, aba fechada antes do disparo do evento, aparelho lento, script que falha em navegador antigo, usuário que troca de dispositivo no meio.

O problema não é a perda. É a perda diferente entre os braços. E ela costuma ser diferente por um motivo estrutural: a variação nova quase sempre muda alguma coisa no peso da página, na ordem dos eventos ou no momento do disparo. Basta a variação carregar um componente a mais para o aparelho velho falhar um pouco mais, e pronto: o braço B passa a ser medido numa amostra mais nova, mais rápida e que converte melhor.

Repare no que isso faz com a comparação. Os dois braços continuam iguais em quem foi sorteado. Eles deixam de ser iguais em quem foi medido. A aleatorização protege o primeiro conjunto e não protege o segundo, e é o segundo que entra na conta.

As três perguntas de Rubin

A classificação que organiza o assunto é de Donald Rubin, de 1976, e van Buuren a formula em três frases diretas. Se a probabilidade de faltar é a mesma para todos os casos, o dado é faltante completamente ao acaso. Se ela é a mesma apenas dentro de grupos definidos pelo dado observado, o dado é faltante ao acaso. Se nenhuma das duas vale, o dado é faltante não ao acaso.

mecanismo a perda depende de exemplo típico num teste tem conserto?
completamente ao acaso nada queda momentânea de um servidor de coleta que atinge os dois braços igual sim, casos completos já bastam
ao acaso variáveis que você mediu aparelho antigo perde mais evento, e você tem o tipo de aparelho sim, se a variável foi medida antes do tratamento
não ao acaso o próprio valor que faltou quem abandona sem comprar fecha a aba antes do evento disparar não com dado, só com premissa declarada
Três mecanismos de perda de dadoTrês blocos lado a lado. No primeiro, a perda cai uniformemente sobre a amostra. No segundo, a perda se concentra numa faixa marcada como variável medida. No terceiro, a perda se concentra nas próprias linhas que não converteram, que é a informação ausente.completamente ao acasoos buracos caem em qualquer lugar.a amostra medida continuarepresentativa do sorteio.ao acasofaixa medidaos buracos se concentram numavariável que você tem. Dá paracorrigir condicionando nela.não ao acasoos buracos são exatamente aslinhas que não converteram.a informação que corrigiriaé a que está faltando.círculo cheio: dado medido. Círculo claro: dado perdido.
A diferença prática entre o segundo e o terceiro bloco é se a variável que explica a perda está no seu banco. Se estiver, o problema é de análise. Se não, é de premissa.

Duas consequências que valem mais que a definição:

Exemplo trabalhado: a variação que perdeu mais rastreio no aparelho antigo

Um teste com 20.000 usuários por braço, base dividida em 80 por cento aparelho moderno e 20 por cento aparelho antigo, por sorteio, igual nos dois braços. A variação B carrega um componente a mais que falha com mais frequência no aparelho antigo.

Estes são os dados completos, que na vida real ninguém enxerga:

braço aparelho usuários conversões taxa
A moderno 16.000 1.120 7,000%
A antigo 4.000 120 3,000%
A total 20.000 1.240 6,200%
B moderno 16.000 1.240 7,750%
B antigo 4.000 130 3,250%
B total 20.000 1.370 6,850%

A verdade, portanto, é mais 0,6500 ponto e mais 10,48 por cento, com valor-p 0,008490.

Agora a perda. Dentro de cada célula, quem some converte na mesma taxa de quem fica, ou seja, a perda é ao acaso dado o aparelho e o braço. O que muda é quanta gente some:

braço aparelho perda usuários medidos conversões medidas taxa medida
A moderno 2,5% 15.600 1.092 7,000%
A antigo 30,0% 2.800 84 3,000%
A total 8,0% 18.400 1.176 6,391%
B moderno 2,5% 15.600 1.209 7,750%
B antigo 60,0% 1.600 52 3,250%
B total 14,0% 17.200 1.261 7,331%

Repare que dentro de cada linha de aparelho a taxa medida é idêntica à taxa verdadeira. Nenhuma célula está enviesada. E mesmo assim o total está.

As três leituras, e o que cada uma devolve

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.

leitura controle variação efeito relativo valor-p
verdade (dado completo) 1.240 de 20.000 = 6,2000% 1.370 de 20.000 = 6,8500% mais 10,48% 0,008490
casos completos 1.176 de 18.400 = 6,3913% 1.261 de 17.200 = 7,3314% mais 14,71% 0,000448
imputação pela média do braço 1.278 de 20.000 = 6,3900% 1.466 de 20.000 = 7,3300% mais 14,71% 0,000200

Cole as três linhas na calculadora acima. As duas primeiras batem token a token; a terceira difere só pelo arredondamento das conversões imputadas para número inteiro.

Três leituras do mesmo experimento, e a única que responde a pergunta é a primeira, que na vida real você não tem. As outras duas erram na mesma direção e pelo mesmo motivo:

Por que os casos completos exageraram. O braço B perdeu 60 por cento do aparelho antigo e o braço A perdeu 30 por cento. O aparelho antigo converte pela metade do moderno. Logo, a amostra medida de B ficou mais rica em aparelho moderno do que a de A: 90,7 por cento contra 84,8 por cento. A comparação passou a misturar o efeito da variação com a diferença de composição entre as duas amostras medidas. Não é um problema de tamanho de amostra, é um problema de mistura, e mais tráfego só deixa o número errado mais preciso.

Por que imputar pela média é pior. Preencher os buracos com a média observada do próprio braço reproduz exatamente a taxa observada, então a estimativa pontual não se mexe. O que se mexe é o denominador: você volta a ter 20.000 por braço, e o intervalo encolhe. O valor-p cai de 0,000448 para 0,000200 sem nenhuma informação nova ter entrado. É precisão inventada em cima de um número enviesado, o pior par possível. O relatório do National Research Council é explícito na recomendação 10: métodos de imputação única não devem ser usados como abordagem primária para o tratamento de dados faltantes, a menos que as premissas que os sustentam sejam cientificamente justificadas.

A padronização recupera o número

Se a perda depende do aparelho, e o aparelho foi medido antes do tratamento, a correção é direta: calcule a taxa de cada braço dentro de cada tipo de aparelho, e recombine usando os pesos reais do desenho, que a aleatorização garante serem iguais nos dois braços.

braço taxa medida no moderno taxa medida no antigo recombinado com 80% e 20%
A 7,000% 3,000% 0,8 vezes 7,000 mais 0,2 vezes 3,000 = 6,2000%
B 7,750% 3,250% 0,8 vezes 7,750 mais 0,2 vezes 3,250 = 6,8500%

Diferença: mais 0,6500 ponto. Efeito relativo: mais 10,48 por cento. É exatamente a verdade, recuperada sem nunca ver o dado perdido.

O erro-padrão dessa estimativa, somando as variâncias ponderadas de cada estrato, é 0,26088 ponto, o que dá z igual a 2,4916, valor-p 0,012717 e intervalo de confiança de 95 por cento entre mais 0,1387 e mais 1,1613 ponto.

Efeito estimado por leitura, com intervalo de confiançaQuatro barras horizontais com intervalos. A verdade e a leitura padronizada ficam sobre o mesmo ponto de 0,65 ponto, com a padronizada um pouco mais larga. Casos completos e imputação pela média ficam deslocadas para a direita, em 0,94 ponto, e a imputação é a mais estreita das quatro.verdade: 0,65 pp0,00,651,30efeito absoluto estimado, em pontos percentuaisdado completopadronizadocasos completosmédia do braçomais estreito e errado
A leitura padronizada paga o preço da perda onde ele deve ser pago, na largura do intervalo, e não na posição do ponto. A imputação pela média faz o contrário.

Três condições para esse conserto valer:

  1. a variável tem que ser pré-tratamento. Condicionar em algo que o tratamento afetou reintroduz viés, e é o mesmo erro de segmentar por comportamento posterior que descrevemos em efeito heterogêneo por segmento.
  2. os pesos têm que vir do desenho, não da amostra medida. Usar a composição observada de cada braço devolveria o número enviesado, porque é justamente ela que está contaminada.
  3. cada estrato precisa ter gente nos dois braços. Um estrato que perdeu quase tudo num dos lados não sustenta comparação, e nesse caso a saída é agregar estratos, não fingir que há dado.

Quanta perda já é problema

Não existe limiar universal, mas existe uma conta de guardanapo que responde em trinta segundos se vale a pena se preocupar. O viés dos casos completos é aproximadamente a diferença de composição entre as duas amostras medidas multiplicada pela distância entre as taxas dos grupos que compõem essa mistura.

No exemplo, a amostra medida de B ficou com 15.600 de 17.200 usuários no aparelho moderno, ou 90,698 por cento, contra 15.600 de 18.400, ou 84,783 por cento, em A. A diferença de composição é 5,915 pontos. A distância entre a taxa do moderno e a do antigo é da ordem de 4,5 pontos. O produto dá aproximadamente 0,266 ponto de viés esperado, e o viés observado foi 0,2901 ponto, a diferença entre os 0,9401 dos casos completos e os 0,6500 verdadeiros. A aproximação erra pouco e serve para decidir.

diferença de perda entre braços diferença de composição resultante viés esperado, com grupos separados por 4 pontos
1 ponto menos de 0,5 ponto menos de 0,02 ponto, irrelevante
3 pontos perto de 1,5 ponto perto de 0,06 ponto
6 pontos perto de 3 pontos perto de 0,12 ponto
12 pontos perto de 6 pontos perto de 0,24 ponto

Compare a última coluna com o efeito que você esperava detectar. Um efeito de 0,30 ponto convivendo com um viés de 0,24 ponto não é um resultado, é ruído com sinal. E note o segundo termo do produto: quando os grupos que a perda separa convertem quase igual, uma perda enorme não faz mal nenhum. É a combinação de perda assimétrica com grupos desiguais que estraga a leitura.

Imputação múltipla: por que mais de um preenchimento

Quando existem muitas covariáveis, ou quando quem falta é uma métrica contínua e não a conversão, a padronização manual fica impraticável e a ferramenta padrão é a imputação múltipla. A ideia é a que van Buuren resume: criar mais de um conjunto de dados completo, analisar cada um com o método de sempre e depois combinar os resultados pelas regras de Rubin.

O ponto está na combinação. A variância final soma a variância amostral de sempre, chamada de intra-imputação, com a variância extra causada pelo dado faltante, a entre-imputações, que é a discordância entre os preenchimentos. Essa segunda parcela é exatamente o que a imputação única joga fora, e é por isso que ela produz erro-padrão pequeno demais.

método estimativa pontual reconhece a incerteza da imputação? quando usar
casos completos enviesada se a perda não for completamente ao acaso não se aplica perda baixa e claramente simétrica
imputação pela média igual à dos casos completos não nunca como análise primária
padronização por estrato correta sob perda ao acaso na variável usada sim, no erro-padrão combinado poucas covariáveis, medidas antes
imputação múltipla correta sob perda ao acaso no modelo usado sim, pela variância entre imputações muitas covariáveis ou desfecho contínuo

O que não tem conserto: perda que depende do desfecho

Se quem some é justamente quem não ia converter, nenhuma covariável salva, porque a informação necessária está no dado ausente. O que resta é declarar a premissa e testar quanto ela aguenta.

O formato usual é assumir que os perdidos convertem a uma fração da taxa observada do mesmo grupo e varrer essa fração. Aplicando o desconto só ao braço B, que é o que perdeu mais, e partindo da leitura padronizada:

taxa dos perdidos em B, como fração da observada taxa estimada em B efeito relativo
100% (perda ao acaso dentro do estrato) 6,8500% mais 10,48%
80% 6,7410% mais 8,73%
60% 6,6320% mais 6,97%
40% 6,5230% mais 5,21%
20% 6,4140% mais 3,45%
0% (nenhum perdido converteu) 6,3050% mais 1,69%

O resultado dessa varredura é a coisa mais útil que você pode levar para a reunião: a direção da conclusão não vira em nenhum cenário, nem no absurdo em que nenhuma das 2.800 pessoas perdidas em B converteria. O que vira é o tamanho, que cai de mais 10,48 para mais 1,69 por cento.

Compare com a mesma varredura feita sobre a leitura ingênua, sem estrato: ali a conclusão se anula quando os perdidos convertem a 8,41 por cento da taxa observada, ou seja, 0,617 por cento. Padronizar não apenas corrigiu o ponto, deixou a conclusão muito mais robusta.

É por isso que a recomendação 15 do National Research Council pede que a análise de sensibilidade seja parte do relato primário dos achados, e que examinar a sensibilidade às premissas sobre o mecanismo de perda seja um componente obrigatório do relatório.

Um roteiro de seis passos

  1. Meça a perda antes de olhar a métrica. Duas linhas: fração de usuários sorteados sem desfecho registrado, por braço. Se a diferença entre braços passar de um ponto, trate a perda como o problema principal daquele teste.
  2. Rode o teste de proporção de amostra na população medida. Uma divisão desigual que aparece só depois do filtro de desfecho é assinatura de perda diferencial, não de erro de sorteio.
  3. Procure a variável que explica a perda. Aparelho, navegador, país, canal, versão do app. Ela precisa ser pré-tratamento.
  4. Padronize e compare com os casos completos. Se as duas leituras concordam, a perda não estava distorcendo. Se discordam, a padronizada é a que vale, e a diferença entre elas é o tamanho do viés que você acabou de remover.
  5. Varra a premissa que sobrou. A tabela de fração acima leva dez minutos e responde a única pergunta que a diretoria vai fazer.
  6. Conserte a causa antes do próximo teste. Ajuste de instrumentação vale mais que qualquer método de correção, porque muda o mecanismo de categoria.

Erros comuns

Faça isso automático na Donnu

A correção de dado faltante depende inteiramente de uma coisa que se decide antes do teste: guardar o sorteio separado do desfecho. Quando a tabela só tem quem converteu, não há como saber quantos sumiram, e a análise por casos completos vira a única disponível sem que ninguém perceba que escolheu por ela.

A Donnu registra a atribuição no momento em que ela acontece, com o estado pré-tratamento do usuário carimbado junto, o que deixa a taxa de perda por braço visível na mesma tela do resultado e torna a padronização por estrato uma consulta em vez de um projeto. A calculadora de significância fecha as leituras da tabela acima com os mesmos números que você colaria à mão.

Referências

Leia também: Perda de rastreamento por consentimento · Atrito diferencial · Estratificação em teste A/B · SRM: divisão desigual de tráfego · Calculadora de significância · Read in English

Perguntas frequentes

O que são dados faltantes completamente ao acaso, ao acaso e não ao acaso?
A classificação é de Rubin (1976) e van Buuren a resume assim: se a probabilidade de faltar é a mesma para todos os casos, o dado é faltante completamente ao acaso; se ela é a mesma apenas dentro de grupos definidos pelo dado observado, é faltante ao acaso; se nenhuma das duas vale, é faltante não ao acaso. A primeira é inofensiva, a segunda é corrigível com o que você mediu, e a terceira não é corrigível com dado nenhum.
Analisar só quem tem dado completo é seguro?
Só quando a perda é completamente ao acaso, e isso raramente é verdade num teste A/B, porque a variação nova costuma mudar quem consegue ser medido. No exemplo deste guia a perda foi de 8 por cento no controle e 14 por cento na variação, e a análise por casos completos devolveu mais 14,71 por cento contra uma verdade de mais 10,48 por cento, ou seja, 40 por cento de exagero sobre o efeito real.
Imputar pela média resolve?
Não, e piora um problema. A imputação pela média do braço devolve exatamente a mesma estimativa pontual enviesada dos casos completos e ainda estreita o intervalo, porque trata valor inventado como valor medido. No exemplo, o valor-p cai de 0,000448 para 0,000200 sem que nenhuma informação nova tenha entrado. O relatório do National Research Council de 2010 recomenda que métodos de imputação única não sejam usados como abordagem primária, a menos que as suposições que os sustentam sejam cientificamente justificadas.
O que recupera o número certo?
Padronizar por aquilo que causa a perda, quando essa variável foi medida antes do tratamento. No exemplo, o tipo de aparelho explica tanto a perda quanto a conversão; recalculando cada braço com os pesos reais do desenho, 80 por cento aparelho moderno e 20 por cento antigo, a estimativa volta a mais 0,6500 ponto e mais 10,48 por cento, exatamente a verdade, com intervalo um pouco mais largo do que o do dado completo.
E quando a perda depende do próprio desfecho?
Aí nenhum ajuste resolve, porque a informação necessária está justamente no dado que não chegou. O caminho é a análise de sensibilidade: assuma que os perdidos convertem a uma fração da taxa observada e veja a partir de qual fração a conclusão vira. Na leitura padronizada deste guia a conclusão não vira nem no cenário mais pessimista possível, mas o efeito encolhe de mais 10,48 para mais 1,69 por cento.
Dá para saber pelos dados se a perda é ao acaso ou não ao acaso?
Não. É uma suposição sobre a relação entre variáveis cujos valores você não tem, e por isso não pode ser validada com os dados coletados. Por isso o mesmo relatório do National Research Council recomenda que a análise de sensibilidade seja parte do relato primário dos achados, e não um apêndice opcional.