If we are have calculated multiple P values from independent tests, we can correct for the False Discovery Rate by using:
Ps <- c(0.04,0.02,0.8,0.9,0.004) stats::p.adjust(Ps, method = "BH", n = length(Ps)) Tied p-values are adjusted in the same way:
Ps <- rep(c(0.0001,0.02,0.8,0.9,0.004), 2) stats::p.adjust(Ps, method = "BH", n = length(Ps)) If our p values are calculated as
P = 2*((1 + sum(observed_efects <= null_effects))/(N+1)) Where N is the number of samples in the null distribution, our minimum P value is limited as
min(P) == 1/(N+1) If we have a collection of P values in which all P values are equal to 1/(N+1) then is the FDR appropriate given all P values are given the same rank? e.g.
Ps <- rep(0.002, 555) stats::p.adjust(Ps, method = "BH", n = length(Ps))