Hypothesis Testing – Multiple Testing with FDR in R Using FDRtool and p.adjust

false-discovery-ratehypothesis testing

i am very new to this field, so please bear with me.
I have 600 parameters, on which i perform simple pairwise x,y correlations.For adjustment of the p-values ive been stuck between two R-packages.

FDR-tool gives me a set of qvalues,

FDR <- fdrtool(as.vector(a$P[!is.na(a)]), statistic=c("pvalue"), cutoff.method=c("fndr"))

whereas the p.adjust command in the basic packages gives me adjusted p-values.

FDR <- p.adjust(as.vector(a$P), method = "fdr", n = length(as.vector(a$P)))

"a" is an object created by the hcorr command of the package "Hmisc"

The output is not the same, however.

Can someone please explain me why that is? And how to proceed from here? I was told, the adjusted p-values (as obtained from p.adjust) can be treated as such, that i can just define a cutoff of 0.05 for false positives. I am not so sure about q-values, though, and if i am missing something fundamental on False Discovery Rates. Thank you very much!

Best Answer

The FDRtool computes q-values by estimating the null fraction empirically from the data. p.adjust() with method "fdr" uses the Benjamini-Hochberg approach which effectively assumes that the null fraction is always 1.0. This implies that the p.adjust p-values are stochastically higher than q-values, and equal only if empirically estimated null fraction by FDRtool is 1.0.