completeTrial.byArm: Treatment Arm-Specific Simulation-Based Completion of a...

Description Usage Arguments Value See Also Examples

Description

Considers MITT data collected through an interim timepoint and generates independent time-to-event data-sets, by treatment arm, to assess the distribution of the number of treatment arm-specific endpoints at the end of the follow-up period. A Bayesian model for treatment arm-specific endpoint rates is used for generating future data (see the vignette).

Usage

1
2
3
4
5
6
completeTrial.byArm(interimData, nTrials, trtNames, N, enrollRate = NULL,
  enrollRatePeriod, eventPriorWeight, eventPriorRate,
  fixedDropOutRate = NULL, ppAnalysis = FALSE, missVaccProb = NULL,
  ppAtRiskTimePoint = NULL, fuTime, visitSchedule,
  visitSchedule2 = NULL, saveFile = NULL, saveDir = NULL,
  randomSeed = NULL)

Arguments

interimData

a data frame capturing observed MITT data at an interim timepoint that contains one row per enrolled participant in the MITT cohort and the following variables: arm (treatment arm), schedule2 (an indicator that a participant follows the visitSchedule2 schedule, e.g., participants who discontinue study product administration may remain in primary follow-up on a different schedule), entry (number of weeks since the reference date until the enrollment date), exit (number of weeks since the reference date until the trial exit date defined as the date of either infection diagnosis, dropout, or primary follow-up completion, whichever occurs first; NA for participants still in primary follow-up), last_visit_dt (number of weeks since the reference date until the last visit date), event (event indicator), dropout (dropout indicator), complete (indicator of completed follow-up), followup (indicator of being in primary follow-up). The reference date is defined as the enrollment date of the first participant. The variables entry, exit, and last_visit_dt use week as the unit of time. Month is defined as 52/12 weeks.

nTrials

the number of trials to be simulated

trtNames

a character vector of treatment labels as specified in interimData$arm determining the order of treatment arms in other input arguments

N

a numeric vector specifying the target number of enrolled participants in each treatment arm, with the arms in the same order as in trtNames

enrollRate

a treatment arm-pooled weekly enrollment rate used for completing enrollment if interimData's enrollment is incomplete. If NULL (default), the rate is calculated as the average over the last enrollRatePeriod weeks of enrollment in interimData. If equal to a numeric value, then enrollRatePeriod is ignored.

enrollRatePeriod

the length (in weeks) of the time period preceding the time of the last enrolled participant in interimData that the average weekly enrollment rate will be based on and used for completing enrollment. If NULL (default), then enrollRate must be specified.

eventPriorWeight

a numeric value in [0,1] representing a weight assigned to the prior gamma distribution of the treatment arm-specific event rates at the time when 50% of the estimated person-time at risk in each arm has been accumulated (see the vignette)

eventPriorRate

a numeric vector of treatment arm-specific prior mean incidence rates for the endpoint, expressed as numbers of events per person-year at risk, with the arms in the same order as in trtNames

fixedDropOutRate

the pre-trial assumed annual treatment arm-pooled dropout rate. If NULL (default), then the observed treatment arm-pooled dropout rate is used.

ppAnalysis

a logical value (FALSE by default) indicating whether an indicator of membership in the per-protocol cohort shall be generated based on complete MITT data. If TRUE, then interimData must include two additional variables: missVacc (an indicator of a missed vaccination) and pp (an indicator of membership in the per-protocol cohort; NA for participants with an indeterminate status).

missVaccProb

a probability that a participant misses at least one vaccination. If NULL (default) and ppAnalysis=TRUE, then missVaccProb is calculated as the sample proportion of MITT participants in interimData with a missed vaccination using the missVacc variable. If ppAnalysis=TRUE, then the indicator of a missed vaccination for participants in interimData with pp=NA and future enrolled participants is sampled from the Bernoulli distribution with probability missVaccProb.

ppAtRiskTimePoint

a minimal follow-up time (in weeks) for a participant to qualify for inclusion in the per-protocol cohort (NULL by default)

fuTime

a follow-up time (in weeks) of each participant

visitSchedule

a numeric vector of visit weeks at which testing for the endpoint is conducted

visitSchedule2

a numeric vector of visit weeks at which testing for the endpoint is conducted in a subset of participants (e.g., those who discontinue administration of the study product but remain in follow-up). If NULL (default), everyone is assumed to follow visitSchedule.

saveFile

a character string specifying an .RData file storing the output list. If NULL and saveDir is specified, the file name will be generated. If, in turn, saveFile is specified but saveDir equals NULL, then saveFile is ignored, and the output list will be returned.

saveDir

a character string specifying a path for the output directory. If supplied, the output is saved as an .RData file in the directory; otherwise the output is returned as a list.

randomSeed

seed of the random number generator for simulation reproducibility

Value

If saveDir is specified, the output list (named trialObj) is saved as an .RData file; otherwise it is returned. The output object is a list with the following components:

See Also

completeTrial.pooledArms

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
arm <- rep(c("C3","T1","T2"), each=250)
schedule <- rbinom(length(arm), 1, 0.01)
entry <- rpois(length(arm), lambda=60)
entry <- entry - min(entry)
last_visit_dt <- entry + runif(length(arm), min=0, max=80)
event <- rbinom(length(arm), 1, 0.01)
dropout <- rbinom(length(arm), 1, 0.02)
dropout[event==1] <- 0
exit <- rep(NA, length(arm))
exit[event==1] <- last_visit_dt[event==1] + 5
exit[dropout==1] <- last_visit_dt[dropout==1] + 5
followup <- ifelse(event==1 | dropout==1, 0, 1)
interimData <- data.frame(arm=arm, schedule2=schedule, entry=entry, exit=exit,
last_visit_dt=last_visit_dt, event=event, dropout=dropout, complete=0, followup=followup)

completeData <- completeTrial.byArm(interimData=interimData, nTrials=5,
trtNames=c("C3","T1","T2"), N=c(500,500,500), enrollRatePeriod=24, eventPriorWeight=0.5,
eventPriorRate=c(0.001,0.0004,0.0004), fuTime=80, visitSchedule=seq(0, 80, by=4),
visitSchedule2=c(0,seq(from=8,to=80,by=12)), randomSeed=9)
### alternatively, to save the .RData output file (no '<-' needed):
completeTrial.byArm(interimData=interimData, nTrials=5, trtNames=c("C3","T1","T2"),
N=c(500,500,500), enrollRatePeriod=24, eventPriorWeight=0.5,
eventPriorRate=c(0.001,0.0004,0.0004), fuTime=80, visitSchedule=seq(0, 80, by=4),
visitSchedule2=c(0,seq(from=8,to=80,by=12)), saveDir="./", randomSeed=9)

futility documentation built on May 1, 2019, 10:13 p.m.