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.

📚 Este artigo faz parte do guia Significância Estatística em Teste A/B: O Guia.
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 |
Duas consequências que valem mais que a definição:
- você não consegue distinguir “ao acaso” de “não ao acaso” olhando os dados. É uma afirmação sobre a relação entre variáveis cujos valores você não tem. O relatório do National Research Council sobre dados faltantes é direto: a escolha do método estatístico exige premissas não verificáveis sobre o mecanismo que causa a falta, e por isso sempre envolve algum grau de subjetividade.
- “ao acaso” não é uma propriedade do mundo, é uma propriedade do seu banco. A mesma perda é não ao acaso se você não guardou o tipo de aparelho e ao acaso se você guardou. Instrumentar bem muda a categoria do problema.
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
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.
Três condições para esse conserto valer:
- 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.
- 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.
- 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
- 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.
- 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.
- Procure a variável que explica a perda. Aparelho, navegador, país, canal, versão do app. Ela precisa ser pré-tratamento.
- 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.
- Varra a premissa que sobrou. A tabela de fração acima leva dez minutos e responde a única pergunta que a diretoria vai fazer.
- 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
- Reportar a perda só como número agregado. Oito por cento de perda total não diz nada; 8 contra 14 por cento entre braços diz tudo.
- Filtrar quem tem dado completo e chamar isso de limpeza. Esse filtro é uma decisão de análise com viés previsível, e merece uma linha no relatório.
- Preencher com zero. É imputação única com a premissa mais forte possível, que todo mundo que sumiu não converteu, sem que ela seja declarada.
- Usar a composição observada como peso. Devolve o número enviesado com aparência de correção.
- Condicionar em variável pós-tratamento. Reintroduz o viés que você tentou tirar, por outra porta.
- Tratar a análise de sensibilidade como apêndice. Ela é o resultado, tanto quanto o ponto estimado.
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
- van Buuren, S. Flexible Imputation of Missing Data, segunda edição, capítulo 1. Fonte das três definições atribuídas a Rubin (1976): 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; e se nenhuma das duas vale, o dado é faltante não ao acaso. Fonte também do registro de que a perda completamente ao acaso, embora conveniente, é frequentemente irrealista para os dados em mãos, e de que os métodos modernos de dado faltante em geral partem da suposição de perda ao acaso. stefvanbuuren.name.
- van Buuren, S. Flexible Imputation of Missing Data, seção sobre imputação múltipla em resumo. Fonte da descrição do procedimento em três passos (criar mais de um conjunto completo, analisar cada um com software padrão e combinar os resultados pelas regras de Rubin) e da decomposição da variância final em variância intra-imputação, que é a variância amostral convencional, e variância entre imputações, que é a incerteza extra causada pelo dado faltante e que a imputação única descarta. stefvanbuuren.name.
- National Research Council. The Prevention and Treatment of Missing Data in Clinical Trials, capítulo de conclusões e recomendações, 2010. Fonte da recomendação 10, segundo a qual 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; da recomendação 15, que pede que análises de sensibilidade sejam parte do relato primário dos achados e que examinar a sensibilidade às premissas sobre o mecanismo de perda seja componente obrigatório do relatório; e do registro de que a escolha do método estatístico exige premissas não verificáveis sobre o mecanismo que causa a falta. ncbi.nlm.nih.gov.
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.