R/stan_augbin.R
stan_augbin.Rd
Phase II clinical trials in oncology commonly assess response as a key outcome measure. Patients achieve a RECIST response if their tumour size post-baseline has changed in size by some threshold amount and they do not experience non-shrinkage failure. An example of non-shrinkage failure is the appearance of new lesions. As a dichtotomisation of the underlying continuous tumour size measurement, RECIST response is inefficient. Wason & Seaman introduced the Augmented Binary method to incorporate mechanisms for non-shrinkage failure whilst modelling the probability of response based on the continuous tumour size measurements. See model-specific sections below, and the references.
stan_augbin( tumour_size, non_shrinkage_failure, arm = NULL, model = c("2t-1a"), prior_params = list(), ... )
tumour_size | matrix-like object containing tumour size measures, with rows representing patients and columns representing chronological standardised assessment points. Column one is baseline. |
---|---|
non_shrinkage_failure | matrix-like object containing logical indicators of non-shrinkage failure, with rows representing patients and columns representing chronological standardised assessment points. |
arm | optional vector of integers representing the allocated treatment
arms for patients, assumed in the same order as |
model | Character string to denote the desired model. Currently, only
|
prior_params | list of prior parameters. These are combined with the
data and passed to |
... | Extra parameters are passed to |
an instance or subclass of type augbin_fit
.
The complete model form is: $$(y_{1i}, y_{2i})^T \sim N( (\mu_{1i}, \mu_{2i})^T, \Sigma) $$ $$ \mu_{1i} = \alpha + \gamma z_{0i} $$ $$ \mu_{2i} = \beta + \gamma z_{0i} $$ $$ logit(Pr(D_{1i} = 1 | Z_{0i})) = \alpha_{D1} + \gamma_{D1} z_{0i} $$ $$ logit(Pr(D_{2i} = 1 | D_{1i} = 0, Z_{0i}, Z_{1i})) = \alpha_{D2} + \gamma_{D2} z_{1i} $$ where \(z_{0i}, z_{1i}, z_{2i}\) are tumour sizes at baseline, period 1, and period 2, for patient i; \(y_{1i}, y_{2i}\) are the log-tumour-size ratios with respect to baseline; \(D_{1i}, D_{2i}\) are indicators of non-shrinkage failure; and \(\Sigma\) is assumed to be unstructured covariance matrix, with associated correlation matrix having an LKJ prior.
The following prior parameters are required:
alpha_mean
& alpha_sd
for normal prior on \(\alpha\).
beta_mean
& beta_sd
for normal prior on \(\beta\).
gamma_mean
& gamma_sd
for normal prior on \(\gamma\).
sigma_mean
& sigma_sd
for normal priors on diagonal elements of \(\Sigma\);
omega_lkj_eta
for a LKJ prior on the two-period correlation matrix associated with Sigma. omega_lkj_eta = 1 is uniform, analogous to a Beta(1,1) prior on a binary probability.
alpha_d1_mean
& alpha_d1_sd
for normal prior on \(\alpha_{D1}\).
gamma_d1_mean
& gamma_d1_sd
for normal prior on \(\gamma_{D1}\).
alpha_d2_mean
& alpha_d2_sd
for normal prior on \(\alpha_{D2}\).
gamma_d2_mean
& gamma_d2_sd
for normal prior on \(\gamma_{D2}\).
Wason JMS, Seaman SR. Using continuous data on tumour measurements to improve inference in phase II cancer studies. Statistics in Medicine. 2013;32(26):4639-4650. doi:10.1002/sim.5867
Eisenhauer EA, Therasse P, Bogaerts J, et al. New response evaluation criteria in solid tumours: Revised RECIST guideline (version 1.1). European Journal of Cancer. 2009;45(2):228-247. doi:10.1016/j.ejca.2008.10.026
priors <- list(alpha_mean = 0, alpha_sd = 1, beta_mean = 0, beta_sd = 1, gamma_mean = 0, gamma_sd = 1, sigma_mean = 0, sigma_sd = 1, omega_lkj_eta = 1, alpha_d1_mean = 0, alpha_d1_sd = 1, gamma_d1_mean = 0, gamma_d1_sd = 1, alpha_d2_mean = 0, alpha_d2_sd = 1, gamma_d2_mean = 0, gamma_d2_sd = 1) # Scenario 1 of Table 1 in Wason & Seaman (2013) N <- 50 sigma <- 1 delta1 <- -0.356 mu <- c(0.5 * delta1, delta1) Sigma = matrix(c(0.5 * sigma^2, 0.5 * sigma^2, 0.5 * sigma^2, sigma^2), ncol = 2) alphaD <- -1.5 gammaD <- 0 set.seed(123456) y <- MASS::mvrnorm(n = N, mu, Sigma) z0 <- runif(N, min = 5, max = 10) z1 <- exp(y[, 1]) * z0 z2 <- exp(y[, 2]) * z0 d1 <- rbinom(N, size = 1, prob = gtools::inv.logit(alphaD + gammaD * z0)) d2 <- rbinom(N, size = 1, prob = gtools::inv.logit(alphaD + gammaD * z1)) tumour_size <- data.frame(z0, z1, z2) # Sizes in cm non_shrinkage_failure <- data.frame(d1, d2) # Fit if (FALSE) { fit <- stan_augbin(tumour_size, non_shrinkage_failure, prior_params = priors, model = '2t-1a', seed = 123) }