Estatística

Ajuste por Regressão em Teste A/B: menos ruído no efeito

Ajuste por regressão usa covariáveis pré-teste para encolher o erro-padrão sem mais tráfego. A conta, a crítica de Freedman e a correção de Lin.

Ilustração plana de uma nuvem de pontos dispersos à esquerda que se concentra numa faixa densa à direita

A amostra que um teste A/B exige é proporcional à variância da métrica, e parte dessa variância você já consegue explicar com dados que existiam antes do sorteio. Ajuste por regressão troca a comparação de duas médias cruas por uma regressão que inclui essas covariáveis, mantém o mesmo efeito estimado e encolhe o erro-padrão. No exemplo deste guia, uma leitura de 40.000 por braço com mais 0,3000 ponto percentual sai com valor-p 0,054907 sem ajuste e 0,044188 quando as covariáveis explicam 9 por cento da variância. O efeito não mudou; o ruído em volta dele diminuiu. Este guia mostra a conta, a crítica de Freedman que assustou uma geração de analistas, a correção de Lin que a resolveu, e a regra de disciplina sem a qual o ajuste vira trapaça. Faz parte do nosso guia completo de teste A/B e é a generalização do que CUPED faz com uma covariável só.

O tráfego que você compra é ruído, não sinal

O tamanho de amostra de um teste é ditado por três coisas: o efeito que você quer detectar, o risco de erro que aceita e a variância da métrica. As duas primeiras são decisões suas. A terceira parece ser uma propriedade fixa do negócio, e não é inteiramente.

Boa parte da variação entre usuários é previsível antes do experimento começar. Quem comprou três vezes nos últimos 90 dias converte mais que quem nunca comprou, e isso é verdade nos dois braços, porque o sorteio distribuiu os dois tipos igualmente. Essa parcela previsível não carrega informação nenhuma sobre a variação testada: ela é ruído puro do ponto de vista da pergunta, e ainda assim você paga tráfego por ela.

Decomposição da variância da métrica em parte previsível e parte residualUma barra representa a variância total da métrica. Ela é dividida em duas partes: a fração explicada por covariáveis medidas antes do sorteio, que não diz nada sobre o efeito da variação, e a fração residual, que é o único ruído contra o qual o efeito precisa competir. O ajuste por regressão remove a primeira parte da conta do erro-padrão.variância da métrica de conversãotudo isso é o que você paga em tráfegoprevisível: 30%residual: 70%a parte previsível está igual nos dois braços por causa do sorteio, logo não pode explicar nenhum efeito.o ajuste por regressão a retira do erro-padrão, e o efeito estimado continua o mesmo.menos ruído no denominador do z, mesmo numerador: a leitura fica mais sensível sem um visitante a mais.
Cortar a parte previsível da variância é a única forma de ganhar sensibilidade sem comprar tráfego, mudar a métrica ou aumentar o efeito perseguido.

A ideia é antiga em amostragem e se chama variável de controle. Deng, Xu, Kohavi e Walker a trouxeram para experimentação online sob o nome CUPED, com a conta explícita: escolhendo o coeficiente ótimo, a variância do estimador passa a ser a variância original multiplicada por 1 menos o quadrado da correlação entre a métrica e a covariável. Quanto maior a correlação, maior a redução, e eles registram que a escolha ótima do coeficiente é exatamente a solução de mínimos quadrados da regressão do desfecho centrado sobre a covariável centrada. Ou seja: CUPED é regressão, com uma covariável.

O exemplo trabalhado: a mesma leitura, dois erros-padrão

Um SaaS testa uma nova tela de cadastro. A métrica primária é ativação em 7 dias. O teste roda até 40.000 visitantes por braço.

leitura controle variação
visitantes 40.000 40.000
ativações 2.000 2.120
taxa 5,000% 5,300%
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.

Cole esses quatro números na calculadora acima. O resultado é o ponto de partida de tudo: efeito de mais 0,3000 ponto percentual, mais 6,00 por cento relativo, intervalo de confiança de 95 por cento entre menos 0,0063 e mais 0,6063 ponto, e valor-p 0,054907. O z, que a calculadora não mostra porque é o passo intermediário, vale 1,9196.

