Learn R Programming

tsdf (version 1.1-8)

dec.sim: run dose-finding simulations

Description

Run dose-finding simulations based on a customized decision table.

Usage

dec.sim(truep, decTable, start.level = 1, nsim = 1000)

Arguments

truep

a vector of length k (the number of doses being considered in the trial), with values equal to the true probabilities of toxicity at the dose levels.

decTable

a customized decision table. (same format as output of dec.table)

start.level

starting dose level. Defaults to 1, i.e. the lowest dose level.

nsim

the number of simulation trials. Defaults to 1000.

Value

the functions summary.dec.sim is used to obtain and print a summary table of the results (recommended). An object of class "dec.sim" is a list containing:

mtd

a vector of dose levels giving the recommended maximum tolerated dose (MTD) at the end of the trial.

mtd.prob

a vector of length k giving the average proportions of selected as MTD at each dose level.

over.prob

a vector of length k giving the average proportions of selected as over the MTD at each dose level.

n.patients

the average number of patients dosed at each level.

dlt

the average number of DLTs experienced at each dose level.

truep

input; true probabilities of toxicity.

start.level

input; starting dose level.

nsim

input; number of simulated trails.

Details

Assume there are $d$ dose levels to be studied. Denote the cumulative number of patients treated and cumulative number of DLTs at the current dose level are $n_i$ and $m_i$, respectively. $n_max$ is the maximum number of patients permitted to be treated at each dose level. The procedure is as follows

  • Step 1 : Update cumulative number of DLTs $m_i$ and total number of patients $n_i$ treated at the current dose and use the decision table to make a decision: if decision is ``S" --> step 2; if decision is ``D" or ``DU'' --> step 3; if decision is ``E'' --> step 4

  • Step 2 : If $n_i = n_max$, declare dose i as the MTD; otherwise, update $m_i$ and $n_i$ with additional cohort of patients and go to Step 1.

  • Step 3 : If the current dose level is the highest dose level, then: if n_i < n_max, update $m_i$ and $n_i$ with additional cohort of patients and go to Step 1; otherwise, stop the trial and declare that the MTD is higher than the highest dose level (inconclusive); If the current dose is not the lowest dose, then: if $n_i-1 < n_max$, update $m_i-1$ and $n_i-1$ with additional cohort of patients and set the current dose level to be the next lower dose level, and go to Step 1; otherwise, stop the trial and declare the next lower dose level is the MTD; Additionally, if the decision is ``DU'', record this dose level as DU and never treat additional patients at the current dose level again.

  • Step 4 : If the current dose level is the highest dose level, then: if $n_i < n_max$, update $m_i$ and $n_i$ with additional cohort of patients and go to Step 1; otherwise, stop the trial and declare that the MTD is higher than the highest dose level (inconclusive); If the next higher dose level is of status DU, then: if $n_i < n_max$, update $m_i$ and $n_i$ with additional cohort of patients and go to step 1; otherwise stop, the current dose level is MTD; Otherwise: if $n_i+1 < n_max$, update $m_i+1$ and $n_i+1$ with additional cohort of patients, set the current dose level to be next higher dose level, and go to step 1; else, the current dose level is the MTD.

Examples

Run this code
# NOT RUN {
truep <- c(0.3, 0.45, 0.5, 0.6)
res <- dec.table(0.6,0.4,0.2,0.3,c(3,3,3))
out <- dec.sim(truep, res$table, start.level = 2, nsim = 1000)
summary(out, pt = 0.3)
# }

Run the code above in your browser using DataLab