*! version 1.2.0 2026-04-27

Title

mht_table -- Table of optimal MHT critical values; reproduces Table 1 of the paper

Syntax

mht_table [, options]

Quick start

With no arguments, mht_table reproduces Table 1 of the paper EXACTLY
(Linear/FDA calibration; |J|=1..9 plus infinity; four alphabar values at n/m=100%;
single alphabar=0.025 at n/m=50/150/200%; two Sidak benchmark columns):

. mht_table

Same structure under the Cobb-Douglas (J-PAL) calibration:

. mht_table, model(cobbdouglas)

Custom: smaller table, single alphabar across user-specified n/m ratios:

. mht_table, alphabar(0.05) jrange(1 2 3 5 9) nmratios(0.5 1.0 2.0)

Description

mht_table displays a table of optimal critical values alpha*(|J|, n/m) under
the model in Viviano, Wuthrich, and Niehaus (2026). When called with no
arguments, it reproduces Table 1 of the paper exactly -- compound headers,
ten rows (|J|=1..9 and infinity), four alphabar values at n_bar/m_bar=100%, a
single alphabar=0.025 at n_bar/m_bar in {0.5, 1.5, 2.0}, and two Sidak benchmark
columns at alphabar in {0.025, 0.05}.

With one or more of alphabar(), jrange(), nmratios() specified,
the command switches to a custom layout with a single alphabar across the
chosen n/m ratios -- useful for quick exploration.

For every cell the command internally calls mht_critical; all displayed
values are also stored in r().

Options

Default-mode behavior

With no arguments, mht_table reproduces paper Table 1 under the Linear
calibration. Pass model(cobbdouglas) to switch the calibration while keeping
the Table-1 layout. Pass noinf to suppress the |J|=Inf row.

Custom-mode options

alphabar(#) benchmark single-hypothesis significance level. Triggers custom mode.

jrange(numlist) J values used as table rows.

nmratios(numlist) n/m ratios used as table columns.

sidakbars(numlist) alpha_bar values for Sidak benchmark columns.
Default 0.025 0.05.

nosidak suppress Sidak columns.

noinf suppress the |J|=Inf row.

Cost model

model(string) linear (default) or cobbdouglas.

cfshare(#) fixed cost share (Linear). Default 0.46.

jbar(#) average number of subgroups (Linear). Default 3.

beta(#) elasticity wrt |J| (Cobb-Douglas). Default 0.13.

iota(#) elasticity wrt sample size (Cobb-Douglas). Default 0.075.

Examples

Reproduce paper Table 1 exactly (default mode)

. mht_table

Same structure, Cobb-Douglas calibration

. mht_table, model(cobbdouglas)

Custom J range, single alphabar, multiple n/m

. mht_table, alphabar(0.05) jrange(1 2 3 5 9) nmratios(0.5 1.0 2.0)

Higher benchmark alpha

. mht_table, alphabar(0.10) jrange(1 2 3 4 5)

Suppress Sidak and infinity row

. mht_table, alphabar(0.05) nosidak noinf

Stored results

mht_table stores the following in r():

Default mode (paper Table 1)

r(alpha_j_100_ab) optimal alpha at |J|=j, n/m=100%, alphabar=ab

r(alpha_j_nm_0p025) optimal alpha at |J|=j, n/m=nm, alphabar=0.025

r(sidak_ab_j) Sidak level at |J|=j, alphabar=ab

Custom mode

r(alpha_j_nm) optimal alpha for |J|=j, nm_ratio=nm

r(alpha_bar) benchmark alpha used

Macros

r(model) cost model used (linear or cobbdouglas)

Decimal points in nm and ab keys are replaced by 'p' (e.g.
r(alpha_3_100_0p025) for |J|=3, n/m=100%, alphabar=0.025).

References

Viviano, D., K. Wuthrich, and P. Niehaus (2026).
A model of multiple hypothesis testing. arXiv:2104.13367v10.

Also see

Online: mht_critical, mht_test, mht_est, mht_cost_estimate