Skip to contents

For each candidate design supplied by the user (for example the current design, the same design with an added measured output, with added sampling times, or with an added dose level), reports the structural decision for the outputs it observes and the expected relative standard errors from the Fisher information summed over its experiments. No design is optimised; only the supplied candidates are compared.

Usage

compare_designs(
  m,
  candidates,
  values,
  error = residual_error(prop = 0.1),
  inputs = list(),
  structural = TRUE,
  method = c("both", "lie", "sensitivity"),
  rse_limit = 30,
  seed = 1L,
  rtol = 1e-10,
  atol = 1e-12
)

Arguments

m

A pkident_model from pkpd_model() that defines every output that any candidate observes.

candidates

A named list of candidates; each is an experiment() or a list of experiments.

values

Named values of all parameters and known constants (the design point).

error

A residual_error() for every output, or a named list with one per output.

inputs

Known input signals shared by all experiments.

structural

If TRUE, run structural_identifiability() for each distinct set of observed outputs.

method

Method passed to structural_identifiability().

rse_limit

RSE (%) above which a parameter is unresolved.

seed

Seed for the structural analysis.

rtol, atol

Solver tolerances.

Value

An object of class pkident_designs. Use as_table() with "summary" or "parameters".

Details

The structural decision depends only on which outputs are observed (it assumes continuous, noise-free observation after the doses of the model definition). Added sampling times and dose levels therefore change only the expected RSEs.

Examples

m <- pkpd_model(
  "d/dt(central) = -CL/V*central
   cp = central/V",
  outputs = "cp", doses = bolus_dose("central", "DOSE"), known = "DOSE"
)
compare_designs(
  m,
  candidates = list(
    early = experiment(c(0.25, 0.5, 1, 2), n = 10),
    extended = experiment(c(0.25, 0.5, 1, 2, 8, 24), n = 10)
  ),
  values = c(CL = 2, V = 20, DOSE = 100),
  error = residual_error(add = 0.05, prop = 0.1),
  structural = FALSE
)
#> <pkident design comparison>
#> Expected RSE (%) from the Fisher information; structural status for the observed outputs (LOCAL).
#>   parameter         early   extended 
#>   CL                 21.4        1.8 
#>   V                   2.7        1.6 
#>   identifiable        2/2        2/2 
#> Practically identifiable: RSE <= 30%.