dec.sim: Run dose-finding simulations

View source: R/dec.sim.R

dec.simR Documentation

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, giving the true toxicity probabilities for the dose levels under study.

decTable

A customized decision table in the same format as the output of dec.table.

start.level

Starting dose level. Defaults to 1, the lowest dose level.

nsim

Number of simulated trials. Defaults to 1000.

Details

Assume there are d dose levels to be studied. Let n_i and m_i denote the cumulative number of patients treated and the cumulative number of DLTs observed at the current dose level, respectively. Let n_{max} be the maximum number of patients allowed at each dose level. The procedure is as follows:

Step 1

Update the cumulative numbers of DLTs (m_i) and total treated patients (n_i) at the current dose, then use the decision table to choose an action. If the decision is "S", go to Step 2. If the decision is "D" or "DU", go to Step 3. If the decision is "E", go to Step 4.

Step 2

If n_i = n_{max}, declare dose i as the MTD. Otherwise, treat an additional cohort at the current dose and return to Step 1.

Step 3

If the current dose is the lowest dose, stop the trial and declare that the MTD is below the lowest dose. Otherwise, if the next lower dose has not yet reached n_{max}, treat an additional cohort there, move to that dose, and return to Step 1. If the next lower dose has already reached n_{max}, stop the trial and declare that dose as the MTD. If the decision is "DU", record the current dose as unusable and do not treat additional patients there.

Step 4

If the current dose is the highest dose, stop the trial and declare that the MTD is above the highest dose. Otherwise, if the next higher dose has been marked "DU", continue treating the current dose until it reaches n_{max}; if that limit is reached, declare the current dose as the MTD. If the next higher dose is available and has not yet reached n_{max}, treat an additional cohort there, move up to that dose, and return to Step 1. Otherwise, declare the current dose as the MTD.

Value

An object of class "dec.sim". Use summary.dec.sim to obtain and print a summary table of the results. The returned object 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 proportion of trials that selected each dose level as the MTD.

over.prob

A vector of length k giving the proportion of trials that selected each dose level as above the MTD.

n.patients

The average number of patients treated at each dose level.

dlt

The average number of DLTs observed at each dose level.

truep

The input true toxicity probabilities.

start.level

The input starting dose level.

nsim

The input number of simulated trials.

Author(s)

Wenchuan Guo <wguo1017@gmail.com>

Examples

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, as.matrix(res$table), start.level = 2, nsim = 1000)
summary(out, pt = 0.3)

tsdf documentation built on April 26, 2026, 1:06 a.m.