update_model: Run Model on New Data

update_modelR Documentation

Run Model on New Data

Description

Given a table of new parameter values with a new parameter set per line, runs iteratively Markov models over these sets.

Usage

## S3 method for class 'run_model'
update(object, newdata, ...)

## S3 method for class 'updated_model'
plot(
  x,
  type = c("simple", "difference", "counts", "ce", "values"),
  result = c("cost", "effect", "icer"),
  strategy = NULL,
  ...
)

Arguments

object

The result of run_model().

newdata

A data.frame of new parameter sets, one column per parameter and one row per parameter set. An optional .weights column can be included for a weighted analysis.

...

Additional arguments passed to geom_histogram. Especially usefull to specify binwidth.

x

Updated model to plot.

type

Plot simple values or differences?

result

The the result to plot (see details).

strategy

A model index, character or numeric.

Details

newdata must be a data.frame with the following properties: the column names must be parameter names used in define_parameters(); and an optional column .weights can give the respective weight of each row in the target population.

Weights are automatillcally scaled. If no weights are provided equal weights are used for each strata.

For the plotting function, the type argument can take the following values: "cost", "effect" or "icer" to plot the heterogeneity of the respective values. Furthermore "ce" and "count" can produce from the combined model plots similar to those of run_model().

Value

A data.frame with one row per model/value.

Warning

Histograms do not account for weights. On the other hand summary results do.

Examples

mod1 <-
  define_strategy(
    transition = define_transition(
      .5, .5,
      .1, .9
    ),
    define_state(
      cost = 543 + age * 5,
      ly = 1
    ),
    define_state(
      cost = 432 + age,
      ly = 1 * age / 100
    )
  )

mod2 <-
  define_strategy(
    transition = define_transition(
      .5, .5,
      .1, .9
    ),
    define_state(
      cost = 789 * age / 10,
      ly = 1
    ),
    define_state(
      cost = 456 * age / 10,
      ly = 1 * age / 200
    )
  )

res <- run_model(
  mod1, mod2,
  parameters = define_parameters(
    age_init = 60,
    age = age_init + markov_cycle
  ),
  init = 1:0,
  cycles = 10,
  cost = cost,
  effect = ly
)

# generating table with new parameter sets
new_tab <- data.frame(
  age_init = 40:45
)

# with run_model result
ndt <- update(res, newdata = new_tab)

summary(ndt)

# using weights

new_tab2 <- data.frame(
  age_init = 40:45,
  .weights = runif(6)
)
ndt2 <- update(res, newdata = new_tab2)

summary(ndt2)

PolicyAnalysisInc/heRoMod documentation built on March 23, 2024, 4:29 p.m.