The PKLOGIT model, inspired by Whitehead et al. (2007), uses \(z_i\) instead of dose \(d_i\) as a covariate in a logistic regression model for \(p_T\). Therefore, we have that: $$\mbox{logit}(p_T(z, \boldsymbol{\beta})) = -\beta_2 + \beta_3 z$$ with a bivariate Uniform distribution as prior distribution for \(\boldsymbol{\beta} = (\beta_2, \beta_3)\) and the hierarchical model of PK-toxicity for \(z_i\) given as: $$z_{i} \vert \boldsymbol{\beta}, \nu \sim N \left( \beta_0 + \beta_1 \log d_{i}, \nu^{2} \right)$$ where \(\boldsymbol{\beta} = (\beta_0,\beta_1)\) are the regression parameters and \(\nu\) is the standard deviation.
The default choices of the priors are: $$\boldsymbol{\beta} \vert \nu \sim N(m, \nu*beta0)$$ $$\nu \sim Beta(1,1)$$ $$m = (-log(CL_{pop}), 1)$$ where \(Cl_{pop}\) is the population clearance. $$\beta_2 \sim U(0, beta2mean)$$ $$\beta_3 \sim U(0, beta3mean)$$ where default choices are \(Cl_{pop} = 10\), beta0 = 10000, beta2mean = 20 and beta3mean = 10.
Finally, the PKLOGIT model has the following stopping rule in toxicity: if $$P(p_T(dose) > theta) > prob$$ then, no dose are suggested and the trial is stopped.
pklogit(y, auc, doses, x, theta, prob = 0.9, options = list(nchains = 4, niter = 4000,
nadapt = 0.8), betapriors = c(10, 10000, 20, 10), thetaL = NULL,
p0=NULL, L=NULL, deltaAUC=NULL)
A binary vector of patient's toxicity outcomes; TRUE indicates a toxicity, FALSE otherwise.
A vector with the doses panel.
A vector with the dose level assigned to the patients.
The toxicity target.
The probability for the stopping rule.
A vector with the value for the prior distribution of the regression parameters in the model; defaults to \(Cl_{pop} = 10\), beta0 = 10000, beta2mean = 20 and beta3mean = 10.
A list with the Stan model's options; the number of chains, how many iterations for each chain and the number of warmup iterations; defaults to options = list(nchains = 4, niter = 4000, nadapt = 0.8).
A vector with the computed AUC values of each patient for pktox, pkcrm, pklogit and pkpop; defaults to NULL.
The difference between computed individual AUC and the AUC of the population at the same dose level (defined as an average); argument for pkcov; defaults to NULL.
The skeleton of CRM for pkcrm; defaults to NULL (must be defined only in the PKCRM model).
The AUC threshold to be set before starting the trial for pklogit, pkcrm and pktox; defaults to NULL (must be defined only in the PKCRM model).
A second threshold of AUC; must be defined only in the PKCRM model.
A list is returned, consisting of determination of the next recommended dose and estimations of the model. Objects generated by pklogit contain at least the following components:
The next maximum tolerated dose (MTD); equals to "NA" if the trial has stopped before the end, according to the stopping rules.
The mean values of estimated probabilities of toxicity.
The summary of the estimated probabilities of toxicity.
The estimated model's parameters.
Ursino, M., et al, (2017) Dose-finding methods for Phase I clinical trials using pharmacokinetics in small populations, Biometrical Journal.
Whitehead, J., Zhou, Y., Hampson, L., Ledent, E., and Pereira, A. (2007) A bayesian approach for dose-escalation in a phase i clinical trial incorporating pharmacodynamic endpoints. Journal of Biopharmaceutical Statistics, 17 (6), 1117-1129.
doses <- c(12.59972,34.65492,44.69007,60.80685,83.68946,100.37111)
theta <- 0.2
options <- list(nchains = 2, niter = 4000, nadapt = 0.8)
AUCs <- c(0.43, 1.4, 5.98, 7.98, 11.90, 3.45)
x <- c(1,2,3,4,5,6)
y <- c(FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)
res <- pklogit(y, AUCs, doses, x, theta, options = options)
Run the code above in your browser using DataLab