Survival models

2017-02-10

Input transition probabilities from defined distributions:

surv_dist1 <- define_survival(
  distribution = "weibull",
  shape = 2,
  scale = 5
)

From fitted models:

library(flexsurv)
## Loading required package: survival
fitw <- flexsurvreg(
  formula = Surv(futime, fustat) ~ 1,
  data = ovarian, dist = "weibull"
)
plot(fitw)

For the example we define a simple model with only 1 strategy:

param <- define_parameters(
  p1 = get_probs_from_surv(
    surv_dist1,
    cycle = markov_cycle # can also be state_cycle
  ),
  p2 = get_probs_from_surv(
    fitw,
    cycle = markov_cycle,
    cycle_length = 365, # time is in days in fitw, in years in markov_cycle
    km_limit = 2 # use KM estimates during the first 2 years
  )
)

tm <- define_transition(
  C, p1, 0,
  0, C,  p2,
  0, 0,  C
)
## No named state -> generating names.
plot(tm)

sA <-  define_state(
  cost = 10, ut = 1
)
sB <-  define_state(
  cost = 20, ut = .5
)
sC <-  define_state(
  cost = 0, ut = 0
)

stratTM <- define_strategy(
  transition = tm,
  A = sA, B = sB, C = sC
)

resTM <- run_model(
  parameters = param,
  stratTM,
  cycles = 10
)
## No named model -> generating names.
plot(resTM)

A partitioned survival model can also be computed:

surv_dist2 <- define_survival(
  distribution = "exp",
  rate = .5
)

ps <- define_part_surv(
  pfs = surv_dist2,
  os = fitw,
  km_limit = c(0, 2), # 0 for pfs, 2 for os
  cycle_length = c(1, 365) # 1 for pfs, 365 for os
)
## No named state -> generating names.
stratPS <- define_strategy(
  transition = ps,
  A = sA, B = sB, C = sC
)

resPS <- run_model(
  stratPS,
  cycles = 10
)
## No named model -> generating names.
plot(resPS)