É o pior lugar possível para um teste terminar. O intervalo cruza o zero por seis milésimos de ponto. Ninguém na reunião vai chamar isso de nulo, e ninguém pode chamar de vitória.

Agora suponha que, antes do sorteio, você tinha para cada usuário: número de sessões nos 14 dias anteriores, origem do tráfego, dispositivo e se já havia iniciado um cadastro antes. Junte tudo numa regressão e suponha que esse conjunto explique 9 por cento da variância do desfecho, ou seja, uma correlação múltipla de 0,30 com a ativação. O erro-padrão do efeito é multiplicado por 0,953939, que é a raiz de 1 menos 0,09.

O efeito continua exatamente mais 0,3000 ponto. O z sobe de 1,9196 para 2,0123 e o valor-p cai para 0,044188.

Valor-p da mesma leitura conforme a fração da variância explicada pelas covariáveisSeis barras horizontais mostram o valor-p da mesma leitura de 40.000 por braço com efeito de 0,3 ponto percentual, para frações de variância explicada de 0, 5, 9, 16, 25 e 30,25 por cento. Sem ajuste o valor-p é 0,054907, acima da linha de 5 por cento. A partir de 5 por cento de variância explicada o valor-p cruza para baixo da linha, chegando a 0,021534 quando as covariáveis explicam 30,25 por cento.mesmo efeito de 0,3000 ponto, mesmos 40.000 por braçolinha de 5%R² = 0 (sem ajuste)p = 0,054907R² = 0,05p = 0,048898R² = 0,09p = 0,044188R² = 0,16p = 0,036218R² = 0,25p = 0,026652R² = 0,3025p = 0,021534o efeito estimado é 0,3000 ponto em todas as linhas. O que muda é só o erro-padrão.e é por isso que a escolha de ajustar tem que ser tomada ANTES de ver qualquer uma dessas linhas.
A barra vermelha é a leitura crua. As verdes são a mesma leitura com covariáveis pré-teste de poder crescente. Nenhuma delas mudou o efeito estimado.

Duas coisas precisam ficar claras aqui, porque o gráfico acima é sedutor e perigoso na mesma medida:

  1. O ajuste não inventou efeito. Os 0,3000 ponto são os mesmos. O que caiu foi a incerteza sobre eles, porque parte do ruído que competia com o efeito foi explicada por dados que não têm relação nenhuma com a variação testada.
  2. Se a decisão de ajustar for tomada depois de ver a barra vermelha, isso não é análise, é escolha do resultado preferido. A seção sobre disciplina, mais adiante, é a parte mais importante deste artigo.

Freedman disse que isso quebra, e ele estava parcialmente certo

Em 2008, David Freedman publicou uma crítica que virou folclore contra o ajuste. Trabalhando sob o modelo de Neyman, em que o efeito pode variar entre indivíduos, a linearidade não é assumida e a aleatorização é a única fonte de variabilidade, ele mostrou três problemas: o ajuste pode piorar a precisão assintótica, o erro-padrão convencional de mínimos quadrados é inconsistente, e o estimador ajustado tem viés de amostra pequena. A frase dele é direta: a razão do colapso não é difícil de achar, porque a aleatorização não justifica as suposições por trás do modelo de mínimos quadrados.

A crítica pegou. Lin cita Berk e coautores resumindo a lição como “atribuição aleatória não justifica nenhuma forma de regressão com covariáveis”, com viés provável nas estimativas e erros-padrão muito enviesados.

Em 2013, Winston Lin reexaminou cada um dos três pontos sob as mesmas condições de regularidade de Freedman e mostrou que, em amostras suficientemente grandes, os problemas são menores ou de correção fácil. Os dois resultados que interessam a quem roda teste A/B:

Junto disso vem um detalhe operacional bonito: Lin registra que, quando o efeito não ajustado é calculado regressando o desfecho sobre o indicador de tratamento, o estimador sanduíche corrigido HC2 devolve exatamente a estimativa de variância preferida por Neyman e pelo próprio Freedman, ou seja, a soma das variâncias amostrais divididas por cada tamanho de grupo. As duas escolas dão o mesmo número.

