Teste A/B: uma abordagem prática

Pandas Couple
13 min readJul 11, 2022

--

Há um grande passo lógico, dizer que duas variáveis estão correlacionadas. Que o aumento de uma delas causa o aumento da outra ou que o aumento de uma delas causa a diminuição da outra e vice-versa. No geral, pode haver outras variáveis que não consideramos, você já deve ter lido ou ouvido a frase: correlação não implica causalidade. Só porque matematicamente duas variáveis estão relacionadas uma a outra, não significa que, quando uma mudar, a outra também vai mudar.

https://www.tylervigen.com/spurious-correlations

Nesse caso, como deduzimos, que de fato há uma causalidade?

Você pode dizer que mudanças no seu site fazem com que os visitantes façam mais compras ou talvez você queira mostrar que mudanças no seu mecanismo de recomendação fornecem melhores resultados de pesquisa para seus usuários. Para testar essas e outras hipóteses, devemos fazer um experimento.

https://unsplash.com/

O design experimental é importante para cientistas de dados ou qualquer outro profissional que queira fazer um experimento, pois, os ajuda a entender o escopo de conclusões que podem tirar de seus dados. Tudo isso equipado com ferramentas estatísticas.

O que é um experimento?

Digamos que você tenha uma loja online e queira adicionar um novo recurso em seu website. Você gostaria de testar se esse novo recurso gera mais vendas para a sua loja. Esse seria o objetivo do experimento.

Bem, se fizermos um experimento para esse objetivo, poderemos dizer se o novo recurso causou ou não uma mudança nos hábitos de compra dos clientes. Então o que de fato torna um experimento um experimento?

Resumidamente:

  1. Precisamos realizar uma comparação entre dois grupos de usuários. Se tivermos algumas pessoas interagindo com o site antigo, sem o novo recurso e algumas pessoas interagindo com o novo site, com o novo recurso, a diferença nas compras feitas por cada grupo nos mostrará o efeito desse novo recurso. Faremos o que chamamos na estatística de teste de hipótese.
  2. Em paralelo, precisamos controlar outras diferenças entre os dois grupos. A única diferença entre eles deve ser o recurso que manipulamos. Para cada cliente, nós o atribuímos aleatoriamente a uma versão do site. Ao dividir indivíduos aleatoriamente a cada página do site (uma com o novo recurso e outra sem o novo recurso), a distribuição de outras variáveis, como por exemplo, idade ou sexo, deve ser semelhante entre os grupos.

Há muitas maneiras pelas quais os dados podem ser coletados para testar ou entender a relação entre duas variáveis de interesse. Podemos dividi-las em três tópicos principais, com base na quantidade de controle que você mantém sobre as variáveis em questão. São elas:

  • Se você tiver muito controle sobre os recursos, terá um experimento.
  • Se você não tem controle sobre os recursos, terá um estudo observacional.
  • Se você tem algum controle, terá um quase experimento.

Para o nosso escopo aqui, iremos falar apenas dos experimentos! Mas também é útil conhecer os outros tipos de estudo para que você possa usá-los da maneira correta, especialmente se um experimento não puder ser executado.

Tipos de experimento

Experimento entre sujeitos (ou entre grupos)

Esse, possivelmente é o experimento mais comum, ao se pensar em um experimento. Nele, cada unidade, participa ou vê apenas uma das condições que estão sendo usadas no experimento (antigo recurso ou novo recurso para o website).

Costumamos dividir o experimento (da forma mais simples) em dois grupos: grupo de controle e grupo experimental. Você já deve ter ouvido falar dessa abordagem, mas para resumir, o grupo de controle é aquele em que as unidades participantes interagem com a versão antiga, versão sem o novo recurso experimental, na área médica, esse seria o grupo que receberia o placebo. Analogamente, o grupo experimental é aquele em que as unidades participantes interagem com a versão nova, versão com o novo recurso experimental e, novamente fazendo o paralelo com a área médica, esse seria o grupo que de fato receberia o promissor medicamento.

No final, a ideia é comparar os resultados entre os grupos para fazer um julgamento assertivo sobre o efeito da nossa manipulação. Para experimentos na Web, esse tipo de projeto de experimento é chamado teste A/B.

https://br.freepik.com/

Observação: Não estamos limitados a apenas dois grupos. Poderíamos ter vários grupos experimentais para comparar. Isso poderia formar um teste A/B/C, por exemplo. Para fins didáticos vamos focar apenas em dois grupos aqui.

Experimento dentro dos sujeitos (ou sujeito único)

Esse, seria quando um indivíduo interage com todas as condições, em vez de apenas uma (como foi no caso do tipo de experimento anterior).

