Learn R Programming

dfpk (version 3.3.0)

pklogit: Dose finding method PKLOGIT.

Description

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.

Usage

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)

Arguments

y

A binary vector of patient's toxicity outcomes; TRUE indicates a toxicity, FALSE otherwise.

doses

A vector with the doses panel.

x

A vector with the dose level assigned to the patients.

theta

The toxicity target.

prob

The probability for the stopping rule.

betapriors

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.

options

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).

auc

A vector with the computed AUC values of each patient for pktox, pkcrm, pklogit and pkpop; defaults to NULL.

deltaAUC

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.

p0

The skeleton of CRM for pkcrm; defaults to NULL (must be defined only in the PKCRM model).

L

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).

thetaL

A second threshold of AUC; must be defined only in the PKCRM model.

Value

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:

newDose

The next maximum tolerated dose (MTD); equals to "NA" if the trial has stopped before the end, according to the stopping rules.

pstim

The mean values of estimated probabilities of toxicity.

p_sum

The summary of the estimated probabilities of toxicity.

parameters

The estimated model's parameters.

References

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.

See Also

sim.data, nsim, nextDose

Examples

Run this code

    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