Three-drug combination example
Example using a combination of two experimental drugs, with EXNEX and differential discounting.
This dataset involves a hypothetical dose-escalation study of combination
therapy with three treatment components. From two previous studies
HistAgent1 and HistAgent2, historical data is available on each
of the treatments as single-agents, as well as two of the two-way
combinations. However, due to a difference in treatment schedule between the
Combo study and the historical studies, a stratification (through stratum)
is made between the groups to allow differential discounting of the
alternate-schedule data. The association is as below.
| group_id (j): | stratum (s_j): |
| Combo (1) | BID (1) |
| HistAgent1 (2) | QD (2) |
| HistAgent2 (3) | QD (2) |
For additional robustness, EXNEX priors are used for all group-level treatment component and interaction parameters, to limit the amount of borrowing in case of significant heterogeneity across groups.
The complete model is as follows. As a function of doses d_1,d_2,d_3, the DLT rate in group j is, for j = 1,…,3,
\mbox{logit}\, π_j(d_1,d_2,d_3) = \mbox{logit}\Bigl( 1 - ∏_{i=1}^3 (1-π_{ij}(d_i))\Bigr) + η_{j}^{(12)}\frac{d_1}{d_1^*}\frac{d_2}{d_2^*} + η_{j}^{(13)}\frac{d_1}{d_1^*}\frac{d_3}{d_3^*} + η_{j}^{(23)}\frac{d_2}{d_2^*}\frac{d_3}{d_3^*} + η_{j}^{(123)}\frac{d_1}{d_1^*}\frac{d_2}{d_2^*}\frac{d_3}{d_3^*}.
In group j each treatment component i toxicity is modeled with logistic regression,
\mbox{logit}\, π_{ij}(d_i) = \log\, α_{ij} + β_{ij} \, \log\, \Bigl(\frac{d_i}{d_i^*}\Bigr).
The intercept and log-slope parameters \boldsymbolθ_{ij} = (\log\, α_{ij}, \log\, β_{ij}) are are given an EXNEX prior
\boldsymbolθ_{ij} \sim p_{ij} \mbox{BVN}(\boldsymbolμ_i, \boldsymbolΣ_{ij}) + (1-p_{ij}) \mbox{BVN}(\boldsymbol m_{ij}, \boldsymbol S_{ij}),
where the exchangeability weights are all p_{ij} = 0.9. The NEX parameters are set to \boldsymbol m_{ij} = (\mbox{logit}(1/3), \log\, 1), \boldsymbol S_{ij} = \mbox{diag}(2^2, 1^2) for all components i=1,2,3 and groups j = 1,2,3, and the EX parameters are modeled hierarchically. The mean of the exchangeable part has the distribution
\boldsymbolμ_i = (μ_{α i}, μ_{β i}) \sim \mbox{BVN}(\boldsymbol m_i, \boldsymbol S_i),
with \boldsymbol m_i = (\mbox{logit}(1/3), \log 1) and \boldsymbol S_i = \mbox{diag}(2^2, 1^2) for each component i = 1,2,3. For differentially discounting data from each schedule (QD and BID), the covariance parameters for the exchangeable part
Σ_{ij} = ≤ft( \begin{array}{cc} τ^2_{α s_j i} & ρ_i τ_{α s_j i} τ_{β s_j i}\\ ρ_i τ_{α s_j i} τ_{β s_j i} & τ^2_{β s_j i} \end{array} \right).
are allowed to vary across groups j depending on their mapping
to strata s(j) as described above. For stratum s=1 (BID,
which contains only the group j = 1 (Combo)), the standard
deviations are modeled as
τ_{α 1 i} \sim \mbox{Log-Normal}(\log\,0.25, (\log 4 / 1.96)^2)
τ_{β 1 i} \sim \mbox{Log-Normal}(\log\,0.125, (\log 4 / 1.96)^2).
Whereas in stratum s=2 (QD, which contains the historical groups
j=2,3 (HistData1, HistData2)), the standard deviations are
τ_{α 2 i} \sim \mbox{Log-Normal}(\log\,0.5, (\log 4 / 1.96)^2)
τ_{β 2 i} \sim \mbox{Log-Normal}(\log\,0.25, (\log 4 / 1.96)^2).
For all interaction parameters η_{j}^{(12)}, η_{j}^{(13)}, η_{j}^{(23)}, and η_{j}^{(123)} (j = 1,2,3), the following prior is assumed:
η_{j}^{(\cdot)} \sim p_{η j}^{(\cdot)} \mbox{N}(μ_{η}^{(\cdot)},{τ_{η s_j}^{(\cdot)}}^2) + (1-p_{η j}^{(\cdot)}) \mbox{N}(m_{η j}^{(\cdot)}, {s_{η j}^{(\cdot)}}^2).
The exchangeability weights are p_{η j}^{(\cdot)} = 0.9 for all interaction parameters and all groups. Here, for each μ_{η}^{(12)}, μ_{η}^{(13)}, μ_{η}^{(23)}, and μ_{η}^{(123)}, we take
μ_{η}^{(\cdot)} \sim \mbox{N}(0, 1/2),
and for each τ_{η s}^{(12)}, τ_{η s}^{(13)}, τ_{η s}^{(23)}, and τ_{η s}^{(123)},
τ_{η s}^{(\cdot)} \sim \mbox{Log-Normal}(\log(0.25), (\log 2 / 1.96)^2),
for both strata s = 1,2. Furthermore, m_{η j}^{(\cdot)} = 0 and {s_{η j}^{(\cdot)}}^2 = 1/2, uniformly across all indices.
Below is the syntax for specifying this model in blrm_exnex.
Neuenschwander, B., Roychoudhury, S., & Schmidli, H. (2016). On the use of co-data in clinical trials. Statistics in Biopharmaceutical Research, 8(3), 345-354.
## Setting up dummy sampling for fast execution of example
## Please use 4 chains and 100x more warmup & iter in practice
.user_mc_options <- options(OncoBayes2.MC.warmup=10, OncoBayes2.MC.iter=20, OncoBayes2.MC.chains=1)
## example combo3
library(abind)
dref <- c(500, 500, 1000)
num_comp <- 3
num_inter <- choose(3,2) + 1
num_strata <- nlevels(hist_combo3$stratum)
num_groups <- nlevels(hist_combo3$group_id)
blrmfit <- blrm_exnex(cbind(num_toxicities, num_patients-num_toxicities) ~
1 + I(log(drug_A/dref[1])) |
1 + I(log(drug_B/dref[2])) |
1 + I(log(drug_C/dref[3])) |
0
+ I(drug_A/dref[1] * drug_B/dref[2])
+ I(drug_A/dref[1] * drug_C/dref[3])
+ I(drug_B/dref[2] * drug_C/dref[3])
+ I(drug_A/dref[1] * drug_B/dref[2] * drug_C/dref[3]) |
stratum/group_id,
data=hist_combo3,
prior_EX_mu_mean_comp=matrix(c(logit(1/3), 0), nrow=num_comp, ncol=2, TRUE),
prior_EX_mu_sd_comp=matrix(c(2, 1), nrow=num_comp, ncol=2, TRUE),
prior_EX_tau_mean_comp=abind(matrix(log( c(0.25, 0.125)), nrow=num_comp, ncol=2, TRUE),
matrix(log(2*c(0.25, 0.125)), nrow=num_comp, ncol=2, TRUE),
along=0),
prior_EX_tau_sd_comp=abind(matrix(log(4)/1.96, nrow=num_comp, ncol=2, TRUE),
matrix(log(4)/1.96, nrow=num_comp, ncol=2, TRUE),
along=0),
prior_EX_mu_mean_inter=rep(0, num_inter),
prior_EX_mu_sd_inter=rep(sqrt(2)/2, num_inter),
prior_EX_tau_mean_inter=matrix(log(0.25) , nrow=num_strata, ncol=num_inter),
prior_EX_tau_sd_inter=matrix(log(2)/1.96, nrow=num_strata, ncol=num_inter),
prior_EX_prob_comp=matrix(0.9, nrow=num_groups, ncol=num_comp),
prior_EX_prob_inter=matrix(0.9, nrow=num_groups, ncol=num_inter),
## by default EXNEX is on for components and off for all interactions
prior_tau_dist=1,
prior_PD=FALSE
)
## Recover user set sampling defaults
options(.user_mc_options)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.