Skip to contents

Recommend a design condition from simulation results

Usage

recommend_mfrm_design(
  x,
  facets = c("Rater", "Criterion"),
  min_separation = 2,
  min_reliability = 0.8,
  max_severity_rmse = 0.5,
  max_misfit_rate = 0.1,
  min_convergence_rate = 1,
  prefer = c("n_person", "raters_per_person", "n_rater", "n_criterion")
)

Arguments

x

Output from evaluate_mfrm_design() or summary.mfrm_design_evaluation().

facets

Facets that must satisfy the planning thresholds.

min_separation

Minimum acceptable mean separation.

min_reliability

Minimum acceptable mean reliability.

max_severity_rmse

Maximum acceptable severity recovery RMSE.

max_misfit_rate

Maximum acceptable mean misfit rate.

min_convergence_rate

Minimum acceptable convergence rate.

prefer

Ranking priority among design variables. Earlier entries are optimized first when multiple designs pass.

Value

A list of class mfrm_design_recommendation with:

  • facet_table: facet-level threshold checks

  • design_table: design-level aggregated checks

  • recommended: the first passing design after ranking

  • thresholds: thresholds used in the recommendation

Details

This helper converts a design-study summary into a simple planning table.

A design is marked as recommended when all requested facets satisfy all selected thresholds simultaneously. If multiple designs pass, the helper returns the smallest one according to prefer (by default: fewer persons first, then fewer ratings per person, then fewer raters, then fewer criteria).

Typical workflow

  1. Run evaluate_mfrm_design().

  2. Review summary.mfrm_design_evaluation() and plot.mfrm_design_evaluation().

  3. Use recommend_mfrm_design(...) to identify the smallest acceptable design.

Examples

sim_eval <- evaluate_mfrm_design(
  n_person = c(30, 50),
  n_rater = 4,
  n_criterion = 4,
  raters_per_person = 2,
  reps = 1,
  maxit = 15,
  seed = 123
)
#> Warning: Optimizer did not fully converge (code = 1). Consider increasing maxit (current: 15) or relaxing reltol (current: 1e-06).
#> Warning: Optimizer did not fully converge (code = 1). Consider increasing maxit (current: 15) or relaxing reltol (current: 1e-06).
rec <- recommend_mfrm_design(sim_eval)
rec$recommended
#> # A tibble: 0 × 14
#> # ℹ 14 variables: design_id <chr>, n_person <dbl>, n_rater <dbl>,
#> #   n_criterion <dbl>, raters_per_person <dbl>, FacetsChecked <chr>,
#> #   MinSeparation <dbl>, MinReliability <dbl>, MaxSeverityRMSE <dbl>,
#> #   MaxMisfitRate <dbl>, MinConvergenceRate <dbl>, FacetsPassing <int>,
#> #   FacetsRequired <int>, Pass <lgl>