Ao medir a produção de um indivíduo em todas as condições, sabemos que a distribuição de características nos grupos será equivalente. Podemos levar em conta as aptidões ou inclinações dos indivíduos em nossa análise. Por exemplo, se um indivíduo classifica três paletas de cores diferentes para um produto, podemos saber se uma classificação alta para uma paleta é particularmente boa em comparação com as outras ou se não é uma distinção tão importante.

Não vamos entrar muito em detalhes nesse segundo tipo de experimento aqui. Nosso exemplo será focado no Experimento entre sujeitos.

Nem sempre é possível realizar experimentos dentro dos sujeitos, como no nosso exemplo do website, quando um usuário visita um site e conclui sua sessão, geralmente não podemos garantir quando ele voltará. Caso volte, o objetivo dessa segunda visita, pode não ser comparável ao da primeira. Nesse caso, isso pode exigir muito mais esforço no controle para configurar um design eficaz dentro dos sujeitos.

Temos mais um tipo de experimento chamado de projetos fatoriais, não iremos detalhá-lo aqui, fica de dever de casa, caso você leitor, queira se aprofundar ainda mais no assunto.

Exercício prático — Projetar um experimento

Descrição do cenário

Digamos que você esteja trabalhando para uma empresa de software de produtividade fictícia que está procurando maneiras de aumentar o número de pessoas que pagam por seu software. Da forma como o software está configurado atualmente, os usuários podem baixar e usar o software gratuitamente, por um período de avaliação de 7 dias. Após o término da avaliação, os usuários devem pagar por uma licença para continuar usando o software.

Uma ideia que a empresa quer experimentar é mudar o layout da página inicial para enfatizar com mais destaque que há um teste de 7 dias disponível para o software da empresa. O receio que eles tem atualmente, é que alguns usuários em potencial estejam perdendo o uso do software devido à falta de conhecimento do período de teste. Se mais pessoas baixarem o software e o usarem no período de teste, a esperança é que isso atraia mais pessoas a fazer uma compra depois de ver o que o software pode fazer.

Tamanho do experimento e amostragem

Embora experimentos online tenham facilidade para coletar dados, temos que nos preocupar com a amostragem. Não é razoável em termos de tempo e dinheiro tentar coletar pensamentos de cada pessoa da população, portanto, aplicamos uma técnica estatística de amostragem, cujo objetivo é pegar apenas um subconjunto da população e usar as respostas desse subconjunto para fazer uma inferência sobre toda a população.

Os tipos de técnicas de amostragem mais comuns são: amostragem aleatória simples e amostragem aleatória estratificada.

O tempo de execução para esse experimento foi dimensionado para 29 dias.

Cinco primeiras linhas dos dados do experimento

As variáveis presentes nesse conjunto de dados informam, respectivamente:

  • Day: Em qual dia da experimentação estávamos.
  • Control Cookies: Contagem diária do número de cookies exclusivos para o grupo de controle.
  • Control Downloads: Contagem diária do número de downloads feito pelo grupo de controle.
  • Control Licenses: Contagem diária do número de licenças adquiridas pelo grupo de controle.
  • Experiment Cookies: Contagem diária do número de cookies exclusivos para o grupo de experimento.
  • Experiment Downloads: Contagem diária do número de downloads feito pelo grupo de experimento.
  • Experiment Licenses: Contagem diária do número de licenças adquiridas pelo grupo de experimento.

Medir os Resultados

Para planejar um estudo eficaz, você precisa separar claramente o objetivo do estudo de como você vai medir o sucesso dele. Os objetivos do seu estudo podem não ser os mesmos da forma como você avalia o sucesso do estudo.

Digamos que você tenha uma ideia de uma adição de um recurso em seu site que melhore a satisfação do usuário. Como devemos medir isso? Para avaliar se essa melhoria aconteceu ou não, você precisa ter uma forma de medir objetivamente o efeito da adição do novo recurso. Por exemplo, você pode incluir uma pesquisa para usuários aleatórios para que eles avaliem a experiência no site em uma escala de 1 a 10. Se a adição do novo recurso for útil, devemos esperar que a classificação média seja maior para os usuários que receberam a adição do novo recurso, em comparação com aqueles que não receberam. A escala de classificação funciona como uma forma concreta de medir a satisfação do usuário. Esses recursos objetivos pelos quais você avalia o desempenho são conhecidos como métricas de avaliação.

https://br.freepik.com/

Como regra geral, é uma boa ideia considerar os objetivos de um estudo separadamente das métricas de avaliação. Isso fornece alguns benefícios úteis. Primeiro, isso deixa claro que a métrica não é o ponto principal de um estudo: são as implicações da métrica em relação ao objetivo que importa.

