bh_adjust — n4m.metrics.multiple_testing.bh_adjust

Namespace: n4m.metrics.multiple_testing · Fully-qualified: n4m.metrics.multiple_testing.bh_adjust · Catalog id: diagnostics.bh_adjust

API surface

C ABI (ABI 2): n4m_stats_bh_adjust. Use the linked public header for the exact signature, configuration, and result handles.

R: no current source-verified entry point was found for this catalog method.

MATLAB / Octave: no current source-verified entry point was found for this catalog method.

Explanations

Bibliographic source

Benjamini & Hochberg (1995), Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing, Journal of the Royal Statistical Society B 57(1), 289–300, https://doi.org/10.1111/j.2517-6161.1995.tb02031.x; Benjamini & Yekutieli (2001), The control of the false discovery rate in multiple testing under dependency, Annals of Statistics 29(4), 1165–1188, https://doi.org/10.1214/aos/1013699998.

Mathematical principle

For one family of \(m\) p-values sorted ascending as \(p_{(1)}\le\dots\le p_{(m)}\), the adjusted value of rank \(i\) is \(\min(1,\min_{j\ge i} m\,p_{(j)}/j)\), as R p.adjust(method = "BH") and statsmodels multipletests(method="fdr_bh").

Appropriate uses

Publishing an exploratory false-discovery-rate view of a hypothesis family next to a family-wise (Holm) decision rule.

Limits and validation

BH controls the false discovery rate under independence or positive regression dependence (PRDS) of the test statistics, not the family-wise error rate. The caller defines the family. Inputs must lie in \([0,1]\) and \(m\ge 1\).

Implementation

The ABI-2 symbol n4m_stats_bh_adjust in n4m/metrics.h is implemented in cpp/src/c_api/c_api_preflight.cpp and wrapped in JS/WASM by statsBhAdjust. statsmodels and SciPy false_discovery_control reference values are pinned in cpp/tests/test_preflight.cpp.

Sources and provenance

https://doi.org/10.1111/j.2517-6161.1995.tb02031.x; https://doi.org/10.1214/aos/1013699998; https://github.com/GBeurier/nirs4all-methods/blob/main/cpp/src/c_api/c_api_preflight.cpp; https://github.com/GBeurier/nirs4all-methods/blob/main/cpp/tests/test_preflight.cpp

Catalog note

Benjamini-Hochberg step-up adjusted p-values for one hypothesis family, matching R p.adjust(method = “BH”) and statsmodels multipletests(method = “fdr_bh”).

See also: methods index.