View source: R/getDesignMeans.R
| getDesignMeanDiffMMRM | R Documentation |
Obtains the power and sample size for two-sample mean difference at the last time point from the mixed-model for repeated measures (MMRM) model.
getDesignMeanDiffMMRM(
beta = NA_real_,
meanDiffH0 = 0,
meanDiff = 0.5,
k = 1,
t = NA_real_,
covar1 = diag(k),
covar2 = NA_real_,
accrualTime = 0,
accrualIntensity = NA_real_,
piecewiseSurvivalTime = 0,
gamma1 = 0,
gamma2 = 0,
accrualDuration = NA_real_,
allocationRatioPlanned = 1,
normalApproximation = TRUE,
rounding = TRUE,
kMax = 1L,
informationRates = NA_real_,
efficacyStopping = NA_integer_,
futilityStopping = NA_integer_,
criticalValues = NA_real_,
alpha = 0.025,
typeAlphaSpending = "sfOF",
parameterAlphaSpending = NA_real_,
userAlphaSpending = NA_real_,
futilityBounds = NA_real_,
typeBetaSpending = "none",
parameterBetaSpending = NA_real_,
userBetaSpending = NA_real_,
spendingTime = NA_real_
)
beta |
The type II error. |
meanDiffH0 |
The mean difference at the last time point under the null hypothesis. Defaults to 0. |
meanDiff |
The mean difference at the last time point under the alternative hypothesis. |
k |
The number of postbaseline time points. |
t |
The postbaseline time points. |
covar1 |
The covariance matrix for the repeated measures given baseline for the active treatment group. |
covar2 |
The covariance matrix for the repeated measures given baseline for the control group. If missing, it will be set equal to the covariance matrix for the active treatment group. |
accrualTime |
A vector that specifies the starting time of
piecewise Poisson enrollment time intervals. Must start with 0, e.g.,
|
accrualIntensity |
A vector of accrual intensities. One for each accrual time interval. |
piecewiseSurvivalTime |
A vector that specifies the starting time of
piecewise exponential survival time intervals. Must start with 0, e.g.,
|
gamma1 |
The hazard rate for exponential dropout, or a vector of hazard rates for piecewise exponential dropout for the active treatment group. |
gamma2 |
The hazard rate for exponential dropout, or a vector of hazard rates for piecewise exponential dropout for the control group. |
accrualDuration |
Duration of the enrollment period. |
allocationRatioPlanned |
Allocation ratio for the active treatment versus control. Defaults to 1 for equal randomization. |
normalApproximation |
The type of computation of the p-values.
If |
rounding |
Whether to round up sample size. Defaults to 1 for sample size rounding. |
kMax |
The maximum number of stages. |
informationRates |
The information rates. Defaults to
|
efficacyStopping |
Indicators of whether efficacy stopping is allowed at each stage. Defaults to true if left unspecified. |
futilityStopping |
Indicators of whether futility stopping is allowed at each stage. Defaults to true if left unspecified. |
criticalValues |
Upper boundaries on the z-test statistic scale for stopping for efficacy. |
alpha |
The significance level. Defaults to 0.025. |
typeAlphaSpending |
The type of alpha spending. One of the following: "OF" for O'Brien-Fleming boundaries, "P" for Pocock boundaries, "WT" for Wang & Tsiatis boundaries, "sfOF" for O'Brien-Fleming type spending function, "sfP" for Pocock type spending function, "sfKD" for Kim & DeMets spending function, "sfHSD" for Hwang, Shi & DeCani spending function, "user" for user defined spending, and "none" for no early efficacy stopping. Defaults to "sfOF". |
parameterAlphaSpending |
The parameter value for the alpha spending. Corresponds to Delta for "WT", rho for "sfKD", and gamma for "sfHSD". |
userAlphaSpending |
The user defined alpha spending. Cumulative alpha spent up to each stage. |
futilityBounds |
Lower boundaries on the z-test statistic scale
for stopping for futility at stages 1, ..., |
typeBetaSpending |
The type of beta spending. One of the following: "sfOF" for O'Brien-Fleming type spending function, "sfP" for Pocock type spending function, "sfKD" for Kim & DeMets spending function, "sfHSD" for Hwang, Shi & DeCani spending function, "user" for user defined spending, and "none" for no early futility stopping. Defaults to "none". |
parameterBetaSpending |
The parameter value for the beta spending. Corresponds to rho for "sfKD", and gamma for "sfHSD". |
userBetaSpending |
The user defined beta spending. Cumulative beta spent up to each stage. |
spendingTime |
A vector of length |
Consider a longitudinal study with two treatment groups.
The outcome is measured at baseline and at k postbaseline
time points. For each treatment group, the outcomes are assumed to
follow a multivariate normal distribution.
Conditional on baseline, the covariance matrix of the post-baseline
outcomes is denoted by \Sigma_1 for the active treatment group
and \Sigma_2 for the control group.
Let \mu_1 and \mu_2 denote the mean vectors of
post-baseline outcomes for the active and control groups, respectively.
We are interested in testing the null
hypothesis H_0: \mu_{1,k} - \mu_{2,k} = \delta_0
against the alternative H_1: \mu_{1,k} - \mu_{2,k} = \delta.
The study design is based on the information for treatment difference at the last postbaseline time point. This information is given by
I = 1/\text{Var}(\hat{\mu}_{1,k} - \hat{\mu}_{2,k})
In the presence of monotone missing data, let
p_{g,1},\ldots,p_{g,k} denote the proportions of subjects in
observed data patterns 1 through k for treatment group
g=1 (active) or 2 (control).
A subject in pattern j has complete data up to time t_j, i.e.,
the observed outcomes are y_{i,1},\ldots,y_{i,j},
with missing values for y_{i,j+1},\ldots,y_{i,k}.
According to Lu et al. (2008), the information
matrix for the post-baseline mean vector in group g is
I_g = n \pi_g J_g
where \pi_g is the proportion of subjects in group g,
and
J_g = \sum_{j=1}^k p_{g,j} \left(
\begin{array}{cc} \Sigma_{g,j}^{-1} & 0 \\ 0 & 0 \end{array}\right)
Here, \Sigma_{g,j} is the leading j\times j
principal submatrix of \Sigma_g. It follows that
\text{Var}(\hat{\mu}_{1,k} - \hat{\mu}_{2,k}) =
\frac{1}{n}\left(\frac{1}{\pi_1} J_1^{-1}[k,k] +
\frac{1}{\pi_2} J_2^{-1}[k,k]\right)
The observed data pattern probabilities depend on the accrual and
dropout distributions.
Let H(u) denote the cumulative distribution function of
enrollment time u,
G_g(t) denote the survival function of dropout time t for
treatment group g,
and \tau denote the calendar time at interim or final analysis.
Then, for j=1,\ldots,k-1, the probability that a subject in group
g falls into observed data pattern j is
p_{g,j} = H(\tau - t_j)G_g(t_j) - H(\tau - t_{j+1})G_g(t_{j+1})
For the last pattern (j=k, i.e., completers),
p_{g,k} = H(\tau - t_k)G_g(t_k)
For the final analysis, \tau is the study duration,
so H(\tau - t_j) = 1 for all j.
Therefore, the pattern probabilities depend only on the dropout
distribution:
p_{g,j} = G_g(t_j) - G_g(t_{j+1}), \quad j=1,\ldots,k-1
and
p_{g,k} = G_g(t_k)
Cumulative dropout probabilities at post-baseline time points
can be used to define a piecewise exponential dropout distribution.
Let F_g(t_j) denote the cumulative probability of dropout
by time t_j for treatment group g.
The left endpoints of the piecewise survival time intervals are given by
t_0=0,t_1,\ldots,t_{k-1}.
The hazard rate in the interval (t_{j-1},t_j] is given by
\gamma_{g,j} = -\log\left(\frac{1 - F_g(t_j)}{1 - F_g(t_{j-1})}
\right) / (t_j - t_{j-1}), \quad j=1,\ldots,k
An S3 class designMeanDiffMMRM object with three
components:
overallResults: A data frame containing the following variables:
overallReject: The overall rejection probability.
alpha: The overall significance level.
attainedAlpha: The attained significance level, which is
different from the overall significance level in the presence of
futility stopping.
kMax: The number of stages.
theta: The parameter value.
information: The maximum information.
expectedInformationH1: The expected information under H1.
expectedInformationH0: The expected information under H0.
drift: The drift parameter, equal to
theta*sqrt(information).
inflationFactor: The inflation factor (relative to the
fixed design).
numberOfSubjects: The maximum number of subjects.
studyDuration: The maximum study duration.
expectedNumberOfSubjectsH1: The expected number of subjects
under H1.
expectedNumberOfSubjectsH0: The expected number of subjects
under H0.
expectedStudyDurationH1: The expected study duration
under H1.
expectedStudyDurationH0: The expected study duration
under H0.
accrualDuration: The accrual duration.
followupTime: The follow-up time.
fixedFollowup: Whether a fixed follow-up design is used.
meanDiffH0: The mean difference under H0.
meanDiff: The mean difference under H1.
byStageResults: A data frame containing the following variables:
informationRates: The information rates.
efficacyBounds: The efficacy boundaries on the Z-scale.
futilityBounds: The futility boundaries on the Z-scale.
rejectPerStage: The probability for efficacy stopping.
futilityPerStage: The probability for futility stopping.
cumulativeRejection: The cumulative probability for efficacy
stopping.
cumulativeFutility: The cumulative probability for futility
stopping.
cumulativeAlphaSpent: The cumulative alpha spent.
efficacyP: The efficacy boundaries on the p-value scale.
futilityP: The futility boundaries on the p-value scale.
information: The cumulative information.
efficacyStopping: Whether to allow efficacy stopping.
futilityStopping: Whether to allow futility stopping.
rejectPerStageH0: The probability for efficacy stopping
under H0.
futilityPerStageH0: The probability for futility stopping
under H0.
cumulativeRejectionH0: The cumulative probability for
efficacy stopping under H0.
cumulativeFutilityH0: The cumulative probability for futility
stopping under H0.
efficacyMeanDiff: The efficacy boundaries on the mean
difference scale.
futilityMeanDiff: The futility boundaries on the mean
difference scale.
numberOfSubjects: The number of subjects.
numberOfCompleters: The number of completers.
analysisTime: The average time since trial start.
settings: A list containing the following input parameters:
typeAlphaSpending: The type of alpha spending.
parameterAlphaSpending: The parameter value for alpha
spending.
userAlphaSpending: The user defined alpha spending.
typeBetaSpending: The type of beta spending.
parameterBetaSpending: The parameter value for beta spending.
userBetaSpending: The user defined beta spending.
spendingTime: The error spending time at each analysis.
allocationRatioPlanned: The allocation ratio for the active
treatment versus control.
accrualTime: A vector that specifies the starting time of
piecewise Poisson enrollment time intervals.
accrualIntensity: A vector of accrual intensities.
One for each accrual time interval.
piecewiseSurvivalTime: A vector that specifies the
starting time of piecewise exponential survival time intervals.
gamma1: The hazard rate for exponential dropout or
a vector of hazard rates for piecewise exponential dropout
for the active treatment group.
gamma2: The hazard rate for exponential dropout or
a vector of hazard rates for piecewise exponential dropout
for the control group.
k: The number of postbaseline time points.
t: The postbaseline time points.
covar1: The covariance matrix for the repeated measures
given baseline for the active treatment group.
covar2: The covariance matrix for the repeated measures
given baseline for the control group.
normalApproximation: The type of computation of the p-values.
If TRUE, the variance is assumed to be known, otherwise
the calculations are performed with the t distribution.
rounding: Whether to round up sample size.
Kaifeng Lu, kaifenglu@gmail.com
Kaifeng Lu, Xiaohui Luo, and Pei-Yun Chen. Sample size estimation for repeated measures analysis in randomized clinical trials with missing data. The International Journal of Biostatistics 2008; 14(1), Article 9.
# function to generate the AR(1) correlation matrix
ar1_cor <- function(n, corr) {
exponent <- abs(matrix((1:n) - 1, n, n, byrow = TRUE) - ((1:n) - 1))
corr^exponent
}
(design1 = getDesignMeanDiffMMRM(
beta = 0.2,
meanDiffH0 = 0,
meanDiff = 0.5,
k = 4,
t = c(1,2,3,4),
covar1 = ar1_cor(4, 0.7),
accrualIntensity = 10,
gamma1 = 0.02634013,
gamma2 = 0.02634013,
accrualDuration = NA,
allocationRatioPlanned = 1,
kMax = 3,
alpha = 0.025,
typeAlphaSpending = "sfOF"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.