![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Quando estamos mergulhados nos dados, procurando descobrir as joias escondidas do insight, muitas vezes nos encontramos fazendo malabarismos com um monte de hipóteses. Imagine que você está em uma festa onde todos os convidados usam máscara e está tentando descobrir quem está por trás de cada um. Quanto mais pessoas você adivinhar, maiores serão suas chances de cometer um erro. Esta é a dificuldade do problema de comparações múltiplas em estatística – para cada hipótese testada, outra surge, aumentando suas chances de estar errado pelo menos uma vez. Vamos quebrar esse conceito com um pouco de estilo Python e um pouco de humor para manter as coisas leves.
Imagine o seguinte: você está conduzindo experimentos ou pesquisas e tem uma lista completa de perguntas (hipóteses) que está tentando responder. O problema é que quanto mais perguntas você fizer, maior será a probabilidade de obter algumas respostas erradas (olá, erros do Tipo I !). É uma falta estatística conhecida como problema de comparações múltiplas.
Hipótese Nula (H0): A hipótese nula é sua suposição básica de que não há nada de especial acontecendo. É como olhar para um convidado da sua festa e dizer: “Você é apenas uma pessoa normal, não uma celebridade mascarada”. Quando testamos múltiplas hipóteses, basicamente verificamos um grupo de convidados para ver se algum deles é celebridade.
Erro Tipo I: Um erro Tipo I ocorre quando você pensa erroneamente que avistou uma celebridade, mas é apenas alguém com uma fantasia muito boa. No mundo das estatísticas, é quando você rejeita erroneamente a hipótese nula, pensando que encontrou um efeito ou diferença significativa quando não existe.
Taxa de erro familiar (FWER): FWER é como estar super preocupado em identificar erroneamente até mesmo um convidado regular como uma celebridade em sua festa. É a probabilidade de cometer pelo menos um erro Tipo I entre todos os testes que você está executando. Se você estiver testando 20 hipóteses, o FWER se preocupa em não cometer nenhum erro em todos os 20 testes. Correções como o ajuste de Bonferroni ajudam a controlar o FWER, tornando os critérios de significância mais rigorosos. Eles diminuem suas chances de cometer erros do Tipo I, garantindo que você não se envergonhe ao chamar a “celebridade” errada.
Taxa de descoberta falsa (FDR): FDR tem mais a ver com equilíbrio. É como dizer: “Tudo bem, posso chamar alguns convidados regulares de celebridades por engano, mas quero ter certeza de pegar o máximo possível de celebridades reais”. FDR controla a proporção esperada de falsas descobertas entre todas as descobertas que você faz. É um pouco mais descontraído em comparação com o FWER, permitindo que você se engane sobre alguns convidados serem celebridades, desde que esteja certo na maioria das vezes. Essa abordagem é útil quando você concorda em assumir alguns riscos para descobrir mais insights em potencial, reconhecendo que alguns alarmes falsos fazem parte do processo.
A correção Bonferroni é sua amiga ultracautelosa em uma festa, garantindo que você não cometa erros ao identificar celebridades na multidão. Exige que você tenha mais certeza sobre cada descoberta quando olha para muitas possibilidades ao mesmo tempo.
Como funciona:
A fórmula:
Onde α é o seu nível inicial de certeza (geralmente 0,05) e n é o número de hipóteses que você está testando.
Impacto:
Este método reduz muito a chance de falsas descobertas (erros do Tipo I), estabelecendo um padrão mais alto para o que conta como um resultado significativo. No entanto, seu rigor também pode impedir que você reconheça descobertas verdadeiras, como você não reconhece uma celebridade porque está muito focado em não cometer erros.
Em essência, a correção de Bonferroni prioriza evitar falsos positivos sob o risco de perder descobertas verdadeiras, tornando-a uma escolha conservadora em testes de hipóteses.
Vamos sujar as mãos com algum código Python para navegar por esse labirinto de múltiplas hipóteses sem perder a sanidade.
Em primeiro lugar, certifique-se de ter as ferramentas certas para o trabalho:
pip install numpy statsmodels
e vá em frente
from statsmodels.stats.multitest import multipletests import numpy as np # Imagine these are your p-values from testing various hypotheses p_values = [0.005, 0.0335, 0.098543, 0.00123] # Let's say we did 4 tests # Applying Bonferroni correction bonf_rejected, bonf_corrected, _, _ = multipletests(p_values, alpha=0.05, method='bonferroni') print("Bonferroni Approach") print(f"Rejected: {bonf_rejected}") print(f"Adjusted p-values: {bonf_corrected}\n")
Vamos detalhar o que obtivemos depois de aplicar a correção de Bonferroni aos seus valores p:
Hipóteses rejeitadas : A correção de Bonferroni nos diz quais hipóteses devem ser rejeitadas com base no limite corrigido. Aqui, a primeira ( True
) e a última ( True
) hipóteses são rejeitadas, o que significa que apresentam resultados estatisticamente significativos mesmo após ajuste para comparações múltiplas.
Valores p ajustados : Os valores p ajustados são [0.02, 0.134, 0.394172, 0.00492]
. O ajuste aumenta os valores p para controlar o risco aumentado de erros do Tipo I (falsos positivos) que acompanham vários testes.
Interpretação: Para valores de p [0.005, 0.00123]
(original): Após correção, são [0.02, 0.00492]
. Eles permanecem abaixo do limite de 0,05, indicando que os resultados são estatisticamente significativos
A correção de Benjamin-Hochberg atua como um guardião equilibrado em uma festa, gerenciando habilmente o risco de confundir convidados regulares com celebridades sem ser excessivamente rígido. Ele encontra um meio-termo, permitindo identificar descobertas verdadeiras com segurança e, ao mesmo tempo, aceitar um nível de risco gerenciável.
Como funciona:
Cenário: você está avaliando diversas descobertas, semelhante a identificar celebridades entre os foliões.
Estratégia de Benjamin-Hochberg: Este método ajusta os níveis de significância com base na classificação de cada valor p, permitindo uma abordagem mais flexível em comparação com a correção rígida de Bonferroni. Ele controla a Taxa de Falsas Descobertas (FDR), que é a proporção esperada de falsas descobertas entre todas as descobertas feitas.
O processo:
Classifique os valores P: do menor ao maior.
Ajustar níveis de significância: para cada hipótese, calcula um limite diferente, que se torna mais brando para hipóteses com valores de p menores. Isso se baseia em sua classificação e no número total de testes.
Impacto:
Ao concentrar-se no controlo do FDR, a correcção de Benjamin-Hochberg permite que mais descobertas sejam reconhecidas como significativas, aceitando que algumas possam ser falsos positivos, mas assegurando que a taxa global destes erros é mantida sob controlo. Essa abordagem é particularmente útil quando você está explorando muitas hipóteses e está disposto a tolerar um certo nível de falsas descobertas para não perder descobertas importantes.
Em resumo, a correção de Benjamin-Hochberg oferece um equilíbrio prático entre a descoberta de efeitos verdadeiros e o controle da taxa de falsos positivos, tornando-a uma ferramenta valiosa para pesquisadores que lidam com comparações múltiplas.
Python para o resgate:
# Benjamini-Hochberg correction for the brave from statsmodels.stats.multitest import multipletests import numpy as np # Imagine these are your p-values from testing various hypotheses p_values = [0.005, 0.0335, 0.098543, 0.00123] # Let's say we did 4 tests # Applying BH correction bh_rejected, bh_corrected, _, _ = multipletests(p_values, alpha=0.05, method='fdr_bh') print("Benjamini-Hochberg Approach") print(f"Rejected: {bh_rejected}") print(f"Adjusted p-values: {bh_corrected}")
Hipóteses rejeitadas : [True, True, False, True]
indica quais hipóteses foram rejeitadas com base nos valores de p ajustados. Neste caso, a 1ª, 2ª e 4ª hipóteses foram rejeitadas, sugerindo achados significativos nestes casos.
Valores de p ajustados : [0.01, 0.04466667, 0.098543, 0.00492]
correspondem aos níveis de significância ajustados de cada hipótese após a correção. Esses valores são comparados com o nível alfa (neste caso, 0,05) para determinar quais hipóteses são rejeitadas.
Interpretação: Para valores de p [0.005, 0.0335, 0.00123]
(original): Após correção, são [0.01, 0.04466667, 0.00492]
. Eles permanecem abaixo do limite de 0,05, indicando que os resultados são estatisticamente significativos
Primeira e quarta hipóteses (reconhecidas por ambos): São como as celebridades inconfundíveis que todos reconhecem, independentemente de quão cauteloso ou aventureiro você seja. Ambos os métodos concordam que essas descobertas são significativas, como identificar celebridades que não podem ser perdidas.
Segunda hipótese (reconhecida por BH, mas não por Bonferroni): Representa um nicho mais ou uma celebridade emergente em que o método BH, com sua mistura de cautela e otimismo, está disposto a apostar. Porém, o ultraconservador Bonferroni prefere ser cauteloso, perdendo a chance por medo de um resultado falso positivo.
Esta metáfora destaca as compensações inerentes entre sensibilidade e especificidade nas correções estatísticas e a importância de escolher a abordagem certa com base no contexto da sua pesquisa ou, na nossa analogia divertida, no tipo de festa a que você vai.
Considerar muitas hipóteses é como navegar em um campo minado de erros estatísticos. Mas com as ferramentas certas (obrigado, Python!) e estratégias (olá Bonferroni e Benjamin-Hochberg), você pode lidar com isso enquanto mantém sua integridade científica. Lembre-se de que se trata de equilibrar risco e recompensa. Independentemente de você estar se ressegurando ou em busca de ouro, compreender e corrigir múltiplas comparações tornará suas conclusões muito mais confiáveis. Tenha uma boa caça aos dados!