Learn R Programming

CRM (version 1.1.0)

crmsim: CRM Simulator

Description

crmsim, crmsiminc1 and crmsiminc2 implement the continued reassessment method (CRM) for dose finding in Phase I clinical trials. The operating characteristics of CRM are summarized through simulations.

crmsim allows users to select a variety of cohort sizes. A cohort of subjects are treated at the same dose.

The cohort size is fixed to 1 in crmsiminc1 and crmsiminc2. crmsiminc1 implements an algorithm that allows a clinical trial to proceed to the next subject's dose assignment before observing the last subject's toxicity data. crmsiminc2 allows a clinical trial to proceed to the next subject's dose assignment before observing the last two subject's toxicity data (see Iasonos et al. for details).

Usage

crmsim(target,prior,true,rate,cycle,cohort=1,nsubject=24,nsim=1000,
       model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)
crmsiminc1(target,prior,true,rate,cycle,nsubject=24,nsim=1000,
           model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)
crmsiminc2(target,prior,true,rate,cycle,nsubject=24,nsim=1000,
           model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

Arguments

target
Target probability of toxicity. The value must be in (0, 1).
prior
Prior probabilities of toxicity for each dose. The values must be in (0,1) and in an ascending order. For example, prior=c(0.05,0.1,0.2,0.3,0.5,0.7),which corresponds to dose levels 1, 2, 3, 4, 5 and 6,respectively.
true
True probabilities of toxicity. The values must be in (0,1) and in an ascending order. e.g. (0.1,0.2,0,3,0.4,0.5,0.8)
rate
Recruitment/accrual rate of subjects in a 30 window. For example,if 1 subject can be recruited per 30 days, then set rate = 1/30 = 0.033; if 2 patients per 30 day then rate = 2/30 = 0.0667.
cycle
The length of treatment cycle in days.
cohort
Cohort size of subjects entering into the trials. Default is 1. The value for cohort must be less than or equal to the value for nsubject.
nsubject
Total number of subjects in one simulation(or trial). Default is 24. nsubject should be equal to n*cohort,where n is positive integer.
nsim
Total number of simulations. Default is 1000.
model
Dose-toxicity model. The value must be 1 (hyperbolic tangent model) or 2 (one-parameter logistic model). Default is 1. Hyperbolic tangent model: $p(y=1|x,a) = ((tanh(x)+1)/2)^a$. One-parameter logistic model: $p(y=1|x,a,b) = exp(b+ax)/(1+exp
a0
Initial value for parameter a. Default is 1.0.
b
A fixed parameter for the one-parameter logistic model. Default is 3.0.
jump
jump=FALSE means NOT allowing that the proposed dose by the CRM program has an increase of more than one level than the previous level; jump=TRUE means allowing more-than-one-level increase of the proposed dose by the CRM program.
start.dose
Initial dose for each trial. Default is 1.
seed
Seed for the random number generator. Default is 777.

Value

  • SimResult is a matrix that summarizes the operating characteristics of CRM. The column names are the dose levels. The row names are the operating characteristics.
  • % Selectionthe percentage of selection of each dose as MTD
  • % Subjects Treatedthe percentage of subjects treated at each dose
  • # Subjects Treatedthe average number of subjects treated at each dose
  • Average Toxicitiesthe average toxicities per trial at each dose
  • True Probabilitiesthe true probability of toxicity of each dose

References

John O'Quigley, Margaret Pepe,and Lloyd Fisher. (1990). Continual Reassessment Method: A Practical Design for Phase 1 Clinical Trials in Cancer. Biometrics, 46, pp.33-48

Alexia Iasonos,Andrew S Wilton,Elyn R Riedel,Venkatraman E Seshan and David R Spriggs. A comprehensive comparison of the continual reassessment method to the standard 3+3 dose escalation scheme in Phase I dose-finding studies. Clinical Trials,2008,nil:1-12

See Also

crm

Examples

Run this code
prior1 <- c(0.05,0.1,0.2,0.3,0.5,0.7)
true1 <- c(0.1,0.15,0.2,0.4,0.5,0.8)

# simulations using model 1 (hyperbolic tangent model)
crmsim(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,cohort=1,nsubject=24,nsim=100,
       model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

crmsiminc1(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,nsubject=24,nsim=100,
           model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

crmsiminc2(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,nsubject=24,nsim=100,
           model=1,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

# simulations using model 2 (one-parameter logistic model)
crmsim(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,cohort=1,nsubject=24,nsim=100,
       model=2,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

crmsiminc1(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,nsubject=24,nsim=100,
           model=2,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

crmsiminc2(target=0.2,prior=prior1,true=true1,rate=0.1,cycle=21,nsubject=24,nsim=100,
           model=2,a0=1,b=3,jump=FALSE,start.dose=1,seed=777)

Run the code above in your browser using DataLab