是否有可能计算或估计 Benjamini-Hochberg 程序 (BH) 的总体拒绝阈值?
对于使用 Bonferroni 方法的 FWER 校正,显着性阈值被调整为评估假设的数量如下。但是由于 BH 程序为每个独立假设值,该假设与先验定义的 FDR 进行比较,我不确定如何做到这一点。
是否有可能计算或估计 Benjamini-Hochberg 程序 (BH) 的总体拒绝阈值?
对于使用 Bonferroni 方法的 FWER 校正,显着性阈值被调整为评估假设的数量如下。但是由于 BH 程序为每个独立假设值,该假设与先验定义的 FDR 进行比较,我不确定如何做到这一点。
如您所见,对于错误发现率的Benjamini-Hochberg控制,没有固定的 p 值截止值。截止值取决于您一起评估您将它们按升序排列并从最低 p 值计数。值对假设“拒绝原假设” :
对于给定的,找到最大的使得
如果零假设都成立,因此 [0,1] 中的 p 值均匀分布,则 p 值截止值将接近。如果一些零假设不成立,你会低于多少取决于 p 值分布的不均匀程度。
我不确定这种方法的形式有效性,但您可以计算出 Hochberg 方法给出的相应 FWER。
用于控制错误发现率的 Benjamini-Hochberg 程序是(我将引用维基百科)
...我们有空假设测试和它们对应的p值。我们按升序列出这些p表示它们。...
- 对于给定的,找到最大的使得
- 对于的原假设(即声明发现)。
该方法将 FDR 设置为,即,在被拒绝的假设中,我们期望 I 类错误的分数为。
另一方面,全族错误率是在一组被拒绝的假设中至少出现一个 I 类错误的概率。Hochberg 方法通过类似于 BH FDR 方法的计算来完成此操作(再次引用Wikipedia),
- 首先对p值排序(从最低到最高)并让相关假设为
- 对于给定的,令是最大的使得
- 拒绝原假设
您可以将这些放在一起 1) 定义 FDR,2) 确定最大的拒绝p值和拒绝假设的总数,3) 计算相应的 Hochberg FWER作为
经过一番思考,我相信在 BH 程序之后最后一次(按等级)显着性检验的未调整 p 值最接近显着性阈值。
一个例子:
执行 BH 程序:
一些p值:
订购它们:
计算所有 10 个等级的 q 值:,对于。
找到小于其对应 q 值的最大排名 p 值。
结果:
在表中,我们可以看到Rank 3以上的所有测试都不显着,因此我们可以得出结论,0.0021作为我们的显着性阈值。相比之下,Bonferroni 校正的阈值为。
这是我用于此示例的 R 代码:
# generate p-values
pValues <- c(0.0001,0.0234,0.3354,0.0021,0.5211,0.9123,0.0008,0.0293,0.0500, 1)
# order the p-values
pValues <- sort(pValues)
# BH-procedure
alpha <- 0.05
m <- length(pValues)
qValues <- c()
for (i in 1:m){
qV <- (i/m)*alpha
qValues <- append(qValues, qV)
}
# find the largest p-value that satisfies p_i < q_i
BH_test <- qValues > pValues
# largest k is 3, thus threshold is 0.0021
threshold <- p[sum(BH_test)];threshold