View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

4.9 | 11 ratings Rate this file 73 Downloads (last 30 days) File Size: 8.83 KB File ID: #27418 Version: 2.3



David Groppe (view profile)


29 Apr 2010 (Updated )

Benjamini & Hochberg/Yekutieli false discovery rate control procedure for a set of statistical tests

| Watch this File

File Information

Executes the Benjamini & Hochberg (1995) procedure for controlling the false discovery rate (FDR) of a family of hypothesis tests. FDR is the expected proportion of rejected hypotheses that are mistakenly rejected (i.e., the null hypothesis is actually true for those tests). FDR is generally a somewhat less conservative/more powerful method for correcting for multiple comparisons than procedures like Bonferroni correction that provide strong control of the family-wise error rate (i.e., the probability that one or more null hypotheses are mistakenly rejected).
     This function implements both versions of the Benjamini & Hochberg procedure: the one that assumes independent or positively dependent tests and the one that makes no assumptions about test dependency. The latter procedure (published by Benjamini & Yekutieli in 2001) is always appropriate but is much more conservative than the former. Both procedures are quite simple and require only the p-values of all tests in the family
     In addition to correcting p-values for multiple comparisons, this function also returns the multiple comparison adjusted confidence interval coverage for any p-values that remain significant after FDR adjustment. These "FCR-adjusted selected confidence intervals" guarantee that the false coverage-statement rate (FCR) is less than the p-value thredho for signifcance (Benjamini, Y., & Yekutieli, D., 2005).
Benjamini, Y. & Hochberg, Y. (1995) Controlling the false discovery rate: A practical and powerful approach to multiple testing. Journal of the Royal Statistical Society, Series B (Methodological). 57(1), 289-300.
Benjamini, Y. & Yekutieli, D. (2001) The control of the false discovery rate in multiple testing under dependency. The Annals of Statistics. 29(4), 1165-1188.
Benjamini, Y., & Yekutieli, D. (2005). False discovery rate–adjusted multiple confidence intervals for selected parameters. Journal of the American Statistical Association, 100(469), 71–81. doi:10.1198/016214504000001907
For a review on false discovery rate control and other contemporary techniques for correcting for multiple comparisons see:
Groppe, D.M., Urbach, T.P., & Kutas, M. (2011) Mass univariate analysis of event-related brain potentials/fields I: A critical tutorial review.
Psychophysiology, 48(12) pp. 1711-1725, DOI: 10.1111/j.1469-8986.2011.01273.x

MATLAB release MATLAB 7.10 (R2010a)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (11)
17 Dec 2016 Arnaud Henry

Small thing: I would convert h (line 202) to a logical so as not to cause unexpected indexing issues when no tests are significant, ie:

03 Jun 2016 imu931

imu931 (view profile)

Very helpful, thanks.

19 Jan 2015 Fernando Cendes

18 Jul 2014 Pierre Mégevand

22 Nov 2013 Franck Dernoncourt

01 Oct 2013 Kristin

Kristin (view profile)

Works well, thank you.

03 Jun 2013 Greg

Greg (view profile)

13 Mar 2013 Chandramouli Chandrasekaran

01 Feb 2013 Hideaki Shimazaki

02 Jan 2013 Eran Mukamel

Great code, thanks! It would be useful to add the ability for the user to provide a histogram of p-values as input, rather than a list of p-values. This would help in cases where a very large number of hypotheses are being tested.

07 Nov 2012 sundar

sundar (view profile)

Great...Exactly what i was looking for.
Thank you very much

11 Dec 2010 1.2

Now returns FDR-adjusted p-values. Thanks to Yishai Shimoni for inspiring this.

17 Sep 2012 1.4

Comments updated

24 Jun 2013 1.5

Dirk Poot made the computation of adjusted p-values much more efficient. (Dank u Dirk!)

22 Oct 2015 2.1

Function now returns FCR-adjusted selected confidence interval coverage

12 Nov 2015 2.2

Previous version would not unzip for some reason.

19 Dec 2015 2.3

Comments updated to reflect FCR-adjusted CI functionality

Contact us