obd.select | R Documentation |
Selects the optimal biological dose (OBD) from a set of candidate doses by balancing toxicity and efficacy considerations using various utility-based methods. The OBD is the dose that optimizes the risk-benefit trade-off, typically used in oncology trials where both safety and therapeutic effect must be considered simultaneously.
obd.select(
probt, probe, method,
phi, phi1, phi2,
delta, delta1,
tterm, eterm, stopT, stopE,
w1, w2,
plow.ast, pupp.ast,
qlow.ast, qupp.ast,
psi00, psi11)
probt |
Numeric vector of estimated toxicity probabilities for each dose level. Values should be between 0 and 1. |
probe |
Numeric vector of estimated efficacy probabilities for each dose level.
Values should be between 0 and 1. Must have same length as |
method |
Character string specifying the method for OBD selection. Must be one of:
|
phi |
Target toxicity probability (used in "max.effprob" method). |
phi1 |
Lower bound of acceptable toxicity probability range. Used for defining toxicity intervals in some methods. |
phi2 |
Upper bound of acceptable toxicity probability range. Used as toxicity threshold in "utility.weighted" method. |
delta |
Target efficacy probability. |
delta1 |
Lower bound of acceptable efficacy probability range. |
tterm |
Numeric vector of probabilities of meeting toxicity stopping criteria
for each dose. Same length as |
eterm |
Numeric vector of probabilities of meeting efficacy stopping criteria
for each dose. Same length as |
stopT |
Toxicity stopping threshold. Doses are excluded if
|
stopE |
Efficacy stopping threshold. Doses are excluded if
|
w1 |
Weight parameter for toxicity-efficacy trade-off in "utility.weighted" method. Higher values emphasize efficacy more heavily. |
w2 |
Weight parameter for penalty imposed on toxic doses in "utility.weighted" method. Higher values penalize toxicity more heavily. |
plow.ast |
Lower threshold of toxicity for the linear truncated utility function (used in "utility.truncated.linear" method). |
pupp.ast |
Upper threshold of toxicity for the linear truncated utility function (used in "utility.truncated.linear" method). |
qlow.ast |
Lower threshold of efficacy for the linear truncated utility function (used in "utility.truncated.linear" method). |
qupp.ast |
Upper threshold of efficacy for the linear truncated utility function (used in "utility.truncated.linear" method). |
psi00 |
Utility score for the outcome (toxicity=FALSE, efficacy=FALSE) in "utility.scoring" method. |
psi11 |
Utility score for the outcome (toxicity=TRUE, efficacy=TRUE) in "utility.scoring" method. |
The function implements four different methods for OBD selection:
Method 1: "utility.weighted" Uses a weighted utility function that combines toxicity and efficacy probabilities with user-specified weights. Higher weight on w1 emphasizes efficacy, while higher weight on w2 penalizes toxicity more heavily.
Method 2: "utility.truncated.linear" Employs piecewise linear utility functions with truncation points for both toxicity and efficacy. This method allows for more flexible modeling of the utility surface with different slopes in different probability ranges.
Method 3: "utility.scoring" Uses a discrete scoring system based on four possible outcomes: (no toxicity, no efficacy), (no toxicity, efficacy), (toxicity, no efficacy), and (toxicity, efficacy).
Method 4: "max.effprob" Maximizes efficacy probability among doses with acceptable toxicity profiles. First identifies the maximum tolerated dose (MTD), then selects the dose with highest efficacy probability among acceptable doses.
The function only considers doses that meet both toxicity and efficacy stopping criteria (controlled by stopT and stopE parameters).
Integer value representing the index of the selected optimal biological dose.
The returned value corresponds to the position in the input vectors probt
and probe
. If no dose meets the stopping criteria, the function behavior
depends on the implementation of the underlying utility functions.
All probability vectors (probt
, probe
, tterm
, eterm
)
must have the same length.
Only doses that satisfy both tterm >= (1-stopT)
and
eterm >= (1-stopE)
are considered as candidates.
If multiple doses have the same maximum utility, the function returns the lowest dose index among them.
Required parameters vary by method - ensure appropriate parameters are provided for the selected method.
Thall, P. F., & Cook, J. D. (2004). Dose-finding based on efficacy-toxicity trade-offs. Biometrics, 60(3), 684-693.
Yin, G., Li, Y., & Ji, Y. (2006). Bayesian dose-finding in phase I/II clinical trials using toxicity and efficacy odds ratios. Biometrics, 62(3), 777-784.
Houede, N., Thall, P. F., Nguyen, H., Paoletti, X., & Kramar, A. (2010). Utility-based optimization of combination therapy using ordinal toxicity and efficacy in phase I/II trials. Biometrics, 66(2), 532-540.
Zhou, H., Murray, T. A., Pan, H., & Yuan, Y. (2018). Comparative review of novel model-assisted designs for phase I clinical trials. Statistics in Medicine, 37(20), 2892-2922.
utility.weighted
, utility.truncated.linear
,
utility.scoring
for the underlying utility functions.
# Example 1: Using utility.weighted method
probt <- c(0.05, 0.15, 0.30, 0.50, 0.65)
probe <- c(0.10, 0.25, 0.45, 0.60, 0.55)
tterm <- c(0.95, 0.90, 0.85, 0.75, 0.60)
eterm <- c(0.90, 0.85, 0.80, 0.85, 0.70)
obd_weighted <- obd.select(
probt = probt, probe = probe,
method = "utility.weighted",
phi2 = 0.35, w1 = 1.0, w2 = 0.5,
tterm = tterm, eterm = eterm,
stopT = 0.10, stopE = 0.10
)
# Example 2: Using max.effprob method
obd_maxeff <- obd.select(
probt = probt, probe = probe,
method = "max.effprob",
phi = 0.30,
tterm = tterm, eterm = eterm,
stopT = 0.10, stopE = 0.10
)
# Example 3: Using utility.scoring method
obd_scoring <- obd.select(
probt = probt, probe = probe,
method = "utility.scoring",
psi00 = 0, psi11 = 60,
tterm = tterm, eterm = eterm,
stopT = 0.10, stopE = 0.10
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.