Segundo, separar a métrica do objetivo pode esclarecer o propósito da realização do estudo ou experimento. Isso garante que possamos responder à pergunta do por que queremos realizar um estudo ou experimento.

Com relação as métricas, existem duas categorias principais que podemos considerar:

  • métricas de avaliação.
  • métricas invariáveis.

Resumidamente, as métricas de avaliação são a forma como comparamos os grupos, e idealmente, esperamos ver uma diferença entre os grupos que nos dirá se a nossa manipulação foi um sucesso. Podemos por exemplo querer ver um aumento na taxa de cliques ou um aumento na receita geral. Por outro lado, as métricas invariáveis são métricas que esperamos não ser diferente entre os grupos. As métricas nessa categoria servem para verificar se o experimento está sendo executado conforme o esperado.

Antes de prosseguir, é interessante saber que não estamos limitados a rastrear apenas uma métrica de cada tipo. Não é incomum rastrear várias métricas invariáveis como verificações da integridade do sistema ou várias métricas de avaliação para verificar diferentes facetas potenciais dos efeitos de uma manipulação. No entanto, não pense que você precisa acompanhar todas as métricas possíveis. É melhor se concentrar em algumas métricas-chave, ignorando recursos que podem ser menos confiáveis ou altamente correlacionados a outros recursos mais informativos.

Verificação da métrica invariante

Vamos começar a análise do nosso experimento verificando a métrica invariante. Aqui, devemos verificar se o número de visitantes atribuídos a cada grupo é semelhante. É importante verificar as métricas invariantes como pré-requisito para que nossas inferências sobre as métricas de avaliação sejam fundamentadas em bases sólidas. Se descobrirmos que os dois grupos estão desequilibrados na métrica invariável, isso exigirá que analisemos cuidadosamente como os grupos foram divididos para que quaisquer fontes de viés sejam contabilizados. É possível que uma diferença estatisticamente significativa em uma métrica invariável exija que revisemos os procedimentos de atribuição aleatória e refaçamos a coleta de dados.

Nesse caso, queremos fazer um teste de hipótese bicaudal sobre a proporção de visitantes atribuídos a uma de nossas condições.

  • H0: média cookies grupo de experimento-média cookies grupo de controle = 0
  • H1: média cookies grupo de experimento-média cookies grupo de controle != 0

Essas são as hipóteses que queremos testar, H0 é a hipótese nula (hipótese que assumimos ser verdadeira) e H1 é a hipótese alternativa (hipótese que queremos provar se é verdadeira).

Estatísticas observadas nos dados coletados para estudar a métrica invariante

Para realizar os testes de hipótese, podemos utilizar abordagens padrão sobre distribuições normais. Aqui iremos utilizar uma abordagem não paramétrica, cuja abordagem tem suas vantagens, pois, elas não dependem de muitas suposições da população subjacente e, portanto, podem ser usados em uma variedade maior de circunstâncias em comparação com os testes padrão.

Meu conselho, se você tiver tempo, utilize mais de uma abordagem e compare. É sempre uma boa prática conferir os resultados de outras formas para sermos mais assertivos.

O bootstrap, que é a abordagem não paramétrica utilizada aqui para testar as hipóteses, é muito utilizada para estimar distribuições de amostragem usando os dados realmente coletados para gerar novas amostras que poderiam ter sido coletadas hipoteticamente.

Não é escopo desse artigo detalhar o funcionamento do método. Para mais informações sobre o bootstrap consulte este artigo bem completo sobre o assunto.

Histograma das nossas simulações feitas com o bootstrap para a métrica invariante
Histograma simulando a hipótese nula para a métrica invariante
p-valor encontrado para a métrica invariante

A linha vermelha plotada, é a posição da diferença observada da média dos cookies do grupo experimental e do grupo de controle que calculamos acima (17,07).

O p-value indica a probabilidade de se observar uma diferença tão grande ou maior do que a que foi observada sob a hipótese nula, como o p-value obteve um valor maior que o nosso limiar de significância (0,05), então falhamos em rejeitar a hipótese nula, o que nesse caso, era o que queríamos. Podemos então seguir o experimento sem nos preocupar se os nossos dados estão com um viés de coleta, pois, o resultado sugeriu que os grupos estão equilibrados.

Vamos recapitular as etapas que realizamos para para analisar os resultados da métrica invariante (isso será muito parecido para os outros testes que faremos para as métricas de avaliação, em seguida):

  1. Calculamos a diferença observada da média de cookies entre o grupo de controle e experimental.
  2. Com o bootstrap, simulamos a distribuição amostral para a diferença das médias de cookies entre os dois grupos.
  3. Usamos essa distribuição amostral para simular a distribuição sob a hipótese nula, criando uma distribuição normal aleatória centrada em 0 e desvio-padrão igual ao desvio-padrão observado na distribuição amostral.
  4. Calculamos o p-value encontrando a proporção de valores na distribuição nula que eram maiores que nossa diferença observada.
  5. Usamos esse p-value para determinar a significância estatística de nossa diferença observada.

Verificação da métrica de avaliação I: taxa de download do software

Depois de realizar nossas verificações na métrica invariável, podemos realizar também, um teste de hipótese na métrica de avaliação: a taxa de downloads. Nesse caso, queremos ver que o grupo experimental tenha uma taxa de downloads significativamente maior que o grupo de controle, um teste unicaudal.

taxa de downloads = total de downloads / número de cookies

  • H0: média da taxa de downloads grupo de experimento-média da taxa de downloads grupo de controle <= 0
  • H1: média da taxa de downloads grupo de experimento-média da taxa de downloads grupo de controle > 0
Estatísticas observadas nos dados coletados para estudar a métrica de avaliação I
Histograma das nossas simulações feitas com o bootstrap para a métrica de avaliação I
Histograma simulando a hipótese nula para a métrica de avaliação I
p-valor encontrado para a métrica de avaliação I

Diferentemente da métrica invariante, o p-value para a métrica de avaliação I foi menor que o limiar de significância (0,05). Isso sugere que devemos rejeitar a hipótese nula, e consequentemente, aceitar a hipótese alternativa. Concluímos então, que o novo recurso testado, de fato fez com que as taxas de downloads do software aumentassem.

Verificação da métrica de avaliação II: taxa de obtenção de licenças para o software

Para essa outra métrica, também queremos ver que o grupo experimental tenha uma taxa de obtenção de licenças do software significativamente maior que o grupo de controle, novamente, um teste unicaudal.

taxa de obtenção de licenças = total de licenças / número de cookies

  • H0: média da taxa de licenças grupo de experimento-média da taxa de licenças grupo de controle <= 0
  • H1: média da taxa de licenças grupo de experimento-média da taxa de licenças grupo de controle > 0
Estatísticas observadas nos dados coletados para estudar a métrica de avaliação II
Histograma das nossas simulações feitas com o bootstrap para a métrica de avaliação II
Histograma simulando a hipótese nula para a métrica de avaliação II
p-valor encontrado para a métrica de avaliação II

Como na métrica invariante, e diferente da métrica de avaliação I, o p-value para a métrica de avaliação II foi maior que o limiar de significância (0,05). Portanto, devemos aceitar a hipótese nula, o que sugere que o novo recurso testado, não aumentou a taxa de obtenção de licenças para o software.

Conclusão

Vimos na prática se a empresa deve ou não lançar seu novo recurso. A métrica de avaliação I obteve um resultado significativo a favor da hipótese alternativa mas a métrica II não, ou seja, a mudança testada teve um forte efeito sobre o número de downloads mas não na obtenção das licenças. Se isso for suficiente para a empresa, então a substituição em favor do novo recurso testado deve ser feita.

Também, vimos diversos conceitos importantes para criar um experimento, mas ainda devemos nos aprofundar mais ainda. Encorajo você, como dever de casa, se aprofundar em outros assuntos complementares em um teste A/B que irão engrandecer seu conhecimento e a qualidade dos seus testes. Alguns desses assuntos seriam:

  • Falta de controle dos recursos: variáveis de confusão.
  • Verificar quão bem as conclusões de um experimento podem ser suportadas: verificar a validade.
  • Verificar efeitos sistemáticos que interferem na interpretação dos resultados: verificar vieses.
  • Considerar a ética em seu experimento.

O teste A/B é um método valioso e amplamente praticado na indústria, obter conclusões corroboradas por dados e estatística, sem dúvida, irá te proporcionar um retorno mais positivo nas suas decisões.

Enfim, vamos resumir nosso trabalho até aqui:

  • Dimensionamos o experimento e coletamos os dados necessários da amostra.
  • Verificamos a significância da métrica invariante.
  • Verificamos a significância das métricas de avaliação I e II.
  • Fizemos nossa análise prescritiva.

Espero que esse artigo te ajude nos seus projetos, fique a vontade para complementar e trazer novas intuições!

github com a implementação de todo o processo.

--

--

Pandas Couple
Pandas Couple

Written by Pandas Couple

Casal de Cientistas de Dados, contribuindo para a comunidade de Data Science.

No responses yet