Fit a continual reassessment method (CRM) model for dosefinding using Stan for full Bayesian inference. There are several likelihood and prior combinations supported. See modelspecific sections below.
stan_crm( outcome_str = NULL, skeleton, target, model = c("empiric", "logistic", "logistic_gamma", "logistic2"), a0 = NULL, alpha_mean = NULL, alpha_sd = NULL, beta_mean = NULL, beta_sd = NULL, beta_shape = NULL, beta_inverse_scale = NULL, doses_given = NULL, tox = NULL, weights = NULL, ... )
outcome_str  A string representing the outcomes observed hitherto.
See 

skeleton  a vector of the prior guesses of toxicity at doses. This should be a monotonicallyincreasing vector of numbers between 0 and 1. 
target  the target toxicity probability, a number between 0 and 1.
This value would normally be one of the values in 
model  Character string to denote desired model. One of 
a0  Value of fixed intercept parameter. Only required for certain models. See Details. 
alpha_mean  Prior mean of intercept variable for normal prior. Only required for certain models. See Details. 
alpha_sd  Prior standard deviation of intercept variable for normal prior. Only required for certain models. See Details. 
beta_mean  Prior mean of gradient variable for normal prior. Only required for certain models. See Details. 
beta_sd  Prior standard deviation of slope variable for normal prior. Only required for certain models. See Details. 
beta_shape  Prior shape parameter of slope variable for gamma prior. Only required for certain models. See Details. 
beta_inverse_scale  Prior inverse scale parameter of slope variable for gamma prior. Only required for certain models. See Details. 
doses_given  A optional vector of doselevels given to patients
1:num_patients, where 1=lowest dose, 2=second dose, etc. Only required when

tox  An optional vector of toxicity outcomes for patients
1:num_patients, where 1=toxicity and 0=no toxicity. Only required when

weights  An optional vector of numeric weights for the observations
for patients 1:num_patients, thus facilitating the TITECRM design.
Can be used with 
...  Extra parameters are passed to 
An object of class crm_fit
The quickest and easiest way to fit a CRM model to some observed outcomes
is to describe the outcomes using trialr's syntax for dosefinding
outcomes. See df_parse_outcomes
for full details and examples.
Different model choices require that different parameters are provided. See sections below.
empiric
modelThe model form is:
\(F(x_{i}, \beta) = x_{i}^{\exp{\beta}}\)
and the required parameters are:
beta_sd
logistic
modelThe model form is:
\(F(x_{i}, \beta) = 1 / (1 + \exp{(a_{0}  \exp{(\beta)} x_{i}})) \)
and the required parameters are:
a0
beta_mean
beta_sd
logistic_gamma
modelThe model form is:
\(F(x_{i}, \beta) = 1 / (1 + \exp{(a_{0}  \exp{(\beta)} x_{i}})) \)
and the required parameters are:
a0
beta_shape
beta_inverse_scale
logistic2
modelThe model form is:
\(F(x_{i}, \beta) = 1 / (1 + \exp{(\alpha  \exp{(\beta)} x_i)}) \)
and the required parameters are:
alpha_mean
alpha_sd
beta_mean
beta_sd
O'Quigley, J., Pepe, M., & Fisher, L. (1990). Continual reassessment method: a practical design for phase 1 clinical trials in cancer. Biometrics, 46(1), 3348. https://www.jstor.org/stable/2531628
Cheung, Y.K. (2011). Dose Finding by the Continual Reassessment Method. CRC Press. ISBN 9781420091519
if (FALSE) { # CRM example fit1 < stan_crm('1N 2N 3T', skeleton = c(0.1, 0.2, 0.35, 0.6), target = 0.2, model = 'empiric', beta_sd = sqrt(1.34), seed = 123) fit2 < stan_crm('1NNN 2NNN 3TTT', skeleton = c(0.1, 0.2, 0.35, 0.6), target = 0.2, model = 'logistic', a0 = 3, beta_mean = 0, beta_sd = sqrt(1.34), seed = 123) # The seed is passed to the Stan sampler. The usual Stan sampler params like # cores, iter, chains etc are passed on too via the ellipsis operator. # TITECRM example, p.124 of Dose Finding by the CRM, Cheung (2010) fit3 <stan_crm(skeleton = c(0.05, 0.12, 0.25, 0.40, 0.55), target = 0.25, doses_given = c(3, 3, 3, 3), tox = c(0, 0, 0, 0), weights = c(73, 66, 35, 28) / 126, model = 'empiric', beta_sd = sqrt(1.34), seed = 123) fit3$recommended_dose }