The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Optimal Multiple Hypothesis Testing Corrections (R port)
R implementation of the optimal MHT correction from:
Viviano, D., Wüthrich, K., and Niehaus, P. (2026). A Model of Multiple Hypothesis Testing. arXiv:2104.13367.
Standard MHT corrections (Bonferroni, Holm, BH) are ad hoc.
mhtopt derives the optimal per-test significance level α*
from the economic incentives of research production, sitting between
Bonferroni (too conservative) and unadjusted (too permissive), with
position determined by the study’s cost structure.
install.packages("mhtopt")Development version:
# install.packages("remotes")
remotes::install_github("dviviano/mhtopt", subdir = "r")library(mhtopt)
# Optimal critical value for 5 hypotheses
mht_critical(J = 5, alpha_bar = 0.05)
# Apply MHT adjustment to p-values
mht_test(p = c(0.003, 0.015, 0.048, 0.080), alpha_bar = 0.05)
# Postestimation: test J coefficients in a fitted model
fit <- lm(mpg ~ wt + hp + qsec + drat, data = mtcars)
mht_est(fit, vars = c("wt", "hp", "qsec", "drat"), alpha_bar = 0.05)| Function | Purpose |
|---|---|
mht_critical() |
Compute optimal critical value α* |
mht_test() |
Apply MHT adjustment to a vector of p-values |
mht_est() |
Postestimation: test J coefficients from a fitted model |
mht_cost_estimate() |
Estimate cost-function parameters (β, ι) from data |
mht_table() |
Generate reference tables (reproduces Tables 1 & 3 of the paper) |
Two cost models: "linear" (default, FDA calibration) and
"cobbdouglas" (J-PAL calibration).
citation("mhtopt")The same five functions are available in Stata
(ssc install mhtopt) and Python
(pip install mhtopt). See the project repository for
cross-language documentation.
MIT — see LICENSE.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.