Inferensys

Glossary

Benjamini-Hochberg Procedure

A statistical method for controlling the False Discovery Rate (FDR) in multiple hypothesis testing by ranking raw p-values and comparing each to a linearly adjusted significance threshold.
Cinematic overhead of a WeWork creative suite room with multiple curved monitors showing AI decision dashboards, executives in casual attire reviewing data, dramatic pendant lighting.
False Discovery Rate Control

What is Benjamini-Hochberg Procedure?

The Benjamini-Hochberg procedure is a statistical method for controlling the False Discovery Rate (FDR) when performing multiple simultaneous hypothesis tests, such as in genomics.

The Benjamini-Hochberg (BH) procedure is a step-up statistical method designed to control the False Discovery Rate (FDR)—the expected proportion of false positives among all rejected null hypotheses. Unlike the Bonferroni correction, which controls the family-wise error rate, the BH procedure provides a less conservative, more powerful approach for high-dimensional data by ranking raw p-values and comparing each to an adjusted significance threshold.

The algorithm works by first ordering m p-values from smallest to largest. For a chosen FDR level α, it finds the largest rank k where the p-value is less than or equal to (k/m)*α. All hypotheses with ranks 1 through k are then declared statistically significant, effectively allowing more true discoveries while bounding the expected rate of false positives.

False Discovery Rate Control

Key Characteristics of the BH Procedure

The Benjamini-Hochberg procedure is a step-up multiple testing correction method that controls the expected proportion of false positives among all rejected hypotheses. It is the foundational algorithm for managing Type I error inflation in high-dimensional genomic experiments.

01

Step-Up Sequential Rejection

The BH procedure operates by ranking raw p-values in ascending order and comparing each to a linearly adjusted threshold. For the i-th ranked p-value, the critical value is (i/m) * α, where m is the total number of tests and α is the desired FDR level. The algorithm finds the largest index k where p(k) ≤ (k/m) * α, then rejects all hypotheses with rank ≤ k. This step-up approach is more powerful than family-wise error rate methods like Bonferroni.

02

FDR vs. FWER Control

Unlike the Bonferroni correction, which controls the probability of making any false positive (Family-Wise Error Rate), the BH procedure controls the False Discovery Rate—the expected proportion of false positives among discoveries. This distinction is critical in genomics:

  • FWER: P(≥1 false positive) ≤ α — extremely conservative for 20,000+ genes
  • FDR: E[false positives / total rejections] ≤ α — tolerates a small fraction of errors This tolerance dramatically increases statistical power when screening thousands of biomarkers.
03

Independence and Positive Regression Dependency

The original 1995 proof by Benjamini and Hochberg assumed test statistics are independent. Subsequent work by Benjamini and Yekutieli (2001) extended the proof to cases of positive regression dependency—a condition commonly met in genomics where gene expression measurements exhibit block-correlation structures. For arbitrary dependency structures, a modified BH procedure multiplies the threshold by a harmonic sum constant, though this conservative adjustment is rarely needed for typical microarray and RNA-seq data.

04

The q-value Transformation

John Storey extended the BH framework by introducing the q-value, the minimum FDR at which a given test would be called significant. While the BH procedure outputs a binary reject/accept decision at a fixed α, the q-value provides a continuous measure of significance analogous to the p-value but calibrated for FDR. For a gene with q-value = 0.05, up to 5% of genes with equal or lower q-values are expected to be false positives. The qvalue R/Bioconductor package implements this via bootstrap estimation of π₀, the proportion of true null hypotheses.

05

Implementation in Genomic Tools

The BH procedure is the default multiple testing correction in major differential expression packages:

  • DESeq2: results(dds, pAdjustMethod='BH') applies BH correction to Wald test p-values
  • edgeR: topTags(et, adjust.method='BH') in the exact test workflow
  • limma: topTable(fit, adjust='BH') after empirical Bayes moderation
  • Seurat: FindMarkers(test.use='wilcox', p_val_adj='BH') for single-cell analysis Each implementation sorts raw p-values and applies the step-up threshold, typically with α = 0.05 or 0.10.
06

Practical Interpretation and Pitfalls

When interpreting BH-adjusted results:

  • Adjusted p-value of 0.03: If all genes with adjusted p ≤ 0.03 are declared significant, the expected FDR among them is 3%
  • FDR = 10% is common in exploratory biomarker discovery to prioritize candidates for validation
  • Avoid double-correction: Do not apply BH after Bonferroni—they address different error rates
  • Pre-filtering matters: Removing low-count genes before BH correction increases power by reducing the multiplicity burden
  • The procedure controls the expected FDR, not the realized FDR in any single experiment
MULTIPLE TESTING CORRECTION

Frequently Asked Questions

Clear answers to common questions about the Benjamini-Hochberg procedure, its mechanics, and its critical role in controlling false positives in high-dimensional genomic experiments.

The Benjamini-Hochberg (BH) procedure is a statistical method for controlling the False Discovery Rate (FDR) —the expected proportion of false positives among all rejected null hypotheses—in multiple hypothesis testing scenarios. It works by ranking raw p-values from smallest to largest and comparing each to an adjusted significance threshold. For a set of m tests, the procedure finds the largest rank k where the p-value P(k) ≤ (k/m) × α, where α is the desired FDR level (typically 0.05). All hypotheses with rank ≤ k are declared significant. Unlike the Bonferroni correction, which controls the family-wise error rate and is extremely conservative, the BH procedure is more powerful and specifically designed for the high-dimensional testing common in genomics, where thousands of genes are tested simultaneously and some false positives are tolerable to avoid missing true discoveries.

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.