Type: | Package |
Title: | Multi-Armed Bayesian Ordinal Utility-Based Sequential Trial |
Version: | 1.0.1 |
Author: | Andrew Chapple |
Maintainer: | Andrew Chapple <achapp@lsuhsc.edu> |
Description: | Conducts and simulates the MABOUST design, including making interim decisions to stop a treatment for inferiority or stop the trial early for superiority or equivalency. |
License: | GPL-2 |
Imports: | Rcpp (≥ 0.12.18) |
LinkingTo: | Rcpp, RcppArmadillo |
Encoding: | UTF-8 |
RoxygenNote: | 7.1.1 |
NeedsCompilation: | yes |
Packaged: | 2021-03-10 19:16:42 UTC; achapp |
Repository: | CRAN |
Date/Publication: | 2021-03-12 00:20:05 UTC |
Returns the superiority or futility cutoff during a MABOUST trial.
Description
Returns the superiority or futility cutoff during a MABOUST trial.
Usage
CUTOFF(Delta, n, nTreat, nCat, gamma)
Arguments
Delta |
Value of |
n |
Current sample size in the trial. |
nTreat |
Number of active treatments in consideration, i.e. 1,...,K. |
nCat |
Number of ordinal outcome categories, i.e. J. |
gamma |
Length 3 vector of cutoff parameters. |
Value
The set of active treatments to continue, an optimal treatment, or a set of equally optimal treatments. Also reports posterior mean utilities and ordinal outcome probabilities as well as pairwise comparisons of utility similarity, when appropriate.
References
[1] Chapple and Clement (2020), MABOUST: A Multi-Armed Bayesian Ordinal Outcome Utility-Based Sequential Trial. Submitted.
Examples
###Trial parameters
nCat = 6
nTreat = 3
Delta=5
n=300
###Design parameters
gamma= c(.5, .05, .05)
CUTOFF(Delta,n,nTreat,nCat,gamma)
Performs posterior sampling for the MABOUST design and determines whether the trial should continue and what treatment(s) are optimal.
Description
Performs posterior sampling for the MABOUST design and determines whether the trial should continue and what treatment(s) are optimal.
Usage
GetProbs(nCat, theta)
Arguments
nCat |
Number of ordinal outcome categories, i.e. J. |
theta |
Vector of (J-1)*K specific parameters for the MABOUST model. One row of output from MCMC_MABOUST function. |
Value
Estimated treatment-specific outcome probabilities for a given \bf{\theta}
vector.
Returns the superiority or futility cutoff during a MABOUST trial.
Description
Returns the superiority or futility cutoff during a MABOUST trial.
Usage
GetScenario(nTreat, RANGES, RANGES1, XPROB)
Arguments
nTreat |
Number of active treatments in consideration, i.e. 1,...,K. |
RANGES |
J-list containing ranges of plausible marginal treatment outcome probabilities. |
RANGES1 |
J-list containing ranges of plausible covariate adjusted outcome probabilities. |
XPROB |
List of matrices containing discrete values various covariates can take, along with their probabilities. |
Value
Randomly generate marginal ordinal outcome probabilities for each treatment and a covariate vector.
References
[1] Chapple and Clement (2020), MABOUST: A Multi-Armed Bayesian Ordinal Outcome Utility-Based Sequential Trial. Submitted.
Examples
###Trial parameters
nTreat = 3
nCat=6
###Marginal Probability Ranges
RANGES = as.list(rep(NA,nCat))
RANGES[[1]]=c(.1,.35)
RANGES[[2]]=c(.1,.3)
RANGES[[3]]=c(.4,.7)
RANGES[[4]]=c(0,.1)
RANGES[[5]]=c(.1,.3)
RANGES[[6]]=c(.0,.1)
###Covariate Adjusted Probability Ranges
RANGES1=RANGES
RANGES1[[1]]=c(0,.5)
RANGES1[[2]]=c(0,.5)
RANGES1[[3]]=c(0,.8)
RANGES1[[4]]=c(0,.45)
RANGES1[[5]]=c(0,.45)
RANGES1[[6]]=c(0,.30)
XPROB = as.list(rep(NA,3))
XPROB[[1]]=rbind(0:10,round(dpois(0:10,2),2)) ###CCI
XPROB[[2]]=rbind(c(-1,0,1),c(.5,.4,.1)) ###O2 Status
XPROB[[3]]=rbind(c(-2,-1,0,1),c(.27,.38,.18,.17))
GetScenario(nTreat,RANGES,RANGES1, XPROB)
Conduct the MABOUST Trial design.
Description
Performs posterior sampling for the MABOUST design and determines whether the trial should continue and what treatment(s) are optimal.
Usage
MABOUST(
Y,
T1,
X,
ACTIVE,
FUTILITY,
nTreat,
nCat,
UT,
DeltaVEC,
gamma,
PSPIKE,
ADJ,
B
)
Arguments
Y |
Ordinal Outcome Vector, labeled 1,...,J |
T1 |
Treatment Indicator, labeled 1,...,K. |
X |
Matrix of patient covariates. |
ACTIVE |
Binary indicator of active treatments. This vector must be length K, and have a 1 for each entry corresponding to an active treatment and 0 otherwise. |
FUTILITY |
Binary indicator of whether a futility decision will be allowed. |
nTreat |
Number of treatments in consideration, i.e. K. |
nCat |
Number of ordinal outcome categories, i.e. J. |
UT |
Vector of numerical utility scores to give outcomes 1,...,J. |
DeltaVEC |
Vector of |
gamma |
Length 3 vector of cutoff parameters. |
PSPIKE |
Prior probability of a pairwise null. PSPIKE=1 means no clustering is possible. |
ADJ |
Integer for whether or not we should adjust for covariates. |
B |
Number of MCMC iterations to perform. |
Value
The set of active treatments to continue, an optimal treatment, or a set of equally optimal treatments. Also reports posterior mean utilities and ordinal outcome probabilities as well as pairwise comparisons of utility similarity, when appropriate.
References
[1] Chapple and Clement (2020), MABOUST: A Multi-Armed Bayesian Ordinal Outcome Utility-Based Sequential Trial. Submitted.
Examples
##Clinical Parameters
nCat = 6
nTreat = 3
UT = c(0,10,20,80,90,100)
DeltaVEC = c(5,10)
###Which treatments are active?
ACTIVE = c(1,0,1) ###Treatments 1, 3 are active
FUTILITY = 1 ###Futility look is allowed.
###Design parameters
gamma= c(.5, .05, .05)
PSPIKE = .9
set.seed(1)
##Generate Random Data
n=300
Y=sample(1:nCat,n,replace=TRUE)
T1 = sample(1:nTreat,n,replace=TRUE)
X=matrix(rnorm(n*2),ncol=2)
###Number of iterations
B=100
PSPIKE = .9
ADJ = 1
MABOUST(Y, T1, X, ACTIVE, FUTILITY, nTreat, nCat, UT, DeltaVEC, gamma, PSPIKE, ADJ,B )
Obtains posterior samples from the MABOUST design for use in trial decision making. Performs posterior sampling for the MABOUST design and determines whether the trial should continue and what treatment(s) are optimal.
Description
Obtains posterior samples from the MABOUST design for use in trial decision making. Performs posterior sampling for the MABOUST design and determines whether the trial should continue and what treatment(s) are optimal.
Usage
MCMC_MABOUST(Y, T, X, B, NTreat, NOUT, PSPIKE, ADJ)
Arguments
Y |
Ordinal Outcome Vector, labeled 1,...,J |
T |
Treatment Indicator, labeled 1,...,K. |
X |
Matrix of patient covariates. |
B |
Number of MCMC iterations to perform. |
NTreat |
Number of treatments in consideration, i.e. K. |
NOUT |
Number of ordinal outcome categories, i.e. J. |
PSPIKE |
Prior probability of a pairwise null. PSPIKE=1 means no clustering is possible. |
ADJ |
Integer for whether or not we should adjust for covariates. |
Value
Posterior samples for use in the MABOUST design.
Simulate the MABOUST Trial design.
Description
Simulates trial replicates of the MABOUST trial and reports Operating Characteristics (OCs).
Usage
SimMABOUST(
nSims,
NLOOK,
nTreat,
nCat,
UT,
DeltaVEC,
gamma,
PSPIKE,
ADJ,
B,
PROBS,
Beta,
XPROB
)
Arguments
nSims |
Number of trial replications to complete. |
NLOOK |
Vector containing how many patients should be evaluated before each interim decision. |
nTreat |
Number of treatments in consideration, i.e. K. |
nCat |
Number of ordinal outcome categories, i.e. J. |
UT |
Vector of numerical utility scores to give outcomes 1,...,J. |
DeltaVEC |
Vector of |
gamma |
Length 3 vector of cutoff parameters. |
PSPIKE |
Prior probability of a pairwise null effect. |
ADJ |
Binary indicator of whether covariate adjustment is used. |
B |
Number of MCMC iterations to perform. |
PROBS |
K-list of J-vectors containing ordinal outcome probabilities. |
Beta |
Covariate Effect Vector on Outcome. |
XPROB |
List of matrices containing discrete values various covariates can take, along with their probabilities. |
Value
The set of active treatments to continue, an optimal treatment, or a set of equally optimal treatments. Also reports posterior mean utilities and ordinal outcome probabilities as well as pairwise comparisons of utility similarity, when appropriate.
References
Chapple, A.G., Bennani, Y., Clement, M. (2020). "MABOUST: A Multi-Armed Bayesian Ordinal Outcome Utility-Based Sequential Trial". Submitted.
Examples
##Clinical Parameters
nCat = 6
nTreat = 3
UT = c(0,10,20,80,90,100) ###Utilities
DeltaVEC = c(5,10) ###Vector of deltas to try
NLOOK = c(20,50) ###Interim Looks
###Which treatments are active?
ACTIVE = c(1,0,1) ###Treatments 1, 3 are active
FUTILITY = 1 ###Futility look is allowed.
###Design parameters
gamma= c(.5, .05, .05)
PSPIKE = .9
set.seed(1)
##Generate Random Data
n=300
Y=sample(1:nCat,n,replace=TRUE)
T1 = sample(1:nTreat,n,replace=TRUE)
XPROB = as.list(rep(NA,3))
XPROB[[1]]=rbind(0:10,round(dpois(0:10,2),2)) ###CCI
XPROB[[2]]=rbind(c(-1,0,1),c(.5,.4,.1)) ###O2 Status
XPROB[[3]]=rbind(c(-2,-1,0,1),c(.27,.38,.18,.17))
Beta =
###Number of iterations
B=100
##Get Simulation Parameters
#' ##Get Simulation Parameters
PROBS = as.list(rep(NA,3))
PROBS[[1]]=c(.33,.11,.42,.02,.11,.01)
PROBS[[2]]=c(.24,.11,.48,.05,.11,.01)
PROBS[[3]]=c(.14, .20, .48, .03, .12, .03)
Beta=c(-.13, -.07, -.10)
nSims=1 ##Number of sims to run
ADJ=1
SimMABOUST(nSims,NLOOK, nTreat,nCat, UT, DeltaVEC,gamma,PSPIKE,ADJ, B, PROBS, Beta, XPROB)