ponto de Freedman (2008) resposta de Lin (2013) o que fazer na prática
o ajuste pode piorar a precisão assintótica não pode, se o conjunto completo de interações tratamento vezes covariável estiver no modelo sempre centre as covariáveis e inclua as interações com o indicador de braço
o erro-padrão convencional de mínimos quadrados é inconsistente verdade, e por isso não se usa o convencional; o sanduíche é consistente ou conservador use erro-padrão robusto, preferindo a variante HC2
existe viés de amostra pequena no estimador ajustado existe, e some com o tamanho; em amostra pequena ou com pontos de alta alavancagem o sanduíche também pode ter viés para baixo com poucos milhares de unidades, prefira a diferença de médias ou bootstrap

O terceiro ponto é o que fecha a régua honesta: ajuste por regressão é uma técnica de amostra grande. Experimento de tráfego online com dezenas de milhares de unidades por braço está confortavelmente nesse território. Piloto com 400 usuários não está, e ali a crítica de Freedman continua valendo integralmente.

Quanto tráfego o ajuste por regressão devolve

A conta é direta: se as covariáveis explicam uma fração da variância, o requisito de amostra cai na mesma fração. Vale a pena ver isso em dias de calendário, que é a moeda de quem opera.

Calculadora de tamanho de amostra
-Visitantes por variação
-Total (2 variações)
-Duração estimada

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 taxa base de 5 por cento, alvo de mais 6 por cento relativo, 95 por cento de confiança e 80 por cento de poder em teste bicaudal, a calculadora acima devolve 85.199 visitantes por variação. A 30 mil visitantes por semana divididos entre dois braços, isso são 40 dias. Aplicando a redução de variância sobre esse mesmo requisito:

variância explicada correlação visitantes por variação dias a 30 mil por semana
0% (sem ajuste) 0,00 85.199 40
5% 0,22 80.940 38
9% 0,30 77.532 37
16% 0,40 71.568 34
25% 0,50 63.900 30
30,25% 0,55 59.427 28
50% 0,71 42.600 20
Dias de teste conforme a fração da variância explicada pelas covariáveisCinco barras horizontais mostram a duração do mesmo teste a 30 mil visitantes por semana. Sem ajuste são 40 dias. Com 9 por cento de variância explicada são 37 dias, com 25 por cento são 30 dias, com 30,25 por cento são 28 dias e com 50 por cento são 20 dias, metade do calendário original.mesmo efeito perseguido, mesma taxa base, mesmo podersem ajuste40 dR² = 0,0937 dR² = 0,2530 dR² = 0,302528 dR² = 0,5020 d20 dias em vez de 40 é a diferença entre 26 e 13 testes por ano na mesma superfície.
Redução de variância não é elegância acadêmica: ela vira número de experimentos por ano, que é a variável que mais determina quanto um programa de CRO produz.

O piso de 50 por cento não é hipotético. Deng, Xu, Kohavi e Walker relatam que, no sistema de experimentação do Bing, a técnica reduziu a variância em cerca de 50 por cento, o que descrevem como equivalente a dobrar o tráfego ou reduzir pela metade o tempo de execução para a mesma sensibilidade.

Quais covariáveis valem a pena

Aqui mora a diferença entre a teoria e o boleto. O ganho depende inteiramente de quanto as covariáveis explicam, e a experiência publicada é clara sobre quem ganha:

covariável expectativa de ganho observação
a própria métrica do desfecho no período pré-experimento alta é a melhor covariável isolada, e é exatamente o que CUPED usa
métricas de engajamento pré-experimento (sessões, pageviews) média correlacionadas com quase tudo, mas menos que o desfecho defasado
dispositivo, canal de aquisição, país baixa úteis por serem baratas de coletar, raramente movem o ponteiro sozinhas
variáveis medidas DEPOIS do sorteio proibida qualquer coisa que o tratamento possa ter afetado quebra o sorteio

