Title: | Dose-Finding by the Continual Reassessment Method |
---|---|
Description: | Provides functions to run the CRM and TITE-CRM in phase I trials and calibration tools for trial planning purposes. |
Authors: | Ken Cheung <[email protected]> |
Maintainer: | Jimmy Duong <[email protected]> |
License: | GPL-2 |
Version: | 0.2-2.1 |
Built: | 2024-11-16 04:33:59 UTC |
Source: | https://github.com/cran/dfcrm |
Returns a message on the coherence status of a two-stage CRM design.
cohere(prior, target, x0, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), detail = TRUE)
cohere(prior, target, x0, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), detail = TRUE)
prior |
A vector of initial guesses of toxicity probabilities associated the doses. |
target |
The target DLT rate. |
x0 |
The initial design containing a non-decreasing sequence of dose levels. The length of the initial design is the sample size. |
method |
A character string to specify the method for parameter estimation. The default method “bayes” estimates the model parameter by the posterior mean. Maximum likelihood estimation is specified by “mle”. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
detail |
If TRUE, details about incoherent escalations will be displayed. |
message |
A string character giving a message regarding the coherence status of a two-stage CRM design. |
Cheung, Y. K. (2005). Coherence principles in dose-finding studies. Biometrika 92:863-873.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # The above design is coherent when target rate = 0.20 foo <- cohere(prior, target=0.2, x0) foo # The design is incoherent if a larger target DLT rate is used. foo2 <- cohere(prior, target=0.3, x0)
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # The above design is coherent when target rate = 0.20 foo <- cohere(prior, target=0.2, x0) foo # The design is incoherent if a larger target DLT rate is used. foo2 <- cohere(prior, target=0.3, x0)
crm
is used to compute a dose for the next patient in a phase I
trial according to the CRM.
crm(prior, target, tox, level, n = length(level), dosename = NULL, include = 1:n, pid = 1:n, conf.level = 0.9, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), model.detail = TRUE, patient.detail = TRUE, var.est = TRUE)
crm(prior, target, tox, level, n = length(level), dosename = NULL, include = 1:n, pid = 1:n, conf.level = 0.9, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), model.detail = TRUE, patient.detail = TRUE, var.est = TRUE)
prior |
A vector of initial guesses of toxicity probabilities associated the doses. |
target |
The target DLT rate. |
tox |
A vector of patient outcomes; 1 indicates a toxicity, 0 otherwise. |
level |
A vector of dose levels assigned to patients. The length
of |
n |
The number of patients enrolled. |
dosename |
A vector containing the names of the regimens/doses
used. The length of |
include |
A subset of patients included in the dose calculation. |
pid |
Patient ID provided in the study. Its length must be equal
to that of |
conf.level |
Confidence level for the probability/confidence interval of the returned dose-toxicity curve. |
method |
A character string to specify the method for parameter
estimation. The default method |
model |
A character string to specify the working model used in
the method. The default model is |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
model.detail |
If FALSE, the model content of an |
patient.detail |
If FALSE, patient summary of an |
var.est |
If TRUE, variance of the estimate of the model parameter and probability/confidence interval for the dose-toxicity curve will be computed |
For maximum likelihood estimation, the variance of the estimate of
(
post.var
) is approximated by the posterior variance of
with a dispersed normal prior.
The empiric model is specified as .
The logistic model is specified as logit
=
intcpt
. For
method="bayes"
, the prior on
is normal with mean 0. Exponentiation of
ensures an
increasing dose-toxicity function.
An object of class "mtd"
is returned, consisting of the summary
of dose assignments thus far and the recommendation of dose for the
next patient.
prior |
Initial guesses of toxicity rates. |
target |
The target probability of toxicity at the MTD. |
ptox |
Updated estimates of toxicity rates. |
ptoxL |
Lower confidence/probability limits of toxicity rates. |
ptoxU |
Upper confidence/probability limits of toxicity rates. |
mtd |
The updated estimate of the MTD. |
prior.var |
The variance of the normal prior. |
post.var |
The posterior variance of the model parameter. |
estimate |
Estimate of the model parameter. |
method |
The method of estimation. |
model |
The working model. |
dosescaled |
The scaled doses obtained via backward substitution. |
tox |
Patients' toxicity indications. |
level |
Dose levels assigned to patients. |
O'Quigley, J. O., Pepe, M., and Fisher, L. (1990). Continual reassessment method: A practical design for phase I clinical trials in cancer. Biometrics 46:33-48.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
# Create a simple data set prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 level <- c(3, 4, 4, 3, 3, 4, 3, 2, 2, 2) y <- c(0, 0, 1, 0, 0, 1, 1, 0, 0, 0) foo <- crm(prior, target, y, level) ptox <- foo$ptox # updated estimates of toxicity rates
# Create a simple data set prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 level <- c(3, 4, 4, 3, 3, 4, 3, 2, 2, 2) y <- c(0, 0, 1, 0, 0, 1, 1, 0, 0, 0) foo <- crm(prior, target, y, level) ptox <- foo$ptox # updated estimates of toxicity rates
Evaluate the model sensitivity in the CRM by indifference intervals.
crmsens(prior, target, model = "empiric", intcpt = 3, eps = 1e-06, maxit = 100, detail = FALSE)
crmsens(prior, target, model = "empiric", intcpt = 3, eps = 1e-06, maxit = 100, detail = FALSE)
prior |
A vector of initial guesses of toxicity probabilities associated the doses. |
target |
The target DLT rate. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
eps |
Error tolerance in the computation of indifference intervals. |
maxit |
Maximum number of iterations in the computation of indifference intervals. |
detail |
If TRUE, the details of the “H sets” will be displayed. Default is FALSE. |
The function crmsens
returns the model sensitivity for the
model specifications given by the user.
Hset |
The “H sets” of the model parameter. |
iint |
The indifference intervals of the dose-toxicity model associated with the test doses. |
Cheung, Y. K. and Chappell, R. (2002). A simple technique to evaluate model sensitivity in the continual reassessment method. Biometrics 58:671-674.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 foo <- crmsens(prior, target, model="logistic", intcpt=2, detail=TRUE)
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 foo <- crmsens(prior, target, model="logistic", intcpt=2, detail=TRUE)
crmsim
is used to generate simulation replicates of phase I
trial using the (group) CRM under a specified dose-toxicity
configuration.
crmsim(PI, prior, target, n, x0, nsim = 1, mcohort = 1, restrict = TRUE, count = TRUE, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), seed = 1009)
crmsim(PI, prior, target, n, x0, nsim = 1, mcohort = 1, restrict = TRUE, count = TRUE, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), seed = 1009)
PI |
A vector of the true toxicity probabilites associated with the doses. |
prior |
A vector of initial guesses of toxicity probabilities
associated with the doses. Must be of same length as |
target |
The target DLT rate. |
n |
Sample size of the trial. |
x0 |
The initial design. For one-stage TITE-CRM, it is a
single numeric value indicating the starting dose. For two-stage
TITE-CRM, it is a non-decreasing sequence of dose levels of length
|
nsim |
The number of simulations. Default is set at 1. |
mcohort |
The number of patients enrolled before the next model-based update. Default is set at 1, i.e., a fully sequential update. |
restrict |
If TRUE, restrictions apply during the trials to avoid (1) skipping doses in escalation and (2) escalation immediately after a toxic outcome (i.e., incoherent escalation). If FALSE, dose assignments are purely model-based. |
count |
If TRUE, the number of the current simulation replicate will be displayed. |
method |
A character string to specify the method for parameter estimation. The default method “bayes” estimates the model parameter by the posterior mean. Maximum likelihood estimation is specified by “mle”. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
seed |
Seed of the random number generator. |
An object of class “sim” is returned, consisting of the operating
characteristics of the design specified. The time component of the
design is suppressed for the CRM simulator. All “sim” objects
generated by crmsim
contain at least the following components:
PI |
True toxicity rates. |
prior |
Initial guesses of toxicity rates. |
target |
The target probability of toxicity at the MTD. |
n |
Sample size. |
x0 |
The initial design. |
MTD |
Distribution of the MTD estimates. If |
level |
Average number of patients treated at the test doses. If
|
tox |
Average number of toxicities seen at the test doses. If
|
beta.hat |
The estimates of the model parameter throughout the simulated trial(s). The dose assignment of the jth patient in each trial corresponds to the jth element in each row. |
final.est |
The final estimates of the model parameter of the simulated trials. |
O'Quigley, J. O., Pepe, M., and Fisher, L. (1990). Continual reassessment method: A practical design for phase I clinical trials in cancer. Biometrics 46:33-48.
Cheung, Y. K. (2005). Coherence principles in dose-finding studies. Biometrika 92:863-873.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
PI <- c(0.10, 0.20, 0.40, 0.50, 0.60, 0.65) prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # Generate a single replicate of two-stage group CRM trial of group size 3 foo <- crmsim(PI, prior, target, 24, x0, mcohort=3) ## Not run: plot(foo,ask=T) # summarize trial graphically # Generate 10 replicates of CRM trial with 24 subjects foo10 <- crmsim(PI, prior, target, 24, 3, nsim=10, mcohort=2) foo10
PI <- c(0.10, 0.20, 0.40, 0.50, 0.60, 0.65) prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # Generate a single replicate of two-stage group CRM trial of group size 3 foo <- crmsim(PI, prior, target, 24, x0, mcohort=3) ## Not run: plot(foo,ask=T) # summarize trial graphically # Generate 10 replicates of CRM trial with 24 subjects foo10 <- crmsim(PI, prior, target, 24, 3, nsim=10, mcohort=2) foo10
Returns an initial design that is compatible with the specified CRM setup when used in a two-stage design.
getinit(prior, target, n, nK = round(n/3), method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), detail = FALSE)
getinit(prior, target, n, nK = round(n/3), method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), detail = FALSE)
prior |
A vector of initial guesses of toxicity probabilities associated the doses. |
target |
The target DLT rate. |
n |
The sample size of the trial. |
nK |
The minimum number of subjects required at the highest test dose in case of no toxicity throughout the trial. |
method |
A character string to specify the method for parameter estimation. The default method “bayes” estimates the model parameter by the posterior mean. Maximum likelihood estimation is specified by “mle”. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
detail |
If TRUE, intermediate designs will be displayed. |
An initial design will be incompatible to the CRM setup if the
escalation pace is too conservative, i.e. slow. The algorithm in
getinit
starts the search of a compatible design with an
aggressive initial design that starts a trial at the second highest
dose. A more conservative design will be subsequently tested for
compatibility if the current design is compatible. The sequence
returned may be viewed as a conservative compatible initial design.
A non-decreasing sequence of dose levels is returned.
Cheung, Y. K. (2005). Coherence principles in dose-finding studies. Biometrika 92:863-873.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 # Seach stops because it requires at least 8 subjects at the highest dose getinit(prior, target, 25, nK=8, method="mle", detail=TRUE) # Search stops because an incompatible design is reached getinit(prior, 0.3, 25, nK=8, method="mle", detail=TRUE)
prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 # Seach stops because it requires at least 8 subjects at the highest dose getinit(prior, target, 25, nK=8, method="mle", detail=TRUE) # Search stops because an incompatible design is reached getinit(prior, 0.3, 25, nK=8, method="mle", detail=TRUE)
Sample size calculator for a one-stage Bayesian CRM (see Details for design specification).
getn(apcs, target, nlevel, psi, correction = TRUE, detail = FALSE)
getn(apcs, target, nlevel, psi, correction = TRUE, detail = FALSE)
apcs |
The desired average probability of correction selection (PCS) under the logistic calibration set. |
target |
The target DLT rate. |
nlevel |
The number of test doses. |
psi |
Effect size, i.e., odds ratio of the logistic dose-toxicity curves. |
correction |
Continuity correction is applied in the sample size calculation if TRUE (default). Otherwise if FALSE. |
detail |
Print only essential results for trial planning if FALSE (default). Otherwise if TRUE. |
The sample size calculation is based on empirical approximation for the CRM using the power (or empiric)
dose-toxicity function, , where
has a normal prior with
mean 0 and variance 1.34, and the starting dose is the median level.
The “skeleton" is obtained by setting
halfwidth
at
target
,
and nu
at the median level in the function getprior
.
The calculation is intended to serve as an initial sample size for the CRM calibration process depicted in Figure 7.1 in Cheung (2011).
An object of class “crmsize" is returned, consisting of the following components:
n |
The calculated sample size. |
astar |
The desired average PCS. |
target |
The target DLT rate. |
nlevel |
The number of test doses. |
psi |
Odds ratio. |
bstar |
An intermediate value used to calculate the sample size. Shown only if |
efficiency |
Ratio of required sample sizes of the optimal benchmark and the CRM. Shown only if |
correction |
Whether continuity correction is applied. Shown only if |
na |
The CRM sample size before rounding up. |
nb |
The sample size lower bound before rounding up. |
messages |
String characters prompt warning messages and caveats regarding the sample size calculation. |
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
apcs <- 0.6 target <- 0.25 nlevel <- 5 psi <- 1.8 # Sample size calculation with continuity correction obj = getn(apcs, target, nlevel, psi, correction=TRUE) obj N = obj$n
apcs <- 0.6 target <- 0.25 nlevel <- 5 psi <- 1.8 # Sample size calculation with continuity correction obj = getn(apcs, target, nlevel, psi, correction=TRUE) obj N = obj$n
Returns a vector of initial guesses of toxicity probabilities associated the doses for a given model sensitivity (set of indifference intervals).
getprior(halfwidth, target, nu, nlevel, model = "empiric", intcpt = 3)
getprior(halfwidth, target, nu, nlevel, model = "empiric", intcpt = 3)
halfwidth |
The desired halfwidth of the indifference intervals. |
target |
The target DLT rate. |
nu |
The prior guess of MTD. |
nlevel |
The number of test doses. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
getprior
is an “inverse” function of crmsens
which
gives the indifference intervals for a given set of initial guesses.
A vector of length nlevel
is returned.
Cheung, Y. K. and Chappell, R. (2002). A simple technique to evaluate model sensitivity in the continual reassessment method. Biometrics 58:671-674.
Lee, S. M. and Cheung Y. K. (2009). Model calibration in the continual reassessment method. Clinical Trials 6, 227-238.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
target <- 0.25 delta <- 0.10 mtd0 <- 3 # initial DLT rates with indifference intervals [0.15, 0.35]. prior <- getprior(delta, target, mtd0, nlevel=6, model="logistic")
target <- 0.25 delta <- 0.10 mtd0 <- 3 # initial DLT rates with indifference intervals [0.15, 0.35]. prior <- getprior(delta, target, mtd0, nlevel=6, model="logistic")
titecrm
is used to compute a dose for the next patient in a
phase I trial according to the TITE-CRM.
titecrm(prior, target, tox, level, n = length(level), weights = NULL, followup = NULL, entry = NULL, exit = NULL, obswin = NULL, scheme = "linear", conf.level = 0.9, dosename = NULL, include = 1:n, pid = 1:n, method = "bayes", model = "empiric", var.est = TRUE, scale = sqrt(1.34), intcpt = 3, model.detail = TRUE, patient.detail = TRUE, tite = TRUE)
titecrm(prior, target, tox, level, n = length(level), weights = NULL, followup = NULL, entry = NULL, exit = NULL, obswin = NULL, scheme = "linear", conf.level = 0.9, dosename = NULL, include = 1:n, pid = 1:n, method = "bayes", model = "empiric", var.est = TRUE, scale = sqrt(1.34), intcpt = 3, model.detail = TRUE, patient.detail = TRUE, tite = TRUE)
prior |
A vector of initial guesses of toxicity probabilities associated the doses. |
target |
The target DLT rate. |
tox |
A vector of patient outcomes; 1 indicates a toxicity, 0 otherwise. |
level |
A vector of dose levels assigned to patients. The length
of |
n |
The number of patients enrolled. |
weights |
A vector of weights assigned to observations. A
weight must be between 0 and 1. If given, the arguments
|
followup |
A vector of follow-up times of patients. If given,
the arguments |
entry |
A vector of entry times of the patients. |
exit |
A vector of exit times of the patients due to either end of follow-up or toxicity. |
obswin |
The observation window with respect to which the MTD is
defined. If not supplied, users must provide |
scheme |
A character string to specify the method for assigning weights. Default is “linear”. An adaptive weight function is specified by “adaptive”. |
conf.level |
Confidence level for the probability/confidence interval of the returned dose-toxicity curve. |
dosename |
A vector containing the names of the regimens/doses
used. The length of |
include |
A subset of patients included in the dose calculation. |
pid |
Patient ID provided in the study. Its length must be equal
to that of |
method |
A character string to specify the method for parameter estimation. The default method “bayes” estimates the model parameter by the posterior mean. Maximum likelihood estimation is specified by “mle”. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
var.est |
If TRUE, variance of the estimate of the model parameter and probability/confidence interval for the dose-toxicity curve will be computed. |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
model.detail |
If FALSE, the model content of an “mtd” object will not be displayed. Default is TRUE. |
patient.detail |
If FALSE, patient summary of an “mtd” object will not be displayed. Default is TRUE. |
tite |
If FALSE, the time components in patient summary of an “mtd” object will be omitted. Default in TRUE. |
The adaptive weighting scheme is given in Cheung and Chappell (2000) given in the reference list.
An object of class “mtd” is returned, consisting of the summary of dose assignments thus far and the recommendation of dose for the next patient.
prior |
Initial guesses of toxicity rates. |
target |
The target probability of toxicity at the MTD. |
ptox |
Updated estimates of toxicity rates. |
ptoxL |
Lower confidence/probability limits of toxicity rates. |
ptoxU |
Upper confidence/probability limits of toxicity rates. |
mtd |
The updated estimate of the MTD. |
prior.var |
The variance of the normal prior. |
post.var |
The posterior variance of the model parameter. |
estimate |
Estimate of the model parameter. |
method |
The method of estimation. |
model |
The working model. |
dosescaled |
The scaled doses obtained via backward substitution. |
tox |
Patients' toxicity indications. |
level |
Dose levels assigned to patients. |
followup |
Follow-up times of patients. |
obswin |
Observation window with respect to which the MTD is defined. |
weights |
Weights assigned to patients. |
entry |
Entry times of patients. |
exit |
Exit times of patients. |
scheme |
Weighting scheme. |
Cheung, Y. K. and Chappell, R. (2000). Sequential designs for phase I clinical trials with late-onset toxicities. Biometrics 56:1177-1182.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
# Create a simple data set prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 level <- c(3, 3, 3, 4, 4, 3, 2, 2, 2, 3) y <- c(0, 0, 1, 0, 1, 0, 0, 0, 0, 0) u <- c(178, 181, 168, 181, 24, 181, 179, 102, 42, 3) tau <- 180 foo <- titecrm(prior, target, y, level, followup=u, obswin=tau) rec <- foo$mtd # recommend a dose level for next patient # An example with adaptive weight foo2 <- titecrm(prior, target, y, level, followup=u, obswin=tau, scheme="adaptive") wts <- foo2$weights # The `weights' argument makes `followup' and `obswin' obsolete foo3 <- titecrm(prior, target, y, level, weights=wts, followup=u, obswin=tau) ## Not run: plot(foo3, ask=T) ## Patient time information via `entry' and `exit' arguments # entry time (days since study begins) entry <- c(7, 29, 49, 76, 92, 133, 241, 303, 363, 402) # exit time (days since study begins) exit <- c(185, 210, 217, 257, 116, 314, 420, 405, 405, 405) foo4 <- titecrm(prior, target, y, level, exit=exit, entry=entry, obswin=tau) ## Not run: plot(foo4, ask=T)
# Create a simple data set prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 level <- c(3, 3, 3, 4, 4, 3, 2, 2, 2, 3) y <- c(0, 0, 1, 0, 1, 0, 0, 0, 0, 0) u <- c(178, 181, 168, 181, 24, 181, 179, 102, 42, 3) tau <- 180 foo <- titecrm(prior, target, y, level, followup=u, obswin=tau) rec <- foo$mtd # recommend a dose level for next patient # An example with adaptive weight foo2 <- titecrm(prior, target, y, level, followup=u, obswin=tau, scheme="adaptive") wts <- foo2$weights # The `weights' argument makes `followup' and `obswin' obsolete foo3 <- titecrm(prior, target, y, level, weights=wts, followup=u, obswin=tau) ## Not run: plot(foo3, ask=T) ## Patient time information via `entry' and `exit' arguments # entry time (days since study begins) entry <- c(7, 29, 49, 76, 92, 133, 241, 303, 363, 402) # exit time (days since study begins) exit <- c(185, 210, 217, 257, 116, 314, 420, 405, 405, 405) foo4 <- titecrm(prior, target, y, level, exit=exit, entry=entry, obswin=tau) ## Not run: plot(foo4, ask=T)
titesim
is used to generate simulation replicates of phase I
trial using the TITE-CRM under a specified dose-toxicity
configuration.
titesim(PI, prior, target, n, x0, nsim = 1, restrict = TRUE, obswin = 1, tgrp = obswin, rate = 1, accrual = "fixed", surv = "uniform", scheme = "linear", count = TRUE, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), seed = 1009)
titesim(PI, prior, target, n, x0, nsim = 1, restrict = TRUE, obswin = 1, tgrp = obswin, rate = 1, accrual = "fixed", surv = "uniform", scheme = "linear", count = TRUE, method = "bayes", model = "empiric", intcpt = 3, scale = sqrt(1.34), seed = 1009)
PI |
A vector of the true toxicity probabilites associated with the doses. |
prior |
A vector of initial guesses of toxicity probabilities
associated with the doses. Must be of same length as |
target |
The target DLT rate. |
n |
Sample size of the trial. |
x0 |
The initial design. For one-stage TITE-CRM, it is a
single numeric value indicating the starting dose. For two-stage
TITE-CRM, it is a non-decreasing sequence of dose levels of length
|
nsim |
The number of simulations. Default is set at 1. |
restrict |
If TRUE, restrictions apply during the trials to avoid (1) skipping doses in escalation and (2) escalation immediately after a toxic outcome (i.e., incoherent escalation). If FALSE, dose assignments are purely model-based. |
obswin |
The observation window with respect to which the MTD is defined. |
tgrp |
The minimum waiting time between two dose cohorts at the
initial stage. Default is set as |
rate |
Patient arrival rate: Expected number of arrivals per observation window. Example: obswin=6 and rate=3 means expecting 3 patients arrive in 6 time units. |
accrual |
Patient accrual scheme. Default is “fixed” whereby inter-patient arrival is fixed. Alternatively, use “poisson” to simulate patient arrivals by the Poisson process. |
surv |
Distribution for time-to-toxicity. Default is “uniform”
where toxicity, if occurs, occurs uniformly on the interval
[0, |
scheme |
A character string to specify the method for assigning weights. Default is “linear”. An adaptive weight is specified by “adaptive”. |
count |
If TRUE, the number of the current simulation replicate will be displayed. |
method |
A character string to specify the method for parameter estimation. The default method “bayes” estimates the model parameter by the posterior mean. Maximum likelihood estimation is specified by “mle”. |
model |
A character string to specify the working model used in the method. The default model is “empiric”. A one-parameter logistic model is specified by “logistic”. |
intcpt |
The intercept of the working logistic model. The
default is 3. If |
scale |
Standard deviation of the normal prior of the model parameter. Default is sqrt(1.34). |
seed |
Seed of the random number generator. |
An object of class “sim” is returned, consisting of the operating characteristics of the design specified.
For a “sim” object with nsim
=1, the time component of
individual subjects in the simulated trial is available via the
values arrival
, toxicity.time
, and
toxicity.study.time
which respectively contain patients'
arrival times, times-to-toxicity, and the times-to-toxicity per study time.
For a “sim” object with nsim
>1, the time component of the
design is summarized via the value Duration
, which is the
duration of the simulated trials, computed by adding the arrival time
of the last patient and obswin
.
All “sim” objects contain at least the following components:
PI |
True toxicity rates. |
prior |
Initial guesses of toxicity rates. |
target |
The target probability of toxicity at the MTD. |
n |
Sample size. |
x0 |
The initial design. |
MTD |
Distribution of the MTD estimates. If |
level |
Average number of patients treated at the test doses. If
|
tox |
Average number of toxicities seen at the test doses. If
|
beta.hat |
The estimates of the model parameter throughout the simulated trial(s). The dose assignment of the jth patient in each trial corresponds to the jth element in each row. |
final.est |
The final estimates of the model parameter of the simulated trials. |
Cheung, Y. K. and Chappell, R. (2000). Sequential designs for phase I clinical trials with late-onset toxicities. Biometrics 56:1177-1182.
Cheung, Y. K. (2005). Coherence principles in dose-finding studies. Biometrika 92:863-873.
Cheung, Y. K. (2011). Dose Finding by the Continual Reassessment Method. New York: Chapman & Hall/CRC Press.
PI <- c(0.10, 0.20, 0.40, 0.50, 0.60, 0.65) prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # Generate a single replicate of two-stage TITE-CRM trial of size 24 foo <- titesim(PI, prior, target, 24, x0, obswin=6, rate=4, accrual="poisson") ## Not run: plot(foo, ask=T) # summarize trial graphically # Generate 10 replicates of TITE-CRM trial of size 24 foo10 <- titesim(PI, prior, target, 24, 3, nsim=10, obswin=6, rate=4, accrual="poisson") foo10
PI <- c(0.10, 0.20, 0.40, 0.50, 0.60, 0.65) prior <- c(0.05, 0.10, 0.20, 0.35, 0.50, 0.70) target <- 0.2 x0 <- c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,9)) # Generate a single replicate of two-stage TITE-CRM trial of size 24 foo <- titesim(PI, prior, target, 24, x0, obswin=6, rate=4, accrual="poisson") ## Not run: plot(foo, ask=T) # summarize trial graphically # Generate 10 replicates of TITE-CRM trial of size 24 foo10 <- titesim(PI, prior, target, 24, 3, nsim=10, obswin=6, rate=4, accrual="poisson") foo10