Benjamini-Hochberg FDR 程序为何有效的直观解释?

机器算法验证 直觉 错误发现率 教学
2022-01-30 06:18:09

有没有一种简单的方法来解释为什么 Benjamini 和 Hochberg (1995) 的程序实际上控制了错误发现率 (FDR)?这个过程是如此优雅和紧凑,但它为什么在独立下工作的证据(出现在他们1995 年论文的附录中)并不是很容易获得。

1个回答

这是一些R生成图片的代码。它将显示根据它们的顺序绘制的 15 个模拟 p 值。所以它们形成了一个上升点模式。红/紫线下方的点代表 0.1 或 0.2 水平的显着测试。FDR 是线下方的黑点数除以线下方的总点数。

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")

我希望这可以让人们对有序 p 值的分布形状有所了解。线条是正确的,而不是一些比喻形状的曲线,这与订单分布的形状有关。这必须明确计算。事实上,这条线只是一种保守的解决方案。