Using mafdr to produce false discovery rate adjusted Q values from lists of p-values has been working well for me with large datasets. The adjusted values appear reasonable. However, with very small datasets the Q values produced can be smaller than the initial p-values - particularly if many of the p-values are small. This seems wrong. As Q values are interpreted as p-values adjusted for the false discovery rate, shouldn't they always be larger than the initial p-value?
e.g.
P =
0.0162 0.0322 0.0888 0.0495 0.0507 0.1583
>> [FDR, Q]=mafdr(P)
FDR =
0.0023 0.0023 0.0025 0.0023 0.0018 0.0037
Q =
0.0018 0.0018 0.0025 0.0018 0.0018 0.0037
end
A workaround for this is the 'BHFDR' option, which produces resonable looking adjustments to the p-values. It appears to use a different procedure to calculate the values
if true
>> mafdr(P,'BHFDR', true)
ans =
0.0761 0.0761 0.1065 0.0761 0.0761 0.1583
end
Does anyone know why this occurs? Am I misinterpreting the meaning of the Q values? Should I switch over entirely to the 'BHFDR' procedure for both large and small datasets? Best regards, Kevin