Compute MAP priors for BLRMs
get_MAP.Rd
Fit data from one or more monotherapy or combination therapy trials to a hierarchical BLRM and extract estimates of the resulting meta-analytic predictive prior for a new monotherapy or combination therapy trial.
The function get_MAP_mono()
supports only monotherapy data (from one or more trials)
as input and will produce the MAP prior for a two-parameter monotherapy BLRM.
For the function get_MAP()
, data from one or more monotherapy and/or
combination therapy trials can be given, which is then used to derive the MAP
prior for a five-parameter combination therapy BLRM. Note that this also contains
the parameter for the implicit model for the monotherapy DLT rates, so that one
can use get_MAP()
in principle also to derive MAP priors for monotherapy
from both monotherapy and combination therapy data.
Usage
get_MAP(
dose1,
dose2,
dose.ref1,
dose.ref2,
n.pat,
n.dlt,
trial,
prior.mu = list(mu_a1 = c(logit(0.33), 2),
mu_b1 = c(0, 1),
mu_a2 = c(logit(0.33), 2),
mu_b2 = c(0, 1),
mu_eta = c(0, 1.121)
),
prior.tau = list(tau_a1 = c(log(0.25), log(2)/1.96),
tau_b1 = c(log(0.125), log(2)/1.96),
tau_a2 = c(log(0.25), log(2)/1.96),
tau_b2 = c(log(0.125), log(2)/1.96),
tau_eta = c(log(0.125), log(2)/1.96)
),
saturating = FALSE,
return.samples = FALSE,
probs = c(0.025, 0.5, 0.975),
...
)
get_MAP_mono(
dose,
dose.ref,
n.pat,
n.dlt,
trial,
prior.mu.mono = list(mu_a = c(logit(0.33), 2),
mu_b = c(0, 1)),
prior.tau.mono = list(tau_a = c(log(0.25), log(2)/1.96),
tau_b = c(log(0.125), log(2)/1.96)),
return.samples = FALSE,
probs = c(0.025, 0.5, 0.975),
...
)
Arguments
- dose1
Numerical vector of non-negative entries that provide the administered dose level of compound 1 for each cohort. To include monotherapy dose levels in the data given to
get_MAP()
, one can use0
orNA
to indicate that compound 1 was not administered to a cohort. Note that cohorts for which bothdose1
anddose2
are either0
orNA
will be removed from the data.- dose2
Numerical vector of non-negative entries that provide the administered dose level of compound 2 for each cohort. To include monotherapy dose levels in the data given to
get_MAP()
, one can use0
orNA
to indicate that compound 2 was not administered to a cohort. Note that cohorts for which bothdose1
anddose2
are either0
orNA
will be removed from the data.- dose.ref1
Positive number, reference dose for compound 1.
- dose.ref2
Positive number, reference dose for compound 2.
- n.pat
Numerical vector that lists the number of patients for each cohort.
- n.dlt
Numerical vector that lists the number of DLTs for each cohort.
- trial
Numerical or character vector that indicates to which trial a cohort is assigned to. The entries can either be numericals or strings, where
1
and"1"
would be interpreted as the same trial. Note that the given entries are internally converted to numbers from 1 to the number of different studies if not already given in this form.- prior.mu
Named list that specifies the distribution of the hypermeans of the parameters of the combination therapy BLRM. Same format, default, and requirements as documented for the function
scenario_jointBLRM()
.- prior.tau
Named list that specifies the distribution of the between-trial heterogeneities of the parameters of the combination therapy BLRM. Same format, default, and requirements as documented for the function
scenario_jointBLRM()
.- saturating
Optional logical, defaults to
FALSE
. IfTRUE
, the BLRM will be using a saturating interaction term as described inOncoBayes2::blrm_formula_saturating()
. Also refer to the Details section in the documentation ofscenario_jointBLRM()
.- return.samples
Optional logical, defaults to
FALSE
. IfTRUE
, the function will return a matrix with samples from the MAP prior additionally to a prior summary.- probs
Optional numerical, defaults to
c(0.025, 0.5, 0.975)
. Indicates which quantiles should be included in the posterior summaries.- ...
Optional additional arguments that are passed to
rstan::sampling()
. These include the settings for MCMC and the random seed. Refer to therstan-package
for an overview. Note that the function will automatically useiter=10000
and acontrol
argument containingadapt_delta=0.9
to ensure a relatively good fit if the argumentsiter
andcontrol
forrstan::sampling()
are not provided manually in...
.- dose
Numerical vector that lists the dose levels of a monotherapy compound applied to each patient. The length must be equal to the number of cohorts in the data.
- dose.ref
Positive number, reference dose for the monotherapy compound.
- prior.mu.mono
Optional named list that specifies the prior. Must have the entries
mu_a
andmu_b
, both of which must be vectors of length 2, where the second entry is a positive number.
The entries need to be:...$mu_a
:
Defaults toc(logit(0.33), 2)
, provides mean and SD of the normal distribution used as hypermean of \(log(\alpha)\)....$mu_b
:
Defaults toc(0, 1)
, provides mean and SD of the normal distribution used as hypermean of \(log(\beta)\).
- prior.tau.mono
Optional named list that specifies the prior. Must have the entries
tau_a
andtau_b
, both of which must be vectors of length 2, where the second entry is a positive number.
The entries need to be:...$tau_a
:
Defaults toc(log(0.25), log(2)/1.96)
, provides mean and SD (on log-scale) of the log-normal distribution used as between-trial heterogeneity of \(log(\alpha)\)....$tau_b
:
Defaults toc(log(0.125), log(2)/1.96)
, provides mean and SD (on log-scale) of the log-normal distribution used as between-trial heterogeneity of \(log(\beta)\).
Value
A table containing prior summaries of the MAP priors for either the parameters
\(log(\alpha)\) and \(log(\beta)\) (function get_MAP_mono()
) or of the
parameters \(log(\alpha_1)\), \(log(\beta_1)\), \(log(\alpha_2)\), \(log(\beta_2)\),
and \(\eta\) (function get_MAP()
). If return.samples
is TRUE
,
the output is instead a list with entries ...$summary
and ...$samples
,
where the first entry contains the prior summary and the second entry a table with
the drawn samples for each parameter.
Details
The model for computing meta-analytic predictive prior is specified according to
Neuenschwander et al. (2014, 2016). A model description of the hierarchical BLRM
used by the function to obtain the predictive distribution can be found in the documentation
of scenario_jointBLRM()
.
The underlying model for monotherapy MAP priors is the two-parameter monotherapy variant of the
more general hierarchical model that is described in the documentation of
scenario_jointBLRM()
.
As the function get_MAP_mono()
only considers monotherapy, only the parameters \(log(\alpha)\)
and \(log(\beta)\) are needed to model the DLT rate of each dose level.
Besides this, the same hierarchical model structure as described in
scenario_jointBLRM()
is used.
References
Stan Development Team (2020). RStan: the R interface to Stan. R package version 2.21.2. https://mc-stan.org.
Neuenschwander, B., Branson, M., & Gsponer, T. (2008). Critical aspects of the Bayesian approach to phase I cancer trials. Statistics in medicine, 27(13), 2420-2439, doi:10.1002/sim.3230.
Schmidli, H., Gsteiger, S., Roychoudhury, S., O'Hagan, A., Spiegelhalter, D., & Neuenschwander B. (2014). Robust meta-analytic-predictive priors in clinical trials with historical control information.
Neuenschwander, B., Matano, A., Tang, Z., Roychoudhury, S., Wandel, S., & Bailey, S. (2014). A Bayesian Industry Approach to Phase I Combination Trials in Oncology. In: Zhao. W & Yang, H. (editors). Statistical methods in drug combination studies. Chapman and Hall/CRC, 95-135, doi:10.1201/b17965.
Neuenschwander, B., Roychoudhury, S., & Schmidli, H. (2016). On the use of co-data in clinical trials. Statistics in Biopharmaceutical Research, 8(3), 345-354, doi:10.1080/19466315.2016.1174149.
Examples
if (FALSE) {
MAPprior_combi <- get_MAP(
dose1 = c(1, 2, 3, 4, 0, 0, 2, 2),
dose2 = c(0, 0, 0, 0, 5, 8, 5, 8),
n.pat = c(3, 3, 3, 6, 3, 9, 3, 6),
n.dlt = c(0, 0, 0, 1, 0, 0, 0, 0),
trial = c(1, 1, 1, 1, 2, 2, 3, 3),
dose.ref1 = 5,
dose.ref2 = 8,
return.samples = TRUE
)
MAPprior_combi$summary
MAPprior_combi$samples[, 1:8]
}
if (FALSE) {
MAPprior <- get_MAP_mono(
dose = c(1, 2, 3, 4),
n.pat = c(3, 3, 3, 6),
n.dlt = c(0, 0, 0, 1),
trial = c(1, 2, 1, 2),
dose.ref = 5,
return.samples = TRUE
)
MAPprior$summary
MAPprior$samples[, 1:8]
}