getSimulationEnrichmentSurvival {rpact} | R Documentation |
Returns the simulated power, stopping and selection probabilities, conditional power,
and expected sample size for testing hazard ratios in an enrichment design testing situation.
In contrast to getSimulationSurvival()
(where survival times are simulated), normally
distributed logrank test statistics are simulated.
getSimulationEnrichmentSurvival(
design = NULL,
...,
effectList = NULL,
intersectionTest = c("Simes", "SpiessensDebois", "Bonferroni", "Sidak"),
stratifiedAnalysis = TRUE,
directionUpper = NA,
adaptations = NA,
typeOfSelection = c("best", "rBest", "epsilon", "all", "userDefined"),
effectMeasure = c("effectEstimate", "testStatistic"),
successCriterion = c("all", "atLeastOne"),
epsilonValue = NA_real_,
rValue = NA_real_,
threshold = -Inf,
plannedEvents = NA_real_,
allocationRatioPlanned = NA_real_,
minNumberOfEventsPerStage = NA_real_,
maxNumberOfEventsPerStage = NA_real_,
conditionalPower = NA_real_,
thetaH1 = NA_real_,
maxNumberOfIterations = 1000L,
seed = NA_real_,
calcEventsFunction = NULL,
selectPopulationsFunction = NULL,
showStatistics = FALSE
)
design |
The trial design. If no trial design is specified, a fixed sample size design is used.
In this case, Type I error rate |
... |
Ensures that all arguments (starting from the "...") are to be named and that a warning will be displayed if unknown arguments are passed. |
effectList |
List of subsets, prevalences, and effect sizes with columns and number of rows reflecting the different situations to consider (see examples). |
intersectionTest |
Defines the multiple test for the intersection
hypotheses in the closed system of hypotheses.
Four options are available in enrichment designs: |
stratifiedAnalysis |
Logical. For enrichment designs, typically a stratified analysis should be chosen.
For testing rates, also a non-stratified analysis based on overall data can be performed.
For survival data, only a stratified analysis is possible (see Brannath et al., 2009),
default is |
directionUpper |
Logical. Specifies the direction of the alternative,
only applicable for one-sided testing; default is |
adaptations |
A logical vector of length |
typeOfSelection |
The way the treatment arms or populations are selected at interim.
Five options are available: |
effectMeasure |
Criterion for treatment arm/population selection, either based on test statistic
( |
successCriterion |
Defines when the study is stopped for efficacy at interim.
Two options are available: |
epsilonValue |
For |
rValue |
For |
threshold |
Selection criterion: treatment arm / population is selected only if |
plannedEvents |
|
allocationRatioPlanned |
The planned allocation ratio |
minNumberOfEventsPerStage |
When performing a data driven sample size recalculation,
the numeric vector |
maxNumberOfEventsPerStage |
When performing a data driven sample size recalculation,
the numeric vector |
conditionalPower |
If |
thetaH1 |
If specified, the value of the alternative under which the conditional power or sample size recalculation calculation is performed. Must be a numeric of length 1. |
maxNumberOfIterations |
The number of simulation iterations, default is |
seed |
The seed to reproduce the simulation, default is a random seed. |
calcEventsFunction |
Optionally, a function can be entered that defines the way of performing the sample size
recalculation. By default, event number recalculation is performed with conditional power and specified
|
selectPopulationsFunction |
Optionally, a function can be entered that defines the way of how populations
are selected. This function is allowed to depend on |
showStatistics |
Logical. If |
At given design the function simulates the power, stopping probabilities, selection probabilities, and expected event number at given number of events, parameter configuration, and population selection rule in the enrichment situation. An allocation ratio can be specified referring to the ratio of number of subjects in the active treatment group as compared to the control group.
The definition of thetaH1
makes only sense if kMax
> 1
and if conditionalPower
, minNumberOfEventsPerStage
, and
maxNumberOfEventsPerStage
(or calcEventsFunction
) are defined.
calcEventsFunction
This function returns the number of events at given conditional power
and conditional critical value for specified testing situation.
The function might depend on the variables
stage
,
selectedPopulations
,
plannedEvents
,
directionUpper
,
allocationRatioPlanned
,
minNumberOfEventsPerStage
,
maxNumberOfEventsPerStage
,
conditionalPower
,
conditionalCriticalValue
, and
overallEffects
.
The function has to contain the three-dots argument '...' (see examples).
Returns a SimulationResults
object.
The following generics (R generic functions) are available for this object:
names()
to obtain the field names,
print()
to print the object,
summary()
to display a summary of the object,
plot()
to plot the object,
as.data.frame()
to coerce the object to a data.frame
,
as.matrix()
to coerce the object to a matrix
.
Click on the link of a generic in the list above to go directly to the help documentation of
the rpact
specific implementation of the generic.
Note that you can use the R function methods
to get all the methods of a generic and
to identify the object specific name of it, e.g.,
use methods("plot")
to get all the methods for the plot
generic.
There you can find, e.g., plot.AnalysisResults
and
obtain the specific help documentation linked above by typing ?plot.AnalysisResults
.
## Not run:
# Assess a population selection strategy with one subset population and
# a survival endpoint. The considered situations are defined through the
# event rates yielding a range of hazard ratios in the subsets. Design
# with O'Brien and Fleming alpha spending and a reassessment of event
# number in the first interim based on conditional power and assumed
# hazard ratio using weighted inverse normal combination test.
subGroups <- c("S", "R")
prevalences <- c(0.40, 0.60)
p2 <- c(0.3, 0.4)
range1 <- p2[1] + seq(0, 0.3, 0.05)
p1 <- c()
for (x1 in range1) {
p1 <- c(p1, x1, p2[2] + 0.1)
}
hazardRatios <- log(matrix(1 - p1, byrow = TRUE, ncol = 2)) /
matrix(log(1 - p2), byrow = TRUE, ncol = 2,
nrow = length(range1))
effectList <- list(subGroups=subGroups, prevalences=prevalences,
hazardRatios = hazardRatios)
design <- getDesignInverseNormal(informationRates = c(0.3, 0.7, 1),
typeOfDesign = "asOF")
simResultsPE <- getSimulationEnrichmentSurvival(design,
plannedEvents = c(40, 90, 120),
effectList = effectList,
typeOfSelection = "rbest", rValue = 2,
conditionalPower = 0.8, minNumberOfEventsPerStage = c(NA, 50, 30),
maxNumberOfEventsPerStage = c(NA, 150, 30), thetaH1 = 4 / 3,
maxNumberOfIterations = 100)
print(simResultsPE)
## End(Not run)