Os autores do CUPED são explícitos sobre o primeiro item: usar a mesma métrica do período pré-experimento tipicamente dá a maior redução de variância. E medem o retorno de somar outra covariável a ela: combinando as duas, ganharam apenas 2 a 3 por cento a mais de redução do que com a métrica pré-experimento sozinha. Ou seja, o segundo item da lista raramente compensa a complexidade.

Vale a expectativa realista para quem não tem o desfecho defasado disponível. Lin cita Schochet, que examinou oito experimentos sociais com desfechos variados e encontrou R quadrado acima de 0,3 apenas quando o desfecho era nota de teste padronizado ou custo de Medicaid e as covariáveis incluíam o desfecho defasado. Lin registra a conclusão geral: a constatação de que o ajuste tem pouco efeito sobre a precisão não é incomum em experimentos sociais, porque as covariáveis costumam ter correlação fraca com o desfecho.

A leitura prática disso é desconfortável e honesta: se você não consegue medir a métrica do desfecho antes do experimento, o ajuste provavelmente vai devolver poucos por cento, não 50. Um usuário novo, que nunca converteu, não tem métrica pré-experimento nenhuma, e é justamente ele que domina o funil de aquisição.

A regra que separa análise de trapaça

Ajuste por regressão tem um grau de liberdade explosivo: quais covariáveis entram, em que forma funcional, com quais interações, com qual tratamento de valores faltantes. Cada escolha dessas move o valor-p. Um analista de boa-fé que tente três especificações e reporte a melhor está fazendo exatamente o que o gráfico da segunda seção mostrou, só que sem perceber.

Como a escolha da especificação depois do resultado infla o falso positivoUm mesmo conjunto de dados leva a quatro especificações possíveis de ajuste, cada uma com um valor-p diferente. Escolher entre elas depois de ver os quatro números é uma decisão múltipla disfarçada de análise única, e a taxa real de falso positivo fica muito acima dos 5 por cento declarados.um conjuntode dadossem covariável nenhumap = 0,0549só dispositivo e canalp = 0,0489o bloco completop = 0,0442o bloco com interaçõesp = 0,0362escolher aqui,depois de ver osquatro, não éum teste só.
Os quatro valores-p do diagrama são os mesmos da tabela anterior, apenas rotulados como especificações plausíveis. Sem pré-registro, o analista escolhe qual deles reportar depois de conhecer todos.

A regra é simples e não tem exceção razoável: a especificação do ajuste entra no plano de análise pré-registrado, antes de a primeira leitura existir. O que precisa estar escrito lá:

Esse último item é a proteção mais barata que existe. Publicar as duas leituras lado a lado transforma qualquer divergência grande entre elas num sinal de diagnóstico, e não numa escolha. Se a leitura crua e a ajustada discordam muito, alguma coisa está errada com o sorteio ou com as covariáveis, e vale checar divisão desigual de tráfego antes de qualquer outra coisa.

Um roteiro de sete passos para o ajuste por regressão

  1. Verifique se a métrica do desfecho existe no período pré-experimento. Se existe, ela é sua melhor covariável e o resto é secundário.
  2. Congele as covariáveis no instante do sorteio. Nada medido depois entra, sem exceção, mesmo que pareça inofensivo.
  3. Escreva a especificação no plano de análise, com nome de campo e janela, antes de a primeira leitura existir.
  4. Centre as covariáveis e inclua as interações com o braço, que é a forma que Lin mostrou não poder piorar a precisão assintótica.
  5. Use erro-padrão robusto, preferindo HC2, e nunca o erro-padrão convencional de mínimos quadrados.
  6. Reporte as duas leituras, a crua e a ajustada, sempre juntas, no mesmo relatório.
  7. Se a amostra for pequena, algumas centenas por braço, não ajuste: reporte a diferença de médias e trate a crítica de Freedman como válida, porque naquele regime ela é.

Erros comuns

Faça isso automático na Donnu

Ajuste por regressão depende de uma coisa que se decide muito antes da análise: as covariáveis precisam estar carimbadas no instante do sorteio, não reconstruídas depois a partir do estado atual do usuário. Um campo de “número de sessões” lido no dia do relatório já contém as sessões que a variação causou, e usar isso como covariável pré-teste não reduz variância, contamina a estimativa.

