Simulate health state transitions in a cohort discrete time state transition model.

An R6::R6Class object.

`params`

Parameters for simulating health state transitions. Supports objects of class

`tparams_transprobs`

or`params_mlogit`

.`input_data`

An object of class

`input_mats`

.`cycle_length`

The length of a model cycle in terms of years. The default is

`1`

meaning that model cycles are 1 year long.

`start_stateprobs`

A non-negative vector with length equal to the number of health states containing the probability that the cohort is in each health state at the start of the simulation. For example, if there were three states and the cohort began the simulation in state 1, then

`start_stateprobs = c(1, 0, 0)`

. Automatically normalized to sum to 1. If`NULL`

, then a vector with the first element equal to 1 and all remaining elements equal to 0.`trans_mat`

A transition matrix describing the states and transitions in a discrete-time multi-state model. Only required if the model is parameterized using multinomial logistic regression. The

`(i,j)`

element represents a transition from state`i`

to state`j`

. Each possible transition from row`i`

should be based on a separate multinomial logistic regression and ordered from`0`

to`K - 1`

where`K`

is the number of possible transitions. Transitions that are not possible should be`NA`

. and the reference category for each row should be`0`

.

`new()`

Create a new `CohortDtstmTrans`

object.

CohortDtstmTrans$new( params, input_data = NULL, trans_mat = NULL, start_stateprobs = NULL, cycle_length = 1 )

`params`

The

`params`

field.`input_data`

The

`input_data`

field.`trans_mat`

The

`trans_mat`

field.`start_stateprobs`

The

`start_stateprobs`

field.`cycle_length`

The

`cycle_length`

field.

A new `CohortDtstmTrans`

object.

`sim_stateprobs()`

Simulate probability of being in each health state during each model cycle.

CohortDtstmTrans$sim_stateprobs(n_cycles)

`n_cycles`

The number of model cycles to simulate the model for.

An object of class `stateprobs`

.

`clone()`

The objects of this class are cloneable with this method.

CohortDtstmTrans$clone(deep = FALSE)

`deep`

Whether to make a deep clone.

library("msm") library("data.table") set.seed(101) # Model setup strategies <- data.table( strategy_id = c(1, 2, 3), strategy_name = c("SOC", "New 1", "New 2") ) patients <- data.table(patient_id = 1:2) hesim_dat <- hesim_data( strategies = strategies, patients = patients ) # Fit multi-state model with panel data via msm qinit <- rbind( c(0, 0.28163, 0.01239), c(0, 0, 0.10204), c(0, 0, 0) ) fit <- msm(state_id ~ time, subject = patient_id, data = onc3p[patient_id %in% sample(patient_id, 100)], covariates = list("1-2" =~ strategy_name), qmatrix = qinit) # Simulation model transmod_data <- expand(hesim_dat) transmod <- create_CohortDtstmTrans(fit, input_data = transmod_data, cycle_length = 1/2, fixedpars = 2, n = 2) transmod$sim_stateprobs(n_cycles = 2)#> sample strategy_id patient_id grp_id state_id t prob #> 1: 1 1 1 1 1 0.0 1.000000000 #> 2: 1 1 1 1 1 0.5 0.792695102 #> 3: 1 1 1 1 1 1.0 0.628365524 #> 4: 1 1 1 1 2 0.0 0.000000000 #> 5: 1 1 1 1 2 0.5 0.202046511 #> --- #> 104: 2 3 2 1 2 0.5 0.184425447 #> 105: 2 3 2 1 2 1.0 0.325475890 #> 106: 2 3 2 1 3 0.0 0.000000000 #> 107: 2 3 2 1 3 0.5 0.004553194 #> 108: 2 3 2 1 3 1.0 0.016768466