getPowerSurvival {rpact}  R Documentation 
Returns the power, stopping probabilities, and expected sample size for testing the hazard ratio in a two treatment groups survival design.
getPowerSurvival(
design = NULL,
...,
typeOfComputation = c("Schoenfeld", "Freedman", "HsiehFreedman"),
thetaH0 = 1,
directionUpper = NA,
pi1 = NA_real_,
pi2 = NA_real_,
lambda1 = NA_real_,
lambda2 = NA_real_,
median1 = NA_real_,
median2 = NA_real_,
kappa = 1,
hazardRatio = NA_real_,
piecewiseSurvivalTime = NA_real_,
allocationRatioPlanned = 1,
eventTime = 12,
accrualTime = c(0, 12),
accrualIntensity = 0.1,
accrualIntensityType = c("auto", "absolute", "relative"),
maxNumberOfSubjects = NA_real_,
maxNumberOfEvents = NA_real_,
dropoutRate1 = 0,
dropoutRate2 = 0,
dropoutTime = 12
)
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. 
typeOfComputation 
Three options are available: 
thetaH0 
The null hypothesis value,
default is
For testing a rate in one sample, a value 
directionUpper 
Logical. Specifies the direction of the alternative,
only applicable for onesided testing; default is 
pi1 
A numeric value or vector that represents the assumed event rate in the treatment group,
default is 
pi2 
A numeric value that represents the assumed event rate in the control group, default is 
lambda1 
The assumed hazard rate in the treatment group, there is no default.

lambda2 
The assumed hazard rate in the reference group, there is no default.

median1 
The assumed median survival time in the treatment group, there is no default. 
median2 
The assumed median survival time in the reference group, there is no default. Must be a positive numeric of length 1. 
kappa 
A numeric value > 0. A 
hazardRatio 
The vector of hazard ratios under consideration. If the event or hazard rates in both treatment groups are defined, the hazard ratio needs not to be specified as it is calculated, there is no default. Must be a positive numeric of length 1. 
piecewiseSurvivalTime 
A vector that specifies the time intervals for the piecewise
definition of the exponential survival time cumulative distribution function 
allocationRatioPlanned 
The planned allocation ratio 
eventTime 
The assumed time under which the event rates are calculated, default is 
accrualTime 
The assumed accrual time intervals for the study, default is

accrualIntensity 
A numeric vector of accrual intensities, default is the relative
intensity 
accrualIntensityType 
A character value specifying the accrual intensity input type.
Must be one of 
maxNumberOfSubjects 

maxNumberOfEvents 

