Uma explicação intuitiva por que o procedimento Benjamini-Hochberg FDR funciona?

14

Existe uma maneira simples de explicar por que o procedimento de Benjamini e Hochberg (1995) realmente controla a taxa de descoberta falsa (FDR)? Esse procedimento é tão elegante e compacto e, no entanto, a prova do porquê ele funciona sob independência (aparecendo no apêndice do artigo de 1995 ) não é muito acessível.

Trisoloriansunscreen
fonte
4
na minha opinião, a prova do controle FDR apresentada aqui é mais intuitiva (observe que você está procurando a prova do teorema 2): citeseerx.ist.psu.edu/viewdoc/… Aí, o argumento se baseava em perceber que nós pode usar o teorema de parada opcional.
precisa saber é o seguinte
3
Há uma boa palestra de Benjamini no YouTube sobre o problema de múltiplas comparações e o histórico e o desenvolvimento lógico dos métodos de ajuste usados ​​para resolvê-lo.
Alexis
Ramdas et al. (2017) é um artigo recente muito bom que unifica e generaliza muitos métodos de teste múltiplos, e sua Proposição 1 (c) implica o Teorema 1 em Benjamini & Hochberg (1995). A prova apenas aplica o Lema 1 (c) para limitar a expectativa do FDP, e esse Lema em si é comprovado apenas por cálculos multivariados muito básicos em seu apêndice.
Daniel.s
2
Aqui está outra explicação intuitiva eu encontrei no canal de StatQuest no YouTube: youtube.com/watch?v=K8LQSvtjcEo
robertf

Respostas:

2

Aqui está um Rcódigo para gerar uma imagem. Ele mostrará 15 valores-p simulados plotados em relação à sua ordem. Então eles formam um padrão de ponto ascendente. Os pontos abaixo das linhas vermelha / roxa representam testes significativos no nível 0,1 ou 0,2. O FDR é o número de pontos pretos abaixo da linha dividido pelo número total de pontos abaixo da linha.

x0 <- runif(10)      #p-values of 10 true null hypotheses. They are Unif[0,1] distributed.
x1 <- rbeta(5,2,30)  # 5 false hypotheses, rather small p-values
xx <- c(x1,x0)
plot(sort(xx))
a0 <- sort(xx)
for (i in 1:length(x0)){a0[a0==x0[i]] <- NA}
points(a0,col="red")
points(c(1,15), c(1/15 * 0.1 ,0.1), type="l", col="red")
points(c(1,15), c(1/15 * 0.2 ,0.2), type="l", col="purple")

Espero que isso dê alguma idéia sobre a forma que a distribuição dos valores-p ordenados tem. O fato de as linhas estarem corretas e não, por exemplo, alguma curva em forma de parábola, tem a ver com o formato das distribuições de pedidos. Isso deve ser calculado explicitamente. De fato, a linha é apenas uma solução conservadora.

Horst Grünbusch
fonte
1
Você se importaria de adicionar set.seed(<some number>)e publicar a figura resultante para pessoas que não leem R?
gung - Restabelece Monica
Nenhum dos pontos abaixo da linha quando eu executar esse código ...
winni2k