Estimação e Teste de Hipóteses
Por que estimação e teste de hipóteses importam em IA/AM
O aprendizado de máquina (machine learning) trata fundamentalmente de aprender quantidades desconhecidas a partir de dados: parâmetros de modelos, perdas esperadas, efeitos causais de intervenções e diferenças de desempenho entre sistemas. Estimação pergunta “qual é o valor de uma quantidade desconhecida?” e teste de hipóteses pergunta “a evidência é forte o suficiente para descartar uma explicação concorrente?”
Na prática, essas ferramentas aparecem em:
- Treinamento e avaliação: estimar desempenho de generalização a partir de conjuntos de teste finitos; comparar modelos.
- Testes A/B e experimentos online: decidir se uma mudança no produto ou no modelo melhora uma métrica.
- AM científico e questões causais: determinar se um efeito observado é real versus ruído.
- AM interpretável e regressão: testar se o coeficiente de uma variável difere de zero (com ressalvas importantes).
Este artigo foca em estimação pontual/intervalar, p-valores e armadilhas comuns. Para perspectivas complementares, veja Inferência Bayesiana, Critérios de Informação, Regras de Pontuação Apropriadas e Variáveis Aleatórias e Distribuições.
Estimação: de dados a quantidades desconhecidas
Estimandos, estimadores e estimativas
Ajuda distinguir:
- Estimando: a quantidade verdadeira que você deseja (por exemplo, a acurácia média populacional de um classificador).
- Estimador: uma regra que mapeia dados para um valor (por exemplo, a acurácia média amostral em um conjunto de teste).
- Estimativa: a saída realizada para o seu conjunto de dados específico.
Exemplo: seja (X_1,\dots,X_n) uma amostra i.i.d. de uma distribuição com média (\mu).
- Estimando: (\mu)
- Estimador: (\hat{\mu} = \frac{1}{n}\sum_i X_i)
- Estimativa: o valor numérico calculado a partir das amostras observadas
Estimação pontual e propriedades comuns
Uma estimativa pontual é um único “melhor palpite” de um estimando.
Propriedades-chave (perspectiva frequentista):
- Viés: (\mathrm{Bias}(\hat{\theta}) = \mathbb{E}[\hat{\theta}] - \theta)
Estimadores não viesados nem sempre são os melhores — estimadores viesados podem ter variância menor e erro total menor. - Variância: quanto (\hat{\theta}) flutua entre amostras repetidas.
- Erro quadrático médio (MSE):
[ \mathrm{MSE}(\hat{\theta}) = \mathbb{E}\big[(\hat{\theta}-\theta)^2\big] = \mathrm{Var}(\hat{\theta}) + \mathrm{Bias}(\hat{\theta})^2 ] - Consistência: (\hat{\theta}) converge para (\theta) quando (n\to\infty).
- Eficiência: entre estimadores não viesados, ter variância mínima (depende do contexto).
Em AM, o trade-off viés–variância (bias–variance trade-off) é frequentemente discutido para preditores, mas a mesma ideia se aplica a estimadores: um pouco de viés (por exemplo, regularização) pode reduzir a variância o suficiente para melhorar a acurácia.
Máxima verossimilhança (MLE) e suas conexões com AM
A estimação por máxima verossimilhança (MLE, maximum likelihood estimation) escolhe parâmetros (\theta) que maximizam a verossimilhança (p(x\mid \theta)), ou equivalentemente maximizam a log-verossimilhança:
[ \hat{\theta}{\text{MLE}} = \arg\max\theta \sum_{i=1}^n \log p(x_i\mid \theta) ]
Isso está diretamente conectado ao treinamento de muitos modelos de AM:
- A MLE da regressão logística corresponde a minimizar entropia cruzada.
- A MLE da regressão linear Gaussiana corresponde a mínimos quadrados (sob ruído normal).
- Muitos objetivos de aprendizado profundo são (regularizados) log-verossimilhanças negativas.
Um resultado comum para amostras grandes: sob condições de regularidade, a MLE é assintoticamente normal: [ \hat{\theta} \approx \mathcal{N}\left(\theta,\ I(\theta)^{-1}\right) ] em que (I(\theta)) é a informação de Fisher. Essa aproximação sustenta muitos erros padrão e intervalos de confiança.
Regularização e MAP (uma ponte para o pensamento bayesiano)
Adicionar regularização L2 a um objetivo de verossimilhança frequentemente coincide com a estimação a posteriori máxima (MAP, maximum a posteriori) sob um prior Gaussiano. Por exemplo:
- Log-verossimilhança negativa + (\lambda |\theta|_2^2)
corresponde a - log da posteriori com prior (\theta \sim \mathcal{N}(0, \sigma^2 I))
Essa conexão é uma das razões pelas quais ideias bayesianas aparecem naturalmente em AM. Veja Inferência Bayesiana para um tratamento completo.
Estimação intervalar: quantificando incerteza
Uma estimativa pontual sozinha oculta a incerteza. Estimação intervalar fornece um intervalo de valores plausíveis.
Intervalos de confiança (frequentista)
Um intervalo de confiança (CI, confidence interval) de (95%) é um procedimento de intervalo aleatório que, sob amostragem repetida, contém o parâmetro verdadeiro em (95%) das vezes.
Importante: não é correto dizer “há 95% de probabilidade de o valor verdadeiro estar neste intervalo específico calculado” (essa afirmação é bayesiana). A afirmação frequentista é sobre a cobertura de longo prazo do procedimento.
Exemplo: CI para uma média (aproximadamente normal)
Se (X_i) são i.i.d. com média (\mu) e variância desconhecida, um CI clássico é: [ \bar{X} \pm t_{n-1,,0.975}\ \frac{s}{\sqrt{n}} ] em que (s) é o desvio padrão amostral e (t) é um quantil t de Student.
Em avaliação de AM, se você calcula uma métrica (digamos, log loss) por exemplo e trata as perdas por exemplo como i.i.d., esse CI é frequentemente usado como uma estimativa grosseira de incerteza para a perda esperada.
Ressalva: suposições i.i.d. podem falhar (dados correlacionados, usuários repetidos, séries temporais, amostras em clusters), o que pode tornar os CIs estreitos demais.
Intervalos por bootstrap (amplamente úteis em AM)
Quando erros padrão analíticos são difíceis, o bootstrap é uma alternativa prática:
- Reamostre o conjunto de dados com reposição muitas vezes.
- Calcule o estimador em cada reamostragem.
- Use a distribuição empírica para formar um intervalo (percentil, BCa etc.).
Bootstrap é frequentemente usado para:
- Intervalos de confiança de AUC
- Diferenças de desempenho de modelos
- Métricas complexas (F1, erros de calibração) em que as fórmulas são complicadas
Esboço em estilo Python:
import numpy as np
def bootstrap_ci(metric_fn, y_true, y_pred, B=2000, alpha=0.05, rng=None):
rng = np.random.default_rng(rng)
n = len(y_true)
stats = []
for _ in range(B):
idx = rng.integers(0, n, size=n)
stats.append(metric_fn(y_true[idx], y_pred[idx]))
lo = np.quantile(stats, alpha/2)
hi = np.quantile(stats, 1 - alpha/2)
return lo, hi
Cuidados práticos:
- Use reamostragem pareada ao comparar dois modelos nos mesmos exemplos (reamostre os índices uma vez e avalie ambos).
- Considere variantes de bootstrap por blocos para dados em cluster ou dependentes no tempo.
Intervalos de predição vs intervalos de confiança
Um CI é sobre um parâmetro desconhecido (por exemplo, a média). Um intervalo de predição é sobre uma nova observação futura (por exemplo, o próximo resultado) e é necessariamente mais amplo porque inclui ruído irredutível.
Em AM, “incerteza” pode significar:
- incerteza nos parâmetros (epistêmica)
- incerteza nos resultados (aleatória)
- incerteza em estimativas de desempenho devido a conjuntos de teste finitos
Seja explícito sobre qual delas você quer dizer.
Teste de hipóteses: formalizando “isso é real?”
A configuração básica
Um teste de hipóteses compara:
- Hipótese nula (H_0): afirmação padrão/sem efeito (por exemplo, os modelos A e B têm a mesma acurácia esperada).
- Alternativa (H_1): afirmação concorrente (por exemplo, B é melhor que A).
Você escolhe:
- uma estatística de teste (T) (uma função dos dados),
- uma distribuição de referência para (T) sob (H_0),
- um nível de significância (\alpha) (por exemplo, 0,05), a taxa tolerada de erro do Tipo I.
Erros Tipo I/Tipo II, poder e por que “não significativo” não é “sem efeito”
- Erro do Tipo I: rejeitar (H_0) quando ela é verdadeira (falso positivo), probabilidade (\alpha).
- Erro do Tipo II: falhar em rejeitar (H_0) quando (H_1) é verdadeira (falso negativo), probabilidade (\beta).
- Poder: (1-\beta), probabilidade de detectar um efeito de um dado tamanho.
Em experimentos de AM com amostras pequenas (usuários limitados, conjuntos de teste rotulados limitados), baixo poder é comum. Um resultado não significativo pode simplesmente significar que o estudo teve pouco poder.
p-valores: definição e interpretação correta
O p-valor (p-value) é: [ p = \Pr(T \ge T_{\text{obs}} \mid H_0) ] (ou “tão extremo ou mais extremo que o observado”, dependendo do teste).
Interpretação correta:
- Assumindo que (H_0) é verdadeira e que as suposições do teste se mantêm, o p-valor é a probabilidade de observar uma estatística de teste ao menos tão extrema quanto a que você observou.
Interpretações incorretas comuns:
- “A probabilidade de (H_0) ser verdadeira é (p).” (Não: p-valores não são probabilidades posteriores.)
- “Há probabilidade (1-p) de a alternativa ser verdadeira.” (Também não.)
- “Um p-valor menor significa um efeito maior.” (Não necessariamente; (p) depende do tamanho da amostra e da variância.)
Exemplo prático: teste A/B para uma taxa de conversão
Suponha que a variante A tenha (n_A) usuários e (k_A) conversões, e a variante B tenha (n_B), (k_B). Você pode testar:
- (H_0: p_A = p_B)
- (H_1: p_A \ne p_B)
Uma abordagem comum é um teste z para diferença de proporções (sob aproximações assintóticas) ou métodos exatos/binomiais.
Mas, em testes reais de produto com AM, armadilhas incluem:
- usuários não são independentes (efeitos de rede, exposições repetidas),
- métricas têm caudas pesadas (receita),
- “espiar”/parar cedo inflaciona falsos positivos a menos que se usem métodos sequenciais.
Testando diferenças entre modelos offline: use desenhos pareados
Ao comparar dois modelos no mesmo conjunto de teste, os dados são pareados. O pareamento reduz a variância e altera o teste correto.
Exemplos:
- Para acurácia nos mesmos exemplos: o teste de McNemar costuma ser apropriado (foca nas discordâncias).
- Para perdas contínuas por exemplo: um teste t pareado (ou Wilcoxon signed-rank) nas diferenças por exemplo pode ser usado.
- Para comparações de AUC: métodos como DeLong ou bootstrap são comuns.
Esboço: teste pareado nas diferenças de perdas por exemplo
import numpy as np
from scipy import stats
diff = loss_modelB - loss_modelA # per-example
tstat, p = stats.ttest_1samp(diff, popmean=0.0)
Cuidados:
- Perdas por exemplo podem ser correlacionadas (por exemplo, múltiplas amostras do mesmo usuário); use métodos robustos a cluster ou agregue por usuário primeiro.
- Se você testou muitos checkpoints, hiperparâmetros ou conjuntos de teste, o p-valor deixa de ser válido sem contabilizar a seleção.
Armadilhas comuns em testes (especialmente relevantes para IA/AM)
1) Comparações múltiplas e “maldição do vencedor”
Se você testa muitas hipóteses, algumas parecerão significativas por acaso.
Cenários típicos em AM:
- Tentar muitos modelos/configurações de hiperparâmetros e reportar o melhor p-valor
- Avaliar muitas métricas e reportar as significativas
- Muitas análises por subgrupos (“funciona para o segmento X!”)
Mitigações:
- Pré-especifique métricas e hipóteses primárias.
- Aplique correções (por exemplo, Bonferroni, Holm) ou controle a taxa de descobertas falsas (Benjamini–Hochberg).
- Use um conjunto de retenção (holdout) para confirmação final que não foi tocado durante o desenvolvimento.
2) Parada opcional (“espiada”) em experimentos online
Checar p-valores repetidamente durante um teste A/B e parar quando (p<0{,}05) inflaciona falsos positivos.
Mitigações:
- Comprometa-se com um tamanho de amostra fixo (análise de poder).
- Use métodos de teste sequencial (por exemplo, alpha-spending, SPRT) ou monitoramento bayesiano com regras claras de decisão (veja Inferência Bayesiana).
3) Vazamento de dados e avaliação adaptativa
Se o conjunto de teste influencia a seleção do modelo, seus resultados de “teste” ficam enviesados para cima e testes clássicos tornam-se inválidos.
Exemplos:
- Selecionar hiperparâmetros com base no desempenho no conjunto de teste
- Rodar repetidamente no mesmo benchmark e ajustar a ele (overfitting em leaderboard)
Mitigações:
- Use separação treino/validação/teste, ou validação cruzada aninhada.
- Mantenha um conjunto final de avaliação realmente intocado.
- Prefira reportar incerteza de validação cruzada com cuidado (observando a dependência entre folds).
4) Suposições violadas (independência, distribuição idêntica, normalidade)
Muitos testes assumem amostras i.i.d. e às vezes normalidade aproximada.
Violações comuns em AM:
- Deriva temporal (descasamento de distribuição treino/teste)
- Agrupamento por usuário (múltiplos eventos por usuário)
- Correlação espacial (pixels/patches vizinhos)
- Desfechos de cauda pesada (latência, receita)
Mitigações:
- Agregue na unidade independente (por exemplo, métrica por usuário).
- Use bootstrap por blocos / erros padrão robustos a cluster.
- Use testes de permutação (testes de randomização) quando a permutabilidade (exchangeability) for plausível.
5) Significância estatística vs significância prática
Um efeito minúsculo pode ser estatisticamente significativo com amostras enormes, mas irrelevante na prática.
Sempre reporte:
- tamanhos de efeito (absolutos e relativos)
- intervalos de confiança para tamanhos de efeito
- trade-offs de custo/benefício e impacto operacional
Exemplo de formulação:
- “CTR melhorou em +0,12 pontos percentuais (IC 95%: +0,03 a +0,21), p=0,01” Isso comunica magnitude e incerteza, não apenas um cruzamento de limiar.
6) Dependência excessiva de “p < 0,05”
O limiar 0,05 é uma convenção, não uma lei. Pensamento binário (“significativo / não significativo”) descarta informação.
Melhor prática:
- Trate p-valores como uma peça de evidência.
- Combine com CIs, tamanhos de efeito, plausibilidade a priori e contexto de decisão.
- Considere abordagens de teoria da decisão quando os custos diferem (falso positivo vs falso negativo).
7) Testar após seleção do modelo (double dipping)
Se você escolhe um modelo porque ele pareceu melhor nos mesmos dados usados para o teste, os p-valores e CIs nominais ficam otimistas demais.
Isso é comum em:
- seleção de variáveis seguida de teste de coeficientes em regressão
- tentar muitas arquiteturas e então “confirmar” superioridade no mesmo teste
Mitigações:
- Use validação aninhada ou um novo conjunto de retenção para o teste final.
- Use métodos de inferência seletiva se você precisar testar após seleção (tópico avançado).
Orientação prática: como reportar e usar essas ferramentas em trabalhos de AM
Prefira intervalos e tamanhos de efeito como saídas padrão
Ao comparar modelos, um bom relatório padrão inclui:
- diferença média da métrica (B − A)
- um IC de 95% para essa diferença (frequentemente via bootstrap pareado)
- p-valor se for necessária uma decisão formal e as suposições forem atendidas
- tamanho da amostra e unidade de análise (por exemplo, por exemplo, por usuário, por sessão)
Use a unidade correta de independência
Se seus dados são “eventos por usuário”, a independência geralmente é mais próxima do nível de usuário do que do nível de evento. Agregue métricas por usuário antes de testar, ou use métodos com cluster.
Alinhe testes com métricas e funções de perda
Muitas métricas de AM não são suaves nem normalmente distribuídas (F1, máximo, quantis). Bootstrap e testes de permutação frequentemente são mais robustos do que aplicar um teste t sem checar suposições.
Distinga avaliação offline de impacto online
Diferenças em métricas offline podem não se traduzir em melhorias online devido a:
- ciclos de feedback, mudanças de UI, adaptação do usuário
- mudança de distribuição
- métricas objetivo diferentes
Use estimação/testes offline para iteração, mas valide com experimentos online bem desenhados quando viável.
Conecte com seleção de modelos e pontuação
Teste de hipóteses não é o mesmo que seleção de modelos. Para comparar modelos não aninhados, abordagens como desempenho com validação cruzada e critérios como AIC/BIC (veja Critérios de Informação) podem ser mais apropriadas do que testes repetidos de hipótese nula. Para previsões probabilísticas, a avaliação deve usar métricas apropriadas (veja Regras de Pontuação Apropriadas).
Resumo
- Estimação pontual fornece um único valor para uma quantidade desconhecida; estimação intervalar quantifica a incerteza (frequentemente mais informativa).
- Intervalos de confiança descrevem a cobertura de longo prazo de um procedimento, não a probabilidade de o parâmetro estar no seu intervalo específico.
- p-valores medem o quão surpreendentes os dados são sob (H_0); eles não dizem diretamente (P(H_0 \mid \text{dados})) e são sensíveis ao tamanho da amostra e às suposições.
- Armadilhas comuns em IA/AM incluem comparações múltiplas, parada opcional, vazamento de dados, violações de suposições e confundir significância estatística com significância prática.
- A melhor prática é reportar tamanhos de efeito + incerteza, usar métodos pareados/robustos a cluster quando apropriado e tratar testes de hipóteses como ferramentas para tomada de decisão — não como substituto de um bom desenho experimental.