A Donnu carimba o estado do usuário no momento da atribuição, o que deixa o bloco de covariáveis disponível sem reconstrução manual e sem risco de vazamento pós-tratamento. E vale a regra de escopo: quando a métrica do desfecho existe no período anterior, use ela primeiro, porque é ela que carrega quase todo o ganho. A calculadora de tamanho de amostra fecha a conta de quanto calendário isso devolve, aplicando a fração de variância explicada sobre o requisito bruto.

Referências

Leia também: O que é CUPED · Estratificação em teste A/B · Efeito mínimo detectável · Plano de análise pré-registrado · Calculadora de tamanho de amostra · Read in English

Perguntas frequentes

O que é ajuste por regressão num teste A/B?
É estimar o efeito da variação numa regressão que inclui covariáveis medidas ANTES do sorteio, em vez de comparar duas médias cruas. O efeito estimado continua sendo o mesmo alvo, mas o erro-padrão encolhe na proporção da variância do desfecho que as covariáveis explicam. No exemplo deste guia, uma leitura de 40.000 por braço sai com valor-p 0,054907 sem ajuste e 0,044188 com covariáveis que explicam 9 por cento da variância, com o mesmo efeito de mais 0,3000 ponto percentual.
Ajuste por regressão enviesa o resultado de um teste aleatorizado?
Freedman mostrou em 2008 que o ajuste tem viés de amostra pequena, que a precisão pode piorar e que o erro-padrão convencional do mínimos quadrados é inconsistente. Lin reexaminou a crítica em 2013 e mostrou que, em amostras suficientemente grandes, esses problemas são menores ou de correção fácil: incluindo o conjunto completo de interações entre tratamento e covariáveis, o ajuste não pode piorar a precisão assintótica, e o erro-padrão sanduíche de Huber e White é consistente ou assintoticamente conservador.
Qual é a diferença entre ajuste por regressão e CUPED?
CUPED é o caso particular em que a covariável é a própria métrica medida no período anterior ao experimento. A matemática é a mesma família: com a escolha ótima do coeficiente, a variância cai por um fator de 1 menos o quadrado da correlação. Deng, Xu, Kohavi e Walker relatam que a mesma métrica do período pré-experimento costuma dar a maior redução, e que no Bing a redução ficou em cerca de 50 por cento, equivalente a dobrar o tráfego.
Quanto tráfego o ajuste economiza na prática?
Exatamente a fração da variância que as covariáveis explicam. Com taxa base de 5 por cento e alvo de mais 6 por cento relativo a 95 por cento de confiança e 80 por cento de poder, o teste pede 85.199 visitantes por variação. Se as covariáveis explicam 9 por cento da variância, o requisito cai para 77.532; se explicam 30,25 por cento, cai para 59.427, ou seja, 28 dias em vez de 40 a 30 mil visitantes por semana.
Posso decidir ajustar depois de ver que o resultado ficou em cima da linha?
Não. Escolher entre a leitura ajustada e a crua depois de ver as duas é o mesmo problema de decisão múltipla que o peeking cria no tempo, e infla a taxa de falso positivo por um caminho que nenhuma correção posterior conserta. A especificação do ajuste, ou seja, quais covariáveis entram e em que forma, precisa estar no plano de análise antes de a primeira leitura existir.
Quais covariáveis funcionam melhor?
A própria métrica do desfecho medida antes do experimento é de longe a melhor, e o ganho de somar outras a ela costuma ser pequeno. Deng, Xu, Kohavi e Walker registram que combinar a métrica pré-experimento com outra covariável rendeu apenas 2 a 3 por cento a mais de redução do que a métrica pré-experimento sozinha. Fora dela, a expectativa realista é modesta: Lin cita Schochet, que em oito experimentos sociais encontrou R quadrado acima de 0,3 apenas quando o desfecho era nota de teste padronizado ou custo de Medicaid e as covariáveis incluíam o desfecho defasado.