dropoutRate1 
The assumed dropout rate in the treatment group, default is 
dropoutRate2 
The assumed dropout rate in the control group, default is 
dropoutTime 
The assumed time for dropout rates in the control and the
treatment group, default is 
At given design the function calculates the power, stopping probabilities, and expected sample size at given number of events and number of subjects. It also calculates the time when the required events are expected under the given assumptions (exponentially, piecewise exponentially, or Weibull distributed survival times and constant or nonconstant piecewise accrual). Additionally, an allocation ratio = n1/n2 can be specified where n1 and n2 are the number of subjects in the two treatment groups.
The formula of Kim & Tsiatis (Biometrics, 1990)
is used to calculate the expected number of events under the alternative
(see also Lakatos & Lan, Statistics in Medicine, 1992). These formulas are generalized to piecewise survival times and
nonconstant piecewise accrual over time.
Returns a TrialDesignPlan
object.
The following generics (R generic functions) are available for this result 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
.
The first element of the vector piecewiseSurvivalTime
must be equal to 0
.
piecewiseSurvivalTime
can also be a list that combines the definition of the
time intervals and hazard rates in the reference group.
The definition of the survival time in the treatment group is obtained by the specification
of the hazard ratio (see examples for details).
accrualTime
is the time period of subjects' accrual in a study.
It can be a value that defines the end of accrual or a vector.
In this case, accrualTime
can be used to define a nonconstant accrual over time.
For this, accrualTime
is a vector that defines the accrual intervals.
The first element of accrualTime
must be equal to 0
and, additionally,
accrualIntensity
needs to be specified.
accrualIntensity
itself is a value or a vector (depending on the
length of accrualtime
) that defines the intensity how subjects
enter the trial in the intervals defined through accrualTime
.
accrualTime
can also be a list that combines the definition of the accrual time and
accrual intensity (see below and examples for details).
If the length of accrualTime
and the length of accrualIntensity
are the same
(i.e., the end of accrual is undefined), maxNumberOfSubjects > 0
needs to be specified
and the end of accrual is calculated.
In that case, accrualIntensity
is the number of subjects per time unit, i.e., the absolute accrual intensity.
If the length of accrualTime
equals the length of accrualIntensity  1
(i.e., the end of accrual is defined), maxNumberOfSubjects
is calculated if the absolute accrual intensity is given.
If all elements in accrualIntensity
are smaller than 1, accrualIntensity
defines
the *relative* intensity how subjects enter the trial.
For example, accrualIntensity = c(0.1, 0.2)
specifies that in the second accrual interval
the intensity is doubled as compared to the first accrual interval. The actual (absolute) accrual intensity
is calculated for the calculated or given maxNumberOfSubjects
.
Note that the default is accrualIntensity = 0.1
meaning that the *absolute* accrual intensity
will be calculated.
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
.
Other power functions:
getPowerMeans()
,
getPowerRates()
# Fixed sample size with minimum required definitions, pi1 = c(0.4,0.5,0.5) and
# pi2 = 0.2 at event time 12, accrual time 12 and followup time 6 as default
getPowerSurvival(maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# Four stage O'Brien & Fleming group sequential design with minimum required
# definitions, pi1 = c(0.4,0.5,0.5) and pi2 = 0.2 at event time 12,
# accrual time 12 and followup time 6 as default
getPowerSurvival(design = getDesignGroupSequential(kMax = 4),
maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# For fixed sample design, determine necessary accrual time if 200 subjects and
# 30 subjects per time unit can be recruited
getPowerSurvival(maxNumberOfEvents = 40, accrualTime = c(0),
accrualIntensity = 30, maxNumberOfSubjects = 200)
# Determine necessary accrual time if 200 subjects and if the first 6 time units
# 20 subjects per time unit can be recruited, then 30 subjects per time unit
getPowerSurvival(maxNumberOfEvents = 40, accrualTime = c(0, 6),
accrualIntensity = c(20, 30), maxNumberOfSubjects = 200)
# Determine maximum number of Subjects if the first 6 time units 20 subjects per
# time unit can be recruited, and after 10 time units 30 subjects per time unit
getPowerSurvival(maxNumberOfEvents = 40, accrualTime = c(0, 6, 10),
accrualIntensity = c(20, 30))
# Specify accrual time as a list
at < list(
"0  <6" = 20,
"6  Inf" = 30)
getPowerSurvival(maxNumberOfEvents = 40, accrualTime = at, maxNumberOfSubjects = 200)
# Specify accrual time as a list, if maximum number of subjects need to be calculated
at < list(
"0  <6" = 20,
"6  <=10" = 30)
getPowerSurvival(maxNumberOfEvents = 40, accrualTime = at)
# Specify effect size for a twostage group design with O'Brien & Fleming boundaries
# Effect size is based on event rates at specified event time, directionUpper = FALSE
# needs to be specified because it should be shown that hazard ratio < 1
getPowerSurvival(design = getDesignGroupSequential(kMax = 2), pi1 = 0.2, pi2 = 0.3,
eventTime = 24, maxNumberOfEvents = 40, maxNumberOfSubjects = 200,
directionUpper = FALSE)
# Effect size is based on event rate at specified event time for the reference group
# and hazard ratio, directionUpper = FALSE needs to be specified
# because it should be shown that hazard ratio < 1
getPowerSurvival(design = getDesignGroupSequential(kMax = 2), hazardRatio = 0.5,
pi2 = 0.3, eventTime = 24, maxNumberOfEvents = 40, maxNumberOfSubjects = 200,
directionUpper = FALSE)
# Effect size is based on hazard rate for the reference group and hazard ratio,
# directionUpper = FALSE needs to be specified because it should be shown that
# hazard ratio < 1
getPowerSurvival(design = getDesignGroupSequential(kMax = 2), hazardRatio = 0.5,
lambda2 = 0.02, maxNumberOfEvents = 40, maxNumberOfSubjects = 200,
directionUpper = FALSE)
# Specification of piecewise exponential survival time and hazard ratios
getPowerSurvival(design = getDesignGroupSequential(kMax = 2),
piecewiseSurvivalTime = c(0, 5, 10), lambda2 = c(0.01,0.02,0.04),
hazardRatio = c(1.5, 1.8, 2), maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# Specification of piecewise exponential survival time as list and hazard ratios
pws < list(
"0  <5" = 0.01,
"5  <10" = 0.02,
">=10" = 0.04)
getPowerSurvival(design = getDesignGroupSequential(kMax = 2),
piecewiseSurvivalTime = pws, hazardRatio = c(1.5, 1.8, 2),
maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# Specification of piecewise exponential survival time for both treatment arms
getPowerSurvival(design = getDesignGroupSequential(kMax = 2),
piecewiseSurvivalTime = c(0, 5, 10), lambda2 = c(0.01, 0.02, 0.04),
lambda1 = c(0.015,0.03,0.06), maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# Specification of piecewise exponential survival time as a list
pws < list(
"0  <5" = 0.01,
"5  <10" = 0.02,
">=10" = 0.04)
getPowerSurvival(design = getDesignGroupSequential(kMax = 2),
piecewiseSurvivalTime = pws, hazardRatio = c(1.5, 1.8, 2),
maxNumberOfEvents = 40, maxNumberOfSubjects = 200)
# Specify effect size based on median survival times
getPowerSurvival(median1 = 5, median2 = 3,
maxNumberOfEvents = 40, maxNumberOfSubjects = 200, directionUpper = FALSE)
# Specify effect size based on median survival times of
# Weibull distribtion with kappa = 2
getPowerSurvival(median1 = 5, median2 = 3, kappa = 2,
maxNumberOfEvents = 40, maxNumberOfSubjects = 200, directionUpper = FALSE)