Em resumo: features de IA raramente são lançadas com randomização: saem em ondas, por workspace, junto com outras mudanças e eventos sazonais. Comparar quem recebeu com quem não recebeu mistura o efeito da feature com todo o resto. Difference-in-differences é o método que separa o efeito real nesse cenário.
O artigo do freeCodeCamp dá nome ao problema: a armadilha do calendário de rollout. A feature nova de IA sai para a primeira onda de workspaces na semana 20. Na mesma terça-feira, sai um redesign de onboarding. E a semana 20 coincide com um pico trimestral de engajamento. Comparar os grupos depois disso é medir três coisas ao mesmo tempo e chamar o resultado de efeito da IA.
Por que o teste A/B quebra em rollout de IA
O teste A/B pressupõe que a única diferença entre os grupos é o tratamento, garantida pela randomização. Rollout em ondas não randomiza: a primeira onda é escolhida por critérios como tamanho do cliente, região ou disposição para testar, que já diferenciam os grupos antes de qualquer feature. Some lançamentos simultâneos e sazonalidade, e a comparação simples perde a validade causal.
Como difference-in-differences resolve
Em vez de comparar os grupos em um momento, o difference-in-differences compara a mudança ao longo do tempo em cada grupo. Se tratados e controle evoluíam em paralelo antes do lançamento, a diferença entre as trajetórias depois do lançamento é o efeito estimado da feature. O pressuposto central, tendências paralelas, é testável com os dados anteriores ao rollout.
O artigo traz a implementação completa em Python, do DiD 2×2 simples à regressão com efeitos fixos, e o que fazer quando o pressuposto de paralelismo falha.
Minha leitura
Estamos no momento em que toda empresa lança feature de IA em ondas e precisa defender o resultado para a diretoria. Quem mede com comparação ingênua vai superestimar o efeito e tomar decisão de investimento em cima de número inflado. E o pior: o número inflado é sempre o mais fácil de apresentar. O difference-in-differences não é sofisticação estatística de luxo, é o mínimo para a conversa ser honesta. Se o seu time mede rollout como se fosse teste A/B, este artigo é a correção de rota.
Perguntas frequentes sobre difference-in-differences
O que é difference-in-differences?
Um método de inferência causal que compara a mudança ao longo do tempo entre grupo tratado e controle, em vez de comparar os dois em um único momento. Permite estimar o efeito de uma mudança mesmo sem randomização.
Quando o teste A/B não funciona em lançamentos de IA?
Quando o lançamento é feito em ondas escolhidas por critério, e não por sorteio. Sem randomização, os grupos já diferem antes da feature, e lançamentos simultâneos e sazonalidade contaminam a comparação.
Qual é o pressuposto central do difference-in-differences?
O de tendências paralelas: antes do lançamento, os dois grupos precisam evoluir em trajetórias paralelas. O pressuposto é testável com os dados do período anterior.
Fontes
Why A/B Testing Breaks in AI Rollouts and How Difference-in-Differences Fixes It, freeCodeCamp (em inglês, com código em Python). Traduzido e adaptado pela CRO Brasil.