Desenho Experimental e Poder Estatístico
O que “Desenho Experimental e Poder” significa em aprendizado de máquina
Em aprendizado de máquina (machine learning), comparamos alternativas o tempo todo: duas arquiteturas de modelo (model architectures), dois templates de prompt (prompt templates), um novo atributo de ranqueamento (ranking feature) ou uma regra diferente de pós-processamento (post-processing rule). Desenho experimental (experiment design) é a disciplina de estruturar essas comparações para que as conclusões sejam válidas (sem viés, comparáveis) e úteis (sensíveis o bastante para detectar melhorias relevantes). Poder estatístico (statistical power) é a probabilidade de seu experimento detectar um efeito real quando ele existe.
Este tema fica na interseção entre a estatística clássica (classical statistics) e a avaliação prática em aprendizado de máquina:
- Avaliação offline (offline evaluation): comparar modelos em conjuntos de dados fixos (conjuntos de teste (test sets), dobras (folds) de validação cruzada (cross-validation), benchmarks rotulados por humanos (human-labeled benchmarks)).
- Avaliação online (online evaluation): executar experimentos controlados em produção (testes A/B (A/B tests)) para medir impacto no usuário.
Ambas são fáceis de errar — especialmente quando os efeitos são pequenos, as métricas (metrics) são ruidosas, os usuários são heterogêneos e você testa muitas ideias em paralelo.
Tópicos relacionados de avaliação:
- Escolher e interpretar métricas: Métricas (Metrics)
- Divisão robusta e evitar vazamento: Validação e Validação Cruzada (Validation & Cross-Validation)
- Entender onde as melhorias importam: Análise de Erros (Recortes) (Error Analysis (Slicing))
- Correção probabilística: Calibração (Calibration)
- Positivos raros e armadilhas de métricas: Desbalanceamento de Classes (Class Imbalance)
- Quantificar incerteza: Estimativa de Incerteza (Uncertainty Estimation)
Fundamentos estatísticos centrais
Vocabulário de teste de hipóteses (mínimo, mas essencial)
Ao comparar Controle (Control, A) vs Tratamento (Treatment, B), defina:
- Hipótese nula (null hypothesis) (H_0): nenhuma diferença (por exemplo, ( \mu_B - \mu_A = 0 )).
- Alternativa (alternative) (H_1): existe uma diferença (bicaudal (two-sided)) ou B é melhor (unicaudal (one-sided)).
- Erro do Tipo I (Type I error): falso positivo (afirmar melhoria quando não existe). Taxa = (\alpha) (frequentemente 0,05).
- Erro do Tipo II (Type II error): falso negativo (não detectar uma melhoria real). Taxa = (\beta).
- Poder: (1 - \beta). Alvos comuns: 0,8 ou 0,9.
- Tamanho de efeito (effect size): a diferença verdadeira que você quer detectar. Frequentemente expresso como:
- diferença absoluta (por exemplo, +0,3% de taxa de cliques (click-through rate, CTR)),
- mudança relativa (por exemplo, +2%),
- diferença padronizada (Cohen’s (d)).
Uma quantidade-chave no planejamento é o efeito mínimo detectável (Minimum Detectable Effect, MDE): o menor efeito verdadeiro que seu experimento provavelmente detectará com o (\alpha), o poder e o tamanho de amostra escolhidos.
O “triângulo” do poder: tamanho de efeito, ruído e tamanho de amostra
O poder aumenta quando:
- o efeito verdadeiro é maior,
- o ruído/variância de medição é menor,
- o tamanho de amostra é maior,
- o teste é mais eficiente (desenhos pareados (paired designs), redução de variância (variance reduction), melhores métricas).
Por isso, “entregamos uma melhoria, mas o teste A/B ficou estável” frequentemente é um problema de desenho, não um problema do modelo.
Desenhando comparações válidas
1) Defina o estimando: o que você está tentando medir?
Seja explícito sobre:
- População (population): quais usuários/consultas/exemplos?
- Métrica de desfecho (outcome metric): exatamente como é calculada e agregada.
- Horizonte temporal (time horizon): imediato vs longo prazo (efeitos de novidade, efeitos de aprendizado).
- Unidade de análise (unit of analysis): no nível de usuário, sessão, consulta, impressão.
Exemplo: para uma mudança em um sistema de recomendação (recommender), “taxa de cliques por impressão” e “taxa de cliques por usuário” respondem perguntas diferentes e têm variâncias diferentes.
2) Escolha uma unidade apropriada de randomização
Em testes online, randomize no nível que evita interferência:
- Randomização no nível de usuário é comum para evitar que um usuário veja ambas as variantes.
- No nível de sessão pode ser inválido se os usuários retornarem (contaminação cruzada (cross-contamination)).
- No nível de consulta pode ser apropriado para sistemas sem estado, mas cuidado com consultas repetidas e cache.
Se as observações são correlacionadas dentro de clusters (usuários, organizações, dispositivos), os erros-padrão (standard errors) devem considerar agrupamento (clustering); caso contrário, você superestimará a significância.
3) Controle confundimento com randomização e guardrails
Bons experimentos incluem:
- Atribuição aleatória (random assignment) com logging de atribuição e elegibilidade.
- Verificações de invariância/AA (AA checks):
- Um teste A/A (A/A test) (ambos os grupos idênticos) deve mostrar nenhuma diferença sistemática.
- Verifique invariantes (invariants) (por exemplo, contagens de atribuição, distribuição geográfica, mix de dispositivos).
- Métricas de guardrail (guardrail metrics): latência (latency), taxa de erro, custo, violações de segurança.
4) Evite “garimpar métricas”
Pré-registre (pre-register) (ao menos internamente) um plano simples de análise:
- métrica primária (primary metric) (usada para decisão),
- métricas secundárias (diagnóstico),
- recortes (slices) a examinar (Análise de Erros (Recortes)),
- regra de parada (stopping rule) (horizonte fixo vs sequencial),
- como você lida com dados ausentes (missing data)/valores atípicos (outliers).
Sem essa disciplina, você deriva para manipulação de p-valor (p-hacking): ficar recortando, espiando e mudando métricas até algo ficar significativo.
Poder e tamanho de amostra: padrões práticos de cálculo
Cálculos de poder exigem um modelo da variabilidade da métrica. Na prática, você frequentemente estima a variância a partir de dados históricos, um piloto (pilot) ou um teste A/A.
Métricas contínuas (continuous metrics) (médias): aproximação comum
Se sua métrica primária é uma média (por exemplo, receita média por usuário), e você assume comportamento aproximadamente normal via o teorema do limite central (central limit theorem), uma aproximação padrão para o tamanho de amostra por grupo (per-group sample size) é:
[ n \approx \frac{2 \sigma^2 (z_{1-\alpha/2} + z_{1-\beta})^2}{\Delta^2} ]
- (\sigma^2): variância da métrica na unidade de análise (frequentemente no nível de usuário)
- (\Delta): efeito mínimo detectável (diferença absoluta nas médias)
- (z_q): quantil da normal padrão
Proporções (proportions) (desfechos binários): conversão / taxa de sucesso (success rate)
Se a métrica é uma proporção (p) (por exemplo, taxa de conversão (conversion rate)), uma aproximação comum é:
[ n \approx \frac{2 , p(1-p), (z_{1-\alpha/2} + z_{1-\beta})^2}{\Delta^2} ]
Isso funciona melhor quando (p) não está extremamente próximo de 0 ou 1.
Exemplo: tamanho de amostra de teste A/B para conversão
Suponha conversão de baseline (p=0{,}10). Você quer efeito mínimo detectável (\Delta = 0{,}005) (0,5 ponto percentual). Use (\alpha=0{,}05) bicaudal e poder 0,8.
import mpmath as mp
alpha = 0.05
beta = 0.2
p = 0.10
delta = 0.005
z_alpha = mp.sqrt(2) * mp.erfinv(2*(1-alpha/2)-1)
z_beta = mp.sqrt(2) * mp.erfinv(2*(1-beta)-1)
n = (2 * p*(1-p) * (z_alpha + z_beta)**2) / (delta**2)
print(float(n))
Isso produz um tamanho de amostra por grupo na ordem de dezenas de milhares — um lembrete de que pequenos ganhos em métricas ruidosas de usuário exigem escala ou redução de variância.
Desenhos pareados: grandes ganhos de poder na avaliação offline
Comparações offline em aprendizado de máquina muitas vezes são pareadas: cada exemplo é avaliado por ambos os modelos. Esse pareamento cancela muita variância.
Uma abordagem prática: calcule diferenças por exemplo em perda (loss)/pontuação (score) e rode um teste pareado (ou intervalos de confiança via bootstrap):
- Para perda logarítmica (log loss) / erro quadrático médio (mean squared error, MSE): teste t pareado (paired t-test) nas diferenças de perda por exemplo.
- Para acurácia (accuracy) nos mesmos exemplos: teste de McNemar (McNemar’s test) (desfechos binários pareados).
- Para área sob a curva (Area Under the Curve, AUC) / métricas de ranqueamento (ranking metrics): bootstrap ou testes de permutação (permutation tests).
Desenhos pareados geralmente dominam desenhos não pareados em poder para trabalho offline.
Experimentos offline: padrões e armadilhas comuns em aprendizado de máquina
Conjuntos de teste fixos vs validação cruzada
Um único conjunto de teste pode ser enganoso quando:
- os dados são pequenos,
- você se adapta repetidamente ao conjunto de teste (vazamento implícito),
- o desempenho varia por divisão.
Use estratégias robustas de Validação e Validação Cruzada, incluindo validação cruzada aninhada (nested CV) quando o ajuste de hiperparâmetros (hyperparameter tuning) é intenso.
Implicação de poder: validação cruzada repetida reduz a variância da sua estimativa de desempenho, mas introduz correlações. Trate corretamente os resultados por dobra (não finja que dobras são amostras independentes de novos conjuntos de dados).
Aleatoriedade de treinamento: repetições importam
Modelos modernos têm variância devido a:
- inicialização aleatória (random initialization),
- ordem dos dados / aumento de dados (data augmentation),
- kernels de hardware não determinísticos (nondeterministic hardware kernels).
Se você compara A vs B com uma execução de treino cada, pode confundir ruído com sinal. Um desenho mais confiável:
- execute cada configuração (k) vezes com sementes aleatórias (seeds) diferentes,
- compare distribuições (pareadas por semente quando possível),
- reporte média ± intervalo de confiança.
Comparações múltiplas no desenvolvimento de modelos
Se você testa 50 variantes de modelo e escolhe o melhor score no teste, a melhoria reportada fica enviesada de forma otimista.
Mitigações:
- Mantenha um conjunto de holdout (holdout set) verdadeiro usado raramente.
- Use validação cruzada aninhada para seleção.
- Ajuste para testes múltiplos (multiple testing) (Bonferroni/Holm) ao fazer alegações formais.
- Prefira controle da taxa de descobertas falsas (False Discovery Rate, FDR) (Benjamini–Hochberg) ao explorar muitas métricas/recortes.
Exemplo: intervalo de confiança por bootstrap para diferença de AUC
import numpy as np
from sklearn.metrics import roc_auc_score
def auc_diff_bootstrap(y, sA, sB, n_boot=5000, seed=0):
rng = np.random.default_rng(seed)
n = len(y)
diffs = []
for _ in range(n_boot):
idx = rng.integers(0, n, size=n) # bootstrap resample
diffs.append(roc_auc_score(y[idx], sB[idx]) - roc_auc_score(y[idx], sA[idx]))
diffs = np.array(diffs)
return diffs.mean(), np.quantile(diffs, [0.025, 0.975])
# y: labels, sA/sB: scores from model A/B on same examples
Isso respeita o pareamento porque cada amostra de bootstrap reamostra exemplos conjuntamente para A e B.
Experimentos online (testes A/B) para sistemas de aprendizado de máquina
Testes online frequentemente são o árbitro final porque medem desfechos do usuário, mas introduzem complexidade adicional.
1) Interferência e efeitos de rede
Suposição por trás de muitos testes simples: o desfecho de um usuário não é afetado pela atribuição de tratamento de outros. Isso falha em:
- marketplaces,
- redes sociais,
- espaços de trabalho multiusuário.
Nesses casos, você pode precisar de randomização por cluster (cluster randomization) (por exemplo, por região ou organização) e amostras maiores, porque o tamanho efetivo da amostra é menor.
2) Novidade, ramp-up e carryover
O comportamento pode mudar porque a UI/sistema mudou (novidade), ou os usuários precisam de tempo para se adaptar.
Técnicas práticas:
- rodar tempo suficiente para cobrir ciclos semanais,
- analisar tendências ao longo do tempo,
- considerar períodos de washout para carryover,
- aumentar gradualmente com monitoramento.
3) Redução de variância: CUPED e covariáveis
CUPED (Experimento controlado usando dados pré-experimento — Controlled-experiment Using Pre-Experiment Data) usa comportamento do período prévio como uma covariável (covariate) para reduzir a variância de métricas no nível do usuário.
Intuição: se “gasto do usuário na semana passada” prediz “gasto do usuário nesta semana”, ajustar por isso torna o experimento mais sensível.
Isso pode reduzir drasticamente o tamanho de amostra necessário para indicadores-chave de desempenho (key performance indicators, KPIs) no nível do usuário.
4) Análise por gatilho para exposição esparsa
Em funcionalidades de aprendizado de máquina como “novo modelo de ranqueamento”, nem todo usuário/consulta pode ser afetado. Se você analisa todo mundo, dilui o efeito.
Análise por gatilho (triggered analysis) restringe às unidades que foram de fato elegíveis/expostas, mas deve ser definida com cuidado para evitar viés (a exposição não deve ser um desfecho pós-tratamento (post-treatment outcome)).
Teste sequencial e “espiar”
Olhar os resultados repetidamente e parar quando p < 0,05 infla o erro do Tipo I.
Soluções:
- Horizonte fixo (fixed-horizon): comprometa-se com um tamanho de amostra/duração e analise uma vez.
- Métodos sequenciais em grupos (group sequential methods): gasto de alfa (alpha-spending) (Pocock, O’Brien–Fleming).
- Inferência sempre válida (always-valid inference) (por exemplo, certos métodos não paramétricos (nonparametric) ou baseados em martingales (martingale-based)).
- Monitoramento bayesiano (Bayesian monitoring): pode ser mais natural para monitoramento contínuo, mas você ainda precisa de limiares de decisão fundamentados.
Se sua organização “espia” rotineiramente, adote um arcabouço sequencial em vez de fingir que não faz isso.
Avaliação humana e considerações específicas de modelos de linguagem grandes
Muitos sistemas de IA (busca, sumarização, assistentes) dependem de julgamentos humanos (human judgments) ou preferências pareadas (pairwise preferences).
Unidade experimental e dependência
Se o mesmo avaliador (rater) julga muitos itens, as avaliações são correlacionadas. Opções:
- bloquear por avaliador (atribuição balanceada),
- modelos de efeitos mistos (mixed-effects models) (efeitos aleatórios do avaliador (random rater effects)),
- agregar por item com múltiplos avaliadores.
Testes de preferência pareada
Um desenho comum: mostrar saídas de A e B para o mesmo prompt e perguntar qual é melhor.
- Desfecho: proporção de vitórias/derrotas/empates.
- Use um teste binomial (binomial test) ou modelo logístico (logistic model); compute poder com base na taxa de vitória (win rate) esperada (por exemplo, 55% vs 50%).
- Garanta cegamento (blinding) e ordem randomizada para reduzir viés.
Confiabilidade entre avaliadores
Baixo acordo aumenta o ruído e reduz o poder. Melhore com:
- rubricas (rubrics) mais claras,
- exemplos de calibração,
- treinamento e qualificação de avaliadores,
- arbitragem (adjudication) para discordâncias.
Múltiplas métricas, recortes e tomada de decisão
Experimentos em aprendizado de máquina raramente têm uma única métrica. Você pode acompanhar:
- primária: taxa de sucesso da tarefa
- guardrails: latência, custo, segurança
- diagnóstico: calibração (Calibração), métricas por subgrupo (subgroup metrics) (Análise de Erros (Recortes))
Práticas-chave:
- Pré-declare a métrica primária para preservar interpretabilidade.
- Corrija para comparações múltiplas ao fazer alegações formais em muitas métricas/recortes.
- Trate achados de recortes como hipóteses, a menos que estejam dimensionados em poder e pré-planejados.
Modos comuns de falha (e como evitá-los)
Experimentos com pouco poder
Sintomas: muitos “nenhuma mudança significativa”, intervalos de confiança (confidence intervals) amplos, conclusões oscilantes.
Correções:
- aumentar tamanho de amostra/duração,
- reduzir variância (métrica melhor, CUPED, pareamento),
- mirar tamanhos de efeito maiores (entregar mudanças maiores),
- focar em uma métrica primária mais alinhada.
Comparações enviesadas
Causas:
- vazamento na avaliação offline,
- atribuição não aleatória,
- mudança de elegibilidade ao longo do tempo,
- filtragem pós-tratamento (post-treatment filtering) (por exemplo, analisar apenas usuários que clicaram).
Correções:
- higiene rigorosa de divisão (Validação e Validação Cruzada),
- verificações de invariantes e testes A/A,
- definição cuidadosa de populações por gatilho.
Paradoxo de Simpson e armadilhas de agregação
Uma melhoria global pode esconder regressões em coortes importantes (ou vice-versa).
Correção:
- planeje recortes-chave (usuários novos vs recorrentes, localidades, tipos de dispositivo),
- interprete recortes com incerteza e multiplicidade (multiplicity) em mente.
Um checklist prático de fluxo de trabalho
Etapa 1: Declare uma hipótese falsificável
Exemplo: “Novo reclassificador (reranker) aumenta sessões de busca bem-sucedidas em ≥0,3% sem aumentar a latência em >2%.”
Etapa 2: Escolha métricas e unidades
- Métrica primária e sua unidade de agregação (usuário/sessão/consulta).
- Guardrails.
- Plano de logging (logging plan).
Etapa 3: Estime variância e planeje poder
- Use dados históricos ou teste A/A para estimar variância.
- Decida (\alpha), poder-alvo e efeito mínimo detectável.
- Calcule tamanho de amostra; ajuste para agrupamento e ausência esperada.
Etapa 4: Comprometa-se com um plano de análise
- Horizonte fixo ou método sequencial.
- Tratamento de valores atípicos e elegibilidade.
- Abordagem para comparações múltiplas, se necessário.
Etapa 5: Rode verificações de validação
- Balanceamento da randomização.
- Invariantes.
- Qualidade dos dados.
Etapa 6: Analise com incerteza, não apenas valores-p
- Reporte intervalos de confiança (ou intervalos críveis (credible intervals) bayesianos).
- Avalie guardrails e recortes.
- Tome uma decisão consistente com os critérios previamente declarados.
Como isso se conecta à avaliação mais ampla em aprendizado de máquina
Desenho experimental e poder fornecem a sustentação do “método científico” para o restante da avaliação:
- Escolher uma métrica é inútil se você não consegue detectar uma mudança relevante: Métricas
- Conclusões experimentais robustas dependem de divisão correta e de evitar vazamento: Validação e Validação Cruzada
- Valor no mundo real frequentemente está em subpopulações, mas recortes precisam ser analisados com cuidado: Análise de Erros (Recortes)
- Muitos sistemas modernos são probabilísticos; calibrar desfechos afeta tanto a escolha de métricas quanto a variância: Calibração
- Desfechos desbalanceados mudam a variância e o significado das melhorias: Desbalanceamento de Classes
- Quantificar incerteza sustenta decisões melhores do que apenas estimativas pontuais: Estimativa de Incerteza
Um experimento bem desenhado não responde apenas “B é melhor do que A?”. Ele responde de forma confiável, eficiente e de um modo que sustenta decisões corretas de produto e pesquisa.