% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/RcppExports.R
\name{rmpower}
\alias{rmpower}
\title{Power for Difference in Restricted Mean Survival Times}
\usage{
rmpower(
  kMax = 1L,
  informationRates = NA_real_,
  efficacyStopping = NA_integer_,
  futilityStopping = NA_integer_,
  criticalValues = NULL,
  alpha = 0.025,
  typeAlphaSpending = "sfOF",
  parameterAlphaSpending = NA_real_,
  userAlphaSpending = NA_real_,
  futilityBounds = NULL,
  futilityCP = NULL,
  futilityRmstDiff = NULL,
  typeBetaSpending = "none",
  parameterBetaSpending = NA_real_,
  milestone = NA_real_,
  rmstDiffH0 = 0,
  allocationRatioPlanned = 1,
  accrualTime = 0L,
  accrualIntensity = NA_real_,
  piecewiseSurvivalTime = 0L,
  stratumFraction = 1L,
  lambda1 = NA_real_,
  lambda2 = NA_real_,
  gamma1 = 0L,
  gamma2 = 0L,
  accrualDuration = NA_real_,
  followupTime = NA_real_,
  fixedFollowup = FALSE,
  spendingTime = NA_real_,
  studyDuration = NA_real_
)
}
\arguments{
\item{kMax}{The maximum number of stages.}

\item{informationRates}{The information rates.
Defaults to \code{(1:kMax) / kMax} if left unspecified.}

\item{efficacyStopping}{Indicators of whether efficacy stopping is allowed
at each stage. Defaults to \code{TRUE} if left unspecified.}

\item{futilityStopping}{Indicators of whether futility stopping is allowed
at each stage. Defaults to \code{TRUE} if left unspecified.}

\item{criticalValues}{Upper boundaries on the z-test statistic scale
for stopping for efficacy.}

\item{alpha}{The significance level. Defaults to 0.025.}

\item{typeAlphaSpending}{The type of alpha spending. One of the following:
\code{"OF"} for O'Brien-Fleming boundaries,
\code{"P"} for Pocock boundaries,
\code{"WT"} for Wang & Tsiatis boundaries,
\code{"sfOF"} for O'Brien-Fleming type spending function,
\code{"sfP"} for Pocock type spending function,
\code{"sfKD"} for Kim & DeMets spending function,
\code{"sfHSD"} for Hwang, Shi & DeCani spending function,
\code{"user"} for user defined spending, and
\code{"none"} for no early efficacy stopping.
Defaults to \code{"sfOF"}.}

\item{parameterAlphaSpending}{The parameter value for the alpha spending.
Corresponds to \eqn{\Delta} for \code{"WT"}, \eqn{\rho} for \code{"sfKD"},
and \eqn{\gamma} for \code{"sfHSD"}.}

\item{userAlphaSpending}{The user defined alpha spending. Cumulative alpha
spent up to each stage.}

\item{futilityBounds}{Lower boundaries on the z-test statistic scale
for stopping for futility at stages \code{1, ..., kMax-1}. Defaults to
\code{rep(-8, kMax-1)} if left unspecified. The futility bounds are
non-binding for the calculation of critical values.}

\item{futilityCP}{A vector of length \code{kMax - 1} for the futility
bounds on the conditional power scale.}

\item{futilityRmstDiff}{A vector of length \code{kMax - 1} for the
futility bounds on the restricted mean survival time difference scale.}

\item{typeBetaSpending}{The type of beta spending. One of the following:
\code{"sfOF"} for O'Brien-Fleming type spending function,
\code{"sfP"} for Pocock type spending function,
\code{"sfKD"} for Kim & DeMets spending function,
\code{"sfHSD"} for Hwang, Shi & DeCani spending function, and
\code{"none"} for no early futility stopping.
Defaults to \code{"none"}.}

\item{parameterBetaSpending}{The parameter value for the beta spending.
Corresponds to \eqn{\rho} for \code{"sfKD"}, and
\eqn{\gamma} for \code{"sfHSD"}.}

\item{milestone}{The milestone time at which to calculate the
restricted mean survival time.}

\item{rmstDiffH0}{The difference in restricted mean survival times
under the null hypothesis. Defaults to 0 for superiority test.}

\item{allocationRatioPlanned}{Allocation ratio for the active treatment
versus control. Defaults to 1 for equal randomization.}

\item{accrualTime}{A vector that specifies the starting time of
piecewise Poisson enrollment time intervals. Must start with 0, e.g.,
\code{c(0, 3)} breaks the time axis into 2 accrual intervals:
\eqn{[0, 3)} and \eqn{[3, \infty)}.}

\item{accrualIntensity}{A vector of accrual intensities. One for
each accrual time interval.}

\item{piecewiseSurvivalTime}{A vector that specifies the starting time of
piecewise exponential survival time intervals. Must start with 0, e.g.,
\code{c(0, 6)} breaks the time axis into 2 event intervals:
\eqn{[0, 6)} and \eqn{[6, \infty)}.
Defaults to 0 for exponential distribution.}

\item{stratumFraction}{A vector of stratum fractions that sum to 1.
Defaults to 1 for no stratification.}

\item{lambda1}{A vector of hazard rates for the event in each analysis
time interval by stratum for the active treatment group.}

\item{lambda2}{A vector of hazard rates for the event in each analysis
time interval by stratum for the control group.}

\item{gamma1}{The hazard rate for exponential dropout, a vector of hazard
rates for piecewise exponential dropout applicable for all strata, or a
vector of hazard rates for dropout in each analysis time interval
by stratum for the active treatment group.}

\item{gamma2}{The hazard rate for exponential dropout, a vector of hazard
rates for piecewise exponential dropout applicable for all strata, or a
vector of hazard rates for dropout in each analysis time interval
by stratum for the control group.}

\item{accrualDuration}{Duration of the enrollment period.}

\item{followupTime}{Follow-up time for the last enrolled subject.}

\item{fixedFollowup}{Whether a fixed follow-up design is used.
Defaults to \code{FALSE} for variable follow-up.}

\item{spendingTime}{A vector of length \code{kMax} for the error spending
time at each analysis. Defaults to missing, in which case, it is the
same as \code{informationRates}.}

\item{studyDuration}{Study duration for fixed follow-up design.
Defaults to missing, which is to be replaced with the sum of
\code{accrualDuration} and \code{followupTime}. If provided,
the value is allowed to be less than the sum of \code{accrualDuration}
and \code{followupTime}.}
}
\value{
An S3 class \code{rmpower} object with 4 components:
\itemize{
\item \code{overallResults}: A data frame containing the following variables:
\itemize{
\item \code{overallReject}: The overall rejection probability.
\item \code{alpha}: The overall significance level.
\item \code{numberOfEvents}: The total number of events.
\item \code{numberOfDropouts}: The total number of dropouts.
\item \code{numbeOfSubjects}: The total number of subjects.
\item \code{numberOfMilestone}: The total number of subjects reaching
milestone.
\item \code{studyDuration}: The total study duration.
\item \code{information}: The maximum information.
\item \code{expectedNumberOfEvents}: The expected number of events.
\item \code{expectedNumberOfDropouts}: The expected number of dropouts.
\item \code{expectedNumberOfSubjects}: The expected number of subjects.
\item \code{expectedNumberOfMilestone}: The expected number of subjects
reaching milestone.
\item \code{expectedStudyDuration}: The expected study duration.
\item \code{expectedInformation}: The expected information.
\item \code{accrualDuration}: The accrual duration.
\item \code{followupTime}: The follow-up duration.
\item \code{fixedFollowup}: Whether a fixed follow-up design is used.
\item \code{kMax}: The number of stages.
\item \code{milestone}: The milestone time relative to randomization.
\item \code{rmstDiffH0}: The difference in restricted mean survival
times under the null hypothesis.
\item \code{rmst1}: The restricted mean survival time for the
treatment group.
\item \code{rmst2}: The restricted mean survival time for the
control group.
\item \code{rmstDiff}: The difference in restricted mean survival times,
equal to \code{rmst1 - rmst2}.
}
\item \code{byStageResults}: A data frame containing the following variables:
\itemize{
\item \code{informationRates}: The information rates.
\item \code{efficacyBounds}: The efficacy boundaries on the Z-scale.
\item \code{futilityBounds}: The futility boundaries on the Z-scale.
\item \code{rejectPerStage}: The probability for efficacy stopping.
\item \code{futilityPerStage}: The probability for futility stopping.
\item \code{cumulativeRejection}: The cumulative probability for efficacy
stopping.
\item \code{cumulativeFutility}: The cumulative probability for futility
stopping.
\item \code{cumulativeAlphaSpent}: The cumulative alpha spent.
\item \code{numberOfEvents}: The number of events.
\item \code{numberOfDropouts}: The number of dropouts.
\item \code{numberOfSubjects}: The number of subjects.
\item \code{numberOfMilestone}: The number of subjects reaching
milestone.
\item \code{analysisTime}: The average time since trial start.
\item \code{efficacyRmstDiff}: The efficacy boundaries on the restricted
mean survival time difference scale.
\item \code{futilityRmstDiff}: The futility boundaries on the restricted
mean survival time difference scale.
\item \code{efficacyP}: The efficacy boundaries on the p-value scale.
\item \code{futilityP}: The futility boundaries on the p-value scale.
\item \code{information}: The cumulative information.
\item \code{efficacyStopping}: Whether to allow efficacy stopping.
\item \code{futilityStopping}: Whether to allow futility stopping.
}
\item \code{settings}: A list containing the following input parameters:
\code{typeAlphaSpending}, \code{parameterAlphaSpending},
\code{userAlphaSpending}, \code{typeBetaSpending},
\code{parameterBetaSpending}, \code{allocationRatioPlanned},
\code{accrualTime}, \code{accuralIntensity},
\code{piecewiseSurvivalTime}, \code{stratumFraction},
\code{lambda1}, \code{lambda2}, \code{gamma1}, \code{gamma2},
and \code{spendingTime}.
\item \code{byTreatmentCounts}: A list containing the following counts by
treatment group:
\itemize{
\item \code{numberOfEvents1}: The number of events by stage for
the treatment group.
\item \code{numberOfDropouts1}: The number of dropouts by stage for
the treatment group.
\item \code{numberOfSubjects1}: The number of subjects by stage for
the treatment group.
\item \code{numberOfMilestone1}: The number of subjects reaching
milestone by stage for the active treatment group.
\item \code{numberOfEvents2}: The number of events by stage for
the control group.
\item \code{numberOfDropouts2}: The number of dropouts by stage for
the control group.
\item \code{numberOfSubjects2}: The number of subjects by stage for
the control group.
\item \code{numberOfMilestone2}: The number of subjects reaching
milestone by stage for the control group.
\item \code{expectedNumberOfEvents1}: The expected number of events for
the treatment group.
\item \code{expectedNumberOfDropouts1}: The expected number of dropouts
for the active treatment group.
\item \code{expectedNumberOfSubjects1}: The expected number of subjects
for the active treatment group.
\item \code{expectedNumberOfMilestone1}: The expected number of subjects
reaching milestone for the active treatment group.
\item \code{expectedNumberOfEvents2}: The expected number of events for
control group.
\item \code{expectedNumberOfDropouts2}: The expected number of dropouts
for the control group.
\item \code{expectedNumberOfSubjects2}: The expected number of subjects
for the control group.
\item \code{expectedNumberOfMilestone2}: The expected number of subjects
reaching milestone for the control group.
}
}
}
\description{
Estimates the power for testing the difference in
restricted mean survival times in a two-sample survival design.
}
\examples{
# Piecewise accrual, piecewise exponential survival, and 5\% dropout by
# the end of 1 year.

rmpower(kMax = 2, informationRates = c(0.8, 1),
        alpha = 0.025, typeAlphaSpending = "sfOF",
        milestone = 18,
        allocationRatioPlanned = 1, accrualTime = seq(0, 8),
        accrualIntensity = 26/9*seq(1, 9),
        piecewiseSurvivalTime = c(0, 6),
        stratumFraction = c(0.2, 0.8),
        lambda1 = c(0.0533, 0.0309, 1.5*0.0533, 1.5*0.0309),
        lambda2 = c(0.0533, 0.0533, 1.5*0.0533, 1.5*0.0533),
        gamma1 = -log(1-0.05)/12,
        gamma2 = -log(1-0.05)/12, accrualDuration = 22,
        followupTime = 18, fixedFollowup = FALSE)

}
\author{
Kaifeng Lu, \email{kaifenglu@gmail.com}
}
