Package 'MABOUST'

Title: Multi-Armed Bayesian Ordinal Utility-Based Sequential Trial
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.
Authors: Andrew Chapple
Maintainer: Andrew Chapple <[email protected]>
License: GPL-2
Version: 1.0.1
Built: 2024-12-13 06:55:16 UTC
Source: CRAN

Help Index


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 Δ\Delta to test.

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 Δ\Delta values to test.

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 Δ\bf{\Delta} values to test.

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)