Thin wrapper around stats::p.adjust() with method = "BH" – base R
already implements this correctly, so it is not reimplemented.
Details
Function type: Support function – computes the BH procedure
used internally by fdr_correction(). Not exported; call
fdr_correction(p, method = "BH") for a BH-only result.
Typical use
Supply one family of raw p-values to fdr_correction() with
method = "BH"; this internal helper returns the corresponding
adjusted values and rejection decisions.
Methodological details
Methods and method selection
Original publication: Benjamini & Hochberg (1995), the paper that introduced false discovery rate control itself.
Main references: Benjamini & Hochberg (1995) for the procedure; Benjamini & Yekutieli (2001) for why it remains valid under the positive dependence typical of gridded spatial data. Full citations appear under "References" below.
Typical applications: correcting for multiple testing when many hypotheses are tested at once (e.g. one Mann-Kendall test per pixel in a raster) and a fixed, non-adaptive guarantee is preferred over
fdr_bky()'s adaptive one – seeworkflow_rta()for a workflow that defaults to this method specifically for that reason.
Statistical assumptions and limitations
BH controls FDR under independence and recognised positive-dependence
conditions such as PRDS. Spatial autocorrelation diagnostics can be
compatible with those conditions but do not prove them. Use fdr_by()
when control under arbitrary dependence is required.
Quality assurance
Adjusted values are generated directly by stats::p.adjust() and are
also checked through the package's automated FDR tests.
References
Primary method reference:
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, 57, 289-300. doi:10.1111/j.2517-6161.1995.tb02031.x
Theoretical justification for why BH remains valid under the positive
spatial dependence typical of gridded data (for which
spatial_autocorrelation() or moran_check can provide a diagnostic):
Benjamini, Y., & Yekutieli, D. (2001). The control of the false discovery rate in multiple testing under dependency. Annals of Statistics, 29(4), 1165-1188. doi:10.1214/aos/1013699998
On why multiple testing must be addressed at all in gridded remote sensing data (general problem statement):
Gutiérrez-Hernández, O. and García, L.V. (2025, September 17) Multiple Testing in Remote Sensing: Addressing the Elephant in the Room. Available at SSRN: https://ssrn.com/abstract=4891512. doi:10.2139/ssrn.4891512
On FDR estimation and control specifically under the spatial dependence structure of gridded data (directly motivates this function):
Gutiérrez-Hernández, O., & García, L.V. (2025). False discovery rate estimation and control in remote sensing: reliable statistical significance in spatially dependent gridded data. Remote Sensing Letters, 16(5), 537-548. doi:10.1080/2150704X.2025.2478664
This function is used (not authored) by workflow_rta(), this package's own
non-prewhitened workflow (workflow_tst() instead defaults to the adaptive
fdr_bky()):
Gutiérrez-Hernández, O. and García, L.V. (2024) Robust Trend Analysis in Environmental Remote Sensing: A Case Study of Cork Oak Forest Decline. Remote Sensing, 16(20), 3886. doi:10.3390/rs16203886
See also
Other FDR correction functions:
fdr_bky(),
fdr_by(),
fdr_comparison_barplot(),
fdr_correction(),
fdr_direction_plot(),
fdr_direction_summary(),
fdr_pvalue_histogram(),
fdr_significance_maps(),
fdr_summary(),
fdr_threshold_plot()
