Skip to contents

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_ub by more than tol, rather than on the budget?

budget_hit

Per-part: did any cell stop at max_splits with its gap still open? The bound is still valid, but likely loose.

Value

A ripr_certificate.

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