A certificate returned by certify(): a certified bound
\(\sup_{\theta \in \Theta_0} E_\theta[X] \le\)
sup_ub, with the random variable, the null and how the bound was reached.
Passed to e_variable(), this certificate can be used to yield an e-variable
for null. sup_lb is the largest value attained, so (sup_lb, sup_ub)
encloses the supremum.
print() gives both bounds, the per-part account for up to
eight parts, and what e_variable() will make of the certificate.
format() gives the certified bound on one line.
Usage
ripr_certificate(
sup_ub = integer(0),
sup_lb = integer(0),
random_variable = random_variable(),
null = null_model(),
method = character(0),
bounds = integer(0),
incumbents = integer(0),
iterations = integer(0),
converged = logical(0),
budget_hit = logical(0)
)Arguments
- sup_ub
The certified upper bound on the supremum.
- sup_lb
The largest expected value found anywhere on the null, a lower bound on the same supremum.
- random_variable
The random_variable the bound is for.
- null
The null_model the bound holds over.
- method
Names of the bounding methods that produced it, one per distinct cell geometry.
- bounds, incumbents
Per-part upper bounds and attained values.
- iterations
Per-part iterations spent, in total over each part's cells.
- converged
Per-part: did the search end with no cell left that could raise
sup_ubby more thantol, rather than on the budget?- budget_hit
Per-part: did any cell stop at
max_splitswith its gap still open? The bound is still valid, but likely loose.
Details
Per-part properties have one entry per declared part of the null's region, reduced over that part's cells.
See also
certify(), e_variable(), and ripr_search for what the
searched lower bound sup_lb() returns.
Examples
fam <- multinomial_family(n_trials = 4L, k = 3L)
null <- null_model(
fam,
simplex_region(vertices = rbind(c(0.5, 0.5, 0), c(0, 1, 0), c(0, 0, 1)))
)
cert <- certify(likelihood(fam(c(0.4, 0.35, 0.25))), null)
cert
#> <ripr_certificate>
#> X = P[theta = (0.4, 0.35, 0.25)]
#> under null_model: multinomial_family over 1 part
#> sup E[X] <= 0.1019614 (certified via bernstein)
#> sup E[X] >= 0.1019608 (interval width: 6.87e-07)
#> e_variable(): X unchanged, already an e-variable
cert@sup_ub
#> [1] 0.1019614
cert@bounds
#> [1] 0.1019614