Skip to contents

Theoretical, data-free. For every candidate (sigma_nu, n, beta, sigma_eps), evaluates the scenario-I risk over an internal grid of dominance levels rho, keeps its worst case (max over rho), and reports the maximum information loss (reached at rho = 1, hence set by sigma_nu alone). The returned table is the decision surface of step 2: feed it to plot() for the risk heat-map, to pm_suggest_n() for the largest admissible n, then lock the choice with pm_commit_dominance().

Usage

pm_calib_dominance(
  params = NULL,
  sigma_nu = NULL,
  n = NULL,
  beta = NULL,
  sigma_eps = NULL,
  level = 0.95,
  rho = NULL
)

Arguments

params

Optional pm_params. When supplied, sigma_eps and beta default to its values.

sigma_nu, n

Numeric vectors of candidate values. Default to (1:5) / 10 and seq(3, 12, by = 3).

beta

Accuracy threshold(s) of scenario I. Default to the dominance policy of params, or to c(0.1, 0.2).

sigma_eps

Fixed differencing noise. Default to params$mechanism$sigma_eps, or 0 when no params is given.

level

Confidence level for the CI loss metric (default 0.95).

rho

Internal grid of dominance levels used to locate the worst case. Default (1:50) / 50.

Value

A data.frame of class pm_calib_dominance, one row per (rho, sigma_nu, sigma_eps, n, beta), with columns risk (scenario-I risk), EZ and CI (information loss, in percent). The confidence level is stored in the level attribute. Use summary() for the worst case over rho of each parameter combination.

Details

Like pm_calib_diff(), calling it with everything at NULL returns a default exploration grid.

Examples

# default exploration
grid <- pm_calib_dominance()
grid
#> <pm_calib_dominance>  2000 rows (rho-resolved)
#>   rho      : 50 values in [0.02, 1]
#>   sigma_nu : 5 values in [0.1, 0.5]
#>   n        : 4 values in [3, 12]
#>   beta     : 0.1, 0.2
#>   sigma_eps: 0
#>   CI level : 95%
#> 
#>   worst-case risk & loss range per combination (40 total):
#>  sigma_nu sigma_eps  n beta rho_at_max_risk risk_max EZ_min EZ_max CI_min
#>       0.1         0  3  0.1            0.98    0.691      0  7.979      0
#>       0.1         0  3  0.2            0.98    0.958      0  7.979      0
#>       0.1         0  6  0.1            0.96    0.722      0  7.979      0
#>       0.1         0  6  0.2            0.96    0.972      0  7.979      0
#>       0.1         0  9  0.1            0.96    0.766      0  7.979      0
#>       0.1         0  9  0.2            0.94    0.987      0  7.979      0
#>       0.1         0 12  0.1            0.96    0.806      0  7.979      0
#>       0.1         0 12  0.2            0.90    0.998      0  7.979      0
#>  CI_max
#>    19.6
#>    19.6
#>    19.6
#>    19.6
#>    19.6
#>    19.6
#>    19.6
#>    19.6
#>   ... 32 more; call summary() for the full digest.
summary(grid)
#>  sigma_nu sigma_eps  n beta rho_at_max_risk risk_max EZ_min EZ_max CI_min
#>       0.1         0  3  0.1            0.98    0.691      0  7.979  0.000
#>       0.1         0  3  0.2            0.98    0.958      0  7.979  0.000
#>       0.1         0  6  0.1            0.96    0.722      0  7.979  0.000
#>       0.1         0  6  0.2            0.96    0.972      0  7.979  0.000
#>       0.1         0  9  0.1            0.96    0.766      0  7.979  0.000
#>       0.1         0  9  0.2            0.94    0.987      0  7.979  0.000
#>       0.1         0 12  0.1            0.96    0.806      0  7.979  0.000
#>       0.1         0 12  0.2            0.90    0.998      0  7.979  0.000
#>       0.2         0  3  0.1            0.94    0.404      0 15.958  0.000
#>       0.2         0  3  0.2            0.94    0.712      0 15.958  0.000
#>       0.2         0  6  0.1            0.94    0.465      0 15.958  0.000
#>       0.2         0  6  0.2            0.92    0.790      0 15.958  0.000
#>       0.2         0  9  0.1            0.94    0.527      0 15.958  0.000
#>       0.2         0  9  0.2            0.92    0.862      0 15.958  0.000
#>       0.2         0 12  0.1            0.94    0.587      0 15.958  0.000
#>       0.2         0 12  0.2            0.90    0.922      0 15.958  0.000
#>       0.3         0  3  0.1            0.92    0.290      0 23.937  0.000
#>       0.3         0  3  0.2            0.92    0.543      0 23.937  0.000
#>       0.3         0  6  0.1            0.90    0.358      0 23.937  0.000
#>       0.3         0  6  0.2            0.90    0.653      0 23.937  0.000
#>       0.3         0  9  0.1            0.92    0.421      0 23.937  0.000
#>       0.3         0  9  0.2            0.90    0.746      0 23.937  0.000
#>       0.3         0 12  0.1            0.92    0.484      0 23.937  0.000
#>       0.3         0 12  0.2            0.90    0.827      0 23.937  0.000
#>       0.4         0  3  0.1            0.88    0.231      0 31.915  0.001
#>       0.4         0  3  0.2            0.88    0.443      0 31.915  0.001
#>       0.4         0  6  0.1            0.88    0.300      0 31.915  0.000
#>       0.4         0  6  0.2            0.88    0.563      0 31.915  0.000
#>       0.4         0  9  0.1            0.90    0.364      0 31.915  0.000
#>       0.4         0  9  0.2            0.90    0.662      0 31.915  0.000
#>       0.4         0 12  0.1            0.90    0.418      0 31.915  0.000
#>       0.4         0 12  0.2            0.90    0.754      0 31.915  0.000
#>       0.5         0  3  0.1            0.86    0.194      0 39.894  0.001
#>       0.5         0  3  0.2            0.86    0.377      0 39.894  0.001
#>       0.5         0  6  0.1            0.86    0.263      0 39.894  0.000
#>       0.5         0  6  0.2            0.86    0.501      0 39.894  0.000
#>       0.5         0  9  0.1            0.88    0.326      0 39.894  0.000
#>       0.5         0  9  0.2            0.88    0.608      0 39.894  0.000
#>       0.5         0 12  0.1            0.90    0.383      0 39.894  0.000
#>       0.5         0 12  0.2            0.88    0.695      0 39.894  0.000
#>  CI_max
#>  19.600
#>  19.600
#>  19.600
#>  19.600
#>  19.600
#>  19.600
#>  19.600
#>  19.600
#>  39.199
#>  39.199
#>  39.199
#>  39.199
#>  39.199
#>  39.199
#>  39.199
#>  39.199
#>  58.799
#>  58.799
#>  58.799
#>  58.799
#>  58.799
#>  58.799
#>  58.799
#>  58.799
#>  78.399
#>  78.399
#>  78.399
#>  78.399
#>  78.399
#>  78.399
#>  78.399
#>  78.399
#>  97.998
#>  97.998
#>  97.998
#>  97.998
#>  97.998
#>  97.998
#>  97.998
#>  97.998

# at a committed sigma_eps
para <- pm_commit_diff(pm_params())
#> Differencing step committed: beta = 0.05, tau = 0.95  ->  sigma_eps = 0.0255
#>   loss floor at rho -> 0:  E|Z| = 2.04%,  upper 95% CI = 5.00%
grid <- pm_calib_dominance(para)