library(rpact)
packageVersion("rpact")
How to Create Summaries with rpact
Global options
First, load the rpact package
[1] '3.3.4'
The following options can be set globally:
rpact.summary.output.size
: one of c(“small”, “medium”, “large”); defines how many details will be included into the summary; default is “large”, i.e., all available details are displayed.
rpact.summary.justify
: one of c(“right”, “left”, “centre”); shall the values be right-justified (the default), left-justified or centered.
rpact.summary.intervalFormat
: defines how intervals will be displayed in the summary, default is “[%s; %s]”.
rpact.summary.digits
: defines how many digits are to be used for numeric values (default is 3).
rpact.summary.digits.probs
: defines how many digits are to be used for numeric values (default is one more than value of rpact.summary.digits, i.e., 4).
rpact.summary.trim.zeroes
: if TRUE (default) zeroes will always displayed as “0”, e.g. “0.000” will become “0”.
Examples
options("rpact.summary.output.size" = "small") # small, medium, large
options("rpact.summary.output.size" = "medium") # small, medium, large
options("rpact.summary.output.size" = "large") # small, medium, large
options("rpact.summary.intervalFormat" = "[%s; %s]")
options("rpact.summary.intervalFormat" = "%s - %s")
options("rpact.summary.justify" = "left")
options("rpact.summary.justify" = "centre")
options("rpact.summary.justify" = "right")
Design summaries
kable(summary(getDesignGroupSequential(
beta = 0.05, typeOfDesign = "asKD", gammaA = 1,
typeBetaSpending = "bsOF"
)))
Sequential analysis with a maximum of 3 looks (group sequential design)
Kim & DeMets alpha spending design (gammaA = 1) and O’Brien & Fleming type beta spending, non-binding futility, one-sided overall significance level 2.5%, power 95%, undefined endpoint, inflation factor 1.1247, ASN H1 0.6553, ASN H01 0.8792, ASN H0 0.7415.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 2.394 | 2.294 | 2.200 |
Stage Levels | 0.0083 | 0.0109 | 0.0139 |
Futility boundary (z-value scale) | -0.993 | 0.982 | |
Cumulative alpha spent | 0.0083 | 0.0167 | 0.0250 |
Cumulative beta spent | 0.0007 | 0.0164 | 0.0500 |
Overall power | 0.4259 | 0.8092 | 0.9500 |
Futility probabilities under H1 | <0.001 | 0.016 |
kable(summary(getDesignGroupSequential(kMax = 1)))
Fixed sample analysis
O’Brien & Fleming design, one-sided significance level 2.5%, power 80%, undefined endpoint.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Stage Levels | 0.0250 |
kable(summary(getDesignGroupSequential(kMax = 4, sided = 2)))
Sequential analysis with a maximum of 4 looks (group sequential design)
O’Brien & Fleming design, two-sided overall significance level 2.5%, power 80%, undefined endpoint, inflation factor 1.017, ASN H1 0.8458, ASN H01 0.9876, ASN H0 1.0144.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Information rate | 25% | 50% | 75% | 100% |
Efficacy boundary (z-value scale) | 4.579 | 3.238 | 2.644 | 2.289 |
Stage Levels | <0.0001 | 0.0006 | 0.0041 | 0.0110 |
Cumulative alpha spent | <0.0001 | 0.0012 | 0.0086 | 0.0250 |
Overall power | 0.0012 | 0.1494 | 0.5227 | 0.8000 |
kable(summary(getDesignGroupSequential(kMax = 4, sided = 2), digits = 0))
Sequential analysis with a maximum of 4 looks (group sequential design)
O’Brien & Fleming design, two-sided overall significance level 2.5%, power 80%, undefined endpoint, inflation factor 1.017, ASN H1 0.8458, ASN H01 0.9876, ASN H0 1.0144.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Information rate | 25% | 50% | 75% | 100% |
Efficacy boundary (z-value scale) | 4.579 | 3.238 | 2.644 | 2.289 |
Stage Levels | 0.000002339 | 0.000602619 | 0.004102447 | 0.011029355 |
Cumulative alpha spent | 0.000004679 | 0.001207215 | 0.008644578 | 0.024999990 |
Overall power | 0.001247 | 0.149399 | 0.522709 | 0.800000 |
kable(summary(getDesignGroupSequential(futilityBounds = c(-6, 0)), digits = 5))
Sequential analysis with a maximum of 3 looks (group sequential design)
O’Brien & Fleming design, non-binding futility, one-sided overall significance level 2.5%, power 80%, undefined endpoint, inflation factor 1.0178, ASN H1 0.8529, ASN H01 0.9413, ASN H0 0.8457.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.47109 | 2.45443 | 2.00404 |
Stage Levels | 0.000259 | 0.007055 | 0.022533 |
Futility boundary (z-value scale) | -Inf | 0 | |
Cumulative alpha spent | 0.000259 | 0.007160 | 0.025000 |
Overall power | 0.032939 | 0.442575 | 0.800000 |
Futility probabilities under H1 | 0 | 0.01051 |
Design plan summaries
Design plan summaries - means
kable(summary(getSampleSizeMeans(sided = 2, alternative = -0.5)))
Sample size calculation for a continuous endpoint
Fixed sample analysis, significance level 2.5% (two-sided). The sample size was calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect = -0.5, standard deviation = 1, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 2.241 |
Number of subjects | 154.6 |
Two-sided local significance level | 0.0250 |
Lower efficacy boundary (t) | -0.364 |
Upper efficacy boundary (t) | 0.364 |
Legend:
- (t): treatment effect scale
kable(summary(getPowerMeans(
sided = 1, alternative = c(-0.5, -0.3),
maxNumberOfSubjects = 100, directionUpper = FALSE
)))
Power calculation for a continuous endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The results were calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, power directed towards smaller values, H1: effect as specified, standard deviation = 1, number of subjects = 100.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Power, alt. = -0.5 | 0.6969 |
Power, alt. = -0.3 | 0.3175 |
Number of subjects | 100.0 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t) | -0.397 |
Legend:
- alt.: alternative
- (t): treatment effect scale
kable(summary(getSampleSizeMeans(getDesignGroupSequential(futilityBounds = c(1, 2))), digits = 0))
Sample size calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The sample size was calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect as specified, standard deviation = 1, power 80%.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.471 | 2.454 | 2.004 |
Futility boundary (z-value scale) | 1.000 | 2.000 | |
Overall power | 0.09667 | 0.70304 | 0.80000 |
Expected number of subjects, alt. = 0.2 | 888.9 | ||
Expected number of subjects, alt. = 0.4 | 223.9 | ||
Expected number of subjects, alt. = 0.6 | 100.7 | ||
Expected number of subjects, alt. = 0.8 | 57.7 | ||
Expected number of subjects, alt. = 1 | 37.8 | ||
Number of subjects, alt. = 0.2 | 472.2 | 944.4 | 1416.5 |
Number of subjects, alt. = 0.4 | 118.9 | 237.8 | 356.8 |
Number of subjects, alt. = 0.6 | 53.5 | 107 | 160.5 |
Number of subjects, alt. = 0.8 | 30.6 | 61.3 | 91.9 |
Number of subjects, alt. = 1 | 20.1 | 40.1 | 60.2 |
Cumulative alpha spent | 0.0002592 | 0.0071601 | 0.0250000 |
One-sided local significance level | 0.0002592 | 0.0070554 | 0.0225331 |
Efficacy boundary (t), alt. = 0.2 | 0.322 | 0.160 | 0.107 |
Efficacy boundary (t), alt. = 0.4 | 0.655 | 0.321 | 0.213 |
Efficacy boundary (t), alt. = 0.6 | 1.013 | 0.483 | 0.319 |
Efficacy boundary (t), alt. = 0.8 | 1.413 | 0.646 | 0.424 |
Efficacy boundary (t), alt. = 1 | 1.882 | 0.812 | 0.528 |
Futility boundary (t), alt. = 0.2 | 0.0921 | 0.1303 | |
Futility boundary (t), alt. = 0.4 | 0.184 | 0.261 | |
Futility boundary (t), alt. = 0.6 | 0.276 | 0.391 | |
Futility boundary (t), alt. = 0.8 | 0.368 | 0.522 | |
Futility boundary (t), alt. = 1 | 0.459 | 0.653 | |
Overall exit probability (under H0) | 0.8416 | 0.1462 | |
Overall exit probability (under H1) | 0.2176 | 0.6822 | |
Exit probability for efficacy (under H0) | 0.0002592 | 0.0062354 | |
Exit probability for efficacy (under H1) | 0.09667 | 0.60637 | |
Exit probability for futility (under H0) | 0.8413 | 0.1400 | |
Exit probability for futility (under H1) | 0.12094 | 0.07581 |
Legend:
- alt.: alternative
- (t): treatment effect scale
kable(summary(getPowerMeans(getDesignGroupSequential(futilityBounds = c(1, 2)),
maxNumberOfSubjects = 100, alternative = 1
)))
Power calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The results were calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, power directed towards larger values, H1: effect = 1, standard deviation = 1, maximum number of subjects = 100.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.471 | 2.454 | 2.004 |
Futility boundary (z-value scale) | 1.000 | 2.000 | |
Overall power | 0.2700 | 0.9281 | 0.9563 |
Expected number of subjects | 57.6 | ||
Number of subjects | 33.3 | 66.7 | 100.0 |
Cumulative alpha spent | 0.0003 | 0.0072 | 0.0250 |
One-sided local significance level | 0.0003 | 0.0071 | 0.0225 |
Efficacy boundary (t) | 1.340 | 0.618 | 0.406 |
Futility boundary (t) | 0.352 | 0.500 | |
Overall exit probability (under H0) | 0.8416 | 0.1462 | |
Overall exit probability (under H1) | 0.3015 | 0.6702 | |
Exit probability for efficacy (under H0) | 0.0003 | 0.0062 | |
Exit probability for efficacy (under H1) | 0.2700 | 0.6582 | |
Exit probability for futility (under H0) | 0.8413 | 0.1400 | |
Exit probability for futility (under H1) | 0.0316 | 0.0120 |
Legend:
- (t): treatment effect scale
kable(summary(getSampleSizeMeans(getDesignGroupSequential(futilityBounds = c(1, 2))), digits = 3))
Sample size calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The sample size was calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect as specified, standard deviation = 1, power 80%.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.471 | 2.454 | 2.004 |
Futility boundary (z-value scale) | 1.000 | 2.000 | |
Overall power | 0.0967 | 0.7030 | 0.8000 |
Expected number of subjects, alt. = 0.2 | 888.9 | ||
Expected number of subjects, alt. = 0.4 | 223.9 | ||
Expected number of subjects, alt. = 0.6 | 100.7 | ||
Expected number of subjects, alt. = 0.8 | 57.7 | ||
Expected number of subjects, alt. = 1 | 37.8 | ||
Number of subjects, alt. = 0.2 | 472.2 | 944.4 | 1416.5 |
Number of subjects, alt. = 0.4 | 118.9 | 237.8 | 356.8 |
Number of subjects, alt. = 0.6 | 53.5 | 107.0 | 160.5 |
Number of subjects, alt. = 0.8 | 30.6 | 61.3 | 91.9 |
Number of subjects, alt. = 1 | 20.1 | 40.1 | 60.2 |
Cumulative alpha spent | 0.0003 | 0.0072 | 0.0250 |
One-sided local significance level | 0.0003 | 0.0071 | 0.0225 |
Efficacy boundary (t), alt. = 0.2 | 0.322 | 0.160 | 0.107 |
Efficacy boundary (t), alt. = 0.4 | 0.655 | 0.321 | 0.213 |
Efficacy boundary (t), alt. = 0.6 | 1.013 | 0.483 | 0.319 |
Efficacy boundary (t), alt. = 0.8 | 1.413 | 0.646 | 0.424 |
Efficacy boundary (t), alt. = 1 | 1.882 | 0.812 | 0.528 |
Futility boundary (t), alt. = 0.2 | 0.092 | 0.130 | |
Futility boundary (t), alt. = 0.4 | 0.184 | 0.261 | |
Futility boundary (t), alt. = 0.6 | 0.276 | 0.391 | |
Futility boundary (t), alt. = 0.8 | 0.368 | 0.522 | |
Futility boundary (t), alt. = 1 | 0.459 | 0.653 | |
Overall exit probability (under H0) | 0.8416 | 0.1462 | |
Overall exit probability (under H1) | 0.2176 | 0.6822 | |
Exit probability for efficacy (under H0) | 0.0003 | 0.0062 | |
Exit probability for efficacy (under H1) | 0.0967 | 0.6064 | |
Exit probability for futility (under H0) | 0.8413 | 0.1400 | |
Exit probability for futility (under H1) | 0.1209 | 0.0758 |
Legend:
- alt.: alternative
- (t): treatment effect scale
kable(summary(getSampleSizeMeans(getDesignGroupSequential(futilityBounds = c(1, 2))), digits = 0))
Sample size calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The sample size was calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect as specified, standard deviation = 1, power 80%.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.471 | 2.454 | 2.004 |
Futility boundary (z-value scale) | 1.000 | 2.000 | |
Overall power | 0.09667 | 0.70304 | 0.80000 |
Expected number of subjects, alt. = 0.2 | 888.9 | ||
Expected number of subjects, alt. = 0.4 | 223.9 | ||
Expected number of subjects, alt. = 0.6 | 100.7 | ||
Expected number of subjects, alt. = 0.8 | 57.7 | ||
Expected number of subjects, alt. = 1 | 37.8 | ||
Number of subjects, alt. = 0.2 | 472.2 | 944.4 | 1416.5 |
Number of subjects, alt. = 0.4 | 118.9 | 237.8 | 356.8 |
Number of subjects, alt. = 0.6 | 53.5 | 107 | 160.5 |
Number of subjects, alt. = 0.8 | 30.6 | 61.3 | 91.9 |
Number of subjects, alt. = 1 | 20.1 | 40.1 | 60.2 |
Cumulative alpha spent | 0.0002592 | 0.0071601 | 0.0250000 |
One-sided local significance level | 0.0002592 | 0.0070554 | 0.0225331 |
Efficacy boundary (t), alt. = 0.2 | 0.322 | 0.160 | 0.107 |
Efficacy boundary (t), alt. = 0.4 | 0.655 | 0.321 | 0.213 |
Efficacy boundary (t), alt. = 0.6 | 1.013 | 0.483 | 0.319 |
Efficacy boundary (t), alt. = 0.8 | 1.413 | 0.646 | 0.424 |
Efficacy boundary (t), alt. = 1 | 1.882 | 0.812 | 0.528 |
Futility boundary (t), alt. = 0.2 | 0.0921 | 0.1303 | |
Futility boundary (t), alt. = 0.4 | 0.184 | 0.261 | |
Futility boundary (t), alt. = 0.6 | 0.276 | 0.391 | |
Futility boundary (t), alt. = 0.8 | 0.368 | 0.522 | |
Futility boundary (t), alt. = 1 | 0.459 | 0.653 | |
Overall exit probability (under H0) | 0.8416 | 0.1462 | |
Overall exit probability (under H1) | 0.2176 | 0.6822 | |
Exit probability for efficacy (under H0) | 0.0002592 | 0.0062354 | |
Exit probability for efficacy (under H1) | 0.09667 | 0.60637 | |
Exit probability for futility (under H0) | 0.8413 | 0.1400 | |
Exit probability for futility (under H1) | 0.12094 | 0.07581 |
Legend:
- alt.: alternative
- (t): treatment effect scale
kable(summary(getSampleSizeMeans(getDesignGroupSequential(futilityBounds = c(1, 2))), digits = -1))
Sample size calculation for a continuous endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The sample size was calculated for a two-sample t-test, H0: mu(1) - mu(2) = 0, H1: effect as specified, standard deviation = 1, power 80%.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.47109144465409 | 2.45443229863352 | 2.00403557995285 |
Futility boundary (z-value scale) | 1 | 2 | |
Overall power | 0.0966650610605367 | 0.703040057014071 | 0.80000000002314 |
Expected number of subjects, alt. = 0.2 | 888.920027605032 | ||
Expected number of subjects, alt. = 0.4 | 223.87696109837 | ||
Expected number of subjects, alt. = 0.6 | 100.743836089912 | ||
Expected number of subjects, alt. = 0.8 | 57.6740643002556 | ||
Expected number of subjects, alt. = 1 | 37.7677516807109 | ||
Number of subjects, alt. = 0.2 | 472.175971190466 | 944.351942380931 | 1416.5279135714 |
Number of subjects, alt. = 0.4 | 118.918820873684 | 237.837641747368 | 356.756462621051 |
Number of subjects, alt. = 0.6 | 53.5130463596028 | 107.026092719206 | 160.539139078808 |
Number of subjects, alt. = 0.8 | 30.6352725529709 | 61.2705451059418 | 91.9058176589127 |
Number of subjects, alt. = 1 | 20.0614501594328 | 40.1229003188656 | 60.1843504782985 |
Cumulative alpha spent | 0.000259173723496486 | 0.00716005940148268 | 0.02499999 |
One-sided local significance level | 0.000259173723496486 | 0.00705536161371034 | 0.0225331246048349 |
Efficacy boundary (t), alt. = 0.2 | 0.321710839190332 | 0.16003836007769 | 0.106587932791286 |
Efficacy boundary (t), alt. = 0.4 | 0.654823493383795 | 0.320689953155161 | 0.212954736915393 |
Efficacy boundary (t), alt. = 0.6 | 1.01268266453838 | 0.482561132966478 | 0.31885502624729 |
Efficacy boundary (t), alt. = 0.8 | 1.41302933799472 | 0.646240615813086 | 0.4239964819812 |
Efficacy boundary (t), alt. = 1 | 1.88164819392793 | 0.812280944461673 | 0.528020838325741 |
Futility boundary (t), alt. = 0.2 | 0.09213829 | 0.13033753 | |
Futility boundary (t), alt. = 0.4 | 0.18418994 | 0.26075187 | |
Futility boundary (t), alt. = 0.6 | 0.27608063 | 0.39130341 | |
Futility boundary (t), alt. = 0.8 | 0.36776309 | 0.52201903 | |
Futility boundary (t), alt. = 1 | 0.45923643 | 0.65287366 | |
Overall exit probability (under H0) | 0.841603919792039 | 0.146222739762505 | |
Overall exit probability (under H1) | 0.217605032843879 | 0.682186663832684 | |
Exit probability for efficacy (under H0) | 0.000259173723496486 | 0.00623541950983231 | |
Exit probability for efficacy (under H1) | 0.0966650610605367 | 0.606374995953535 | |
Exit probability for futility (under H0) | 0.841344746068543 | 0.139987320252672 | |
Exit probability for futility (under H1) | 0.120939971783343 | 0.0758116678791494 |
Legend:
- alt.: alternative
- (t): treatment effect scale
Design plan summaries - rates
kable(summary(getSampleSizeRates(pi2 = 0.3)))
Sample size calculation for a binary endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The sample size was calculated for a two-sample test for rates (normal approximation), H0: pi(1) - pi(2) = 0, H1: treatment rate pi(1) as specified, control rate pi(2) = 0.3, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Number of subjects, pi(1) = 0.4 | 711.9 |
Number of subjects, pi(1) = 0.5 | 186.0 |
Number of subjects, pi(1) = 0.6 | 83.9 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t), pi(1) = 0.4 | 0.069 |
Efficacy boundary (t), pi(1) = 0.5 | 0.139 |
Efficacy boundary (t), pi(1) = 0.6 | 0.210 |
Legend:
- (t): treatment effect scale
kable(summary(getSampleSizeRates(getDesignGroupSequential(futilityBounds = c(1, 2)))))
Sample size calculation for a binary endpoint
Sequential analysis with a maximum of 3 looks (group sequential design), overall significance level 2.5% (one-sided). The sample size was calculated for a two-sample test for rates (normal approximation), H0: pi(1) - pi(2) = 0, H1: treatment rate pi(1) as specified, control rate pi(2) = 0.2, power 80%.
Stage | 1 | 2 | 3 |
---|---|---|---|
Information rate | 33.3% | 66.7% | 100% |
Efficacy boundary (z-value scale) | 3.471 | 2.454 | 2.004 |
Futility boundary (z-value scale) | 1.000 | 2.000 | |
Overall power | 0.0967 | 0.7030 | 0.8000 |
Expected number of subjects, pi(1) = 0.4 | 183.5 | ||
Expected number of subjects, pi(1) = 0.5 | 86.9 | ||
Expected number of subjects, pi(1) = 0.6 | 50.5 | ||
Number of subjects, pi(1) = 0.4 | 97.5 | 195.0 | 292.5 |
Number of subjects, pi(1) = 0.5 | 46.2 | 92.4 | 138.6 |
Number of subjects, pi(1) = 0.6 | 26.8 | 53.6 | 80.4 |
Cumulative alpha spent | 0.0003 | 0.0072 | 0.0250 |
One-sided local significance level | 0.0003 | 0.0071 | 0.0225 |
Efficacy boundary (t), pi(1) = 0.4 | 0.339 | 0.158 | 0.102 |
Efficacy boundary (t), pi(1) = 0.5 | 0.509 | 0.238 | 0.152 |
Efficacy boundary (t), pi(1) = 0.6 | 0.669 | 0.322 | 0.205 |
Futility boundary (t), pi(1) = 0.4 | 0.087 | 0.126 | |
Futility boundary (t), pi(1) = 0.5 | 0.130 | 0.190 | |
Futility boundary (t), pi(1) = 0.6 | 0.175 | 0.257 | |
Overall exit probability (under H0) | 0.8416 | 0.1462 | |
Overall exit probability (under H1) | 0.2176 | 0.6822 | |
Exit probability for efficacy (under H0) | 0.0003 | 0.0062 | |
Exit probability for efficacy (under H1) | 0.0967 | 0.6064 | |
Exit probability for futility (under H0) | 0.8413 | 0.1400 | |
Exit probability for futility (under H1) | 0.1209 | 0.0758 |
Legend:
- (t): treatment effect scale
kable(summary(getSampleSizeRates(getDesignGroupSequential(kMax = 1, sided = 2),
groups = 1, thetaH0 = 0.2, pi1 = c(0.4, 0.5)
)))
Sample size calculation for a binary endpoint
Fixed sample analysis, significance level 2.5% (two-sided). The sample size was calculated for a one-sample test for rates (normal approximation), H0: pi = 0.2, H1: treatment rate pi as specified, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 2.241 |
Number of subjects, pi(1) = 0.4 | 42.8 |
Number of subjects, pi(1) = 0.5 | 19.3 |
Two-sided local significance level | 0.0250 |
Lower efficacy boundary (t), pi(1) = 0.4 | 0.063 |
Lower efficacy boundary (t), pi(1) = 0.5 | -0.004 |
Upper efficacy boundary (t), pi(1) = 0.4 | 0.337 |
Upper efficacy boundary (t), pi(1) = 0.5 | 0.404 |
Legend:
- (t): treatment effect scale
Design plan summaries - survival
kable(summary(getSampleSizeSurvival(lambda2 = 0.3, hazardRatio = 1.2)))
Sample size calculation for a survival endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The sample size was calculated for a two-sample logrank test, H0: hazard ratio = 1, H1: hazard ratio = 1.2, control lambda(2) = 0.3, accrual time = 12, accrual intensity = 81.6, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Number of subjects | 979.2 |
Number of events | 944.5 |
Analysis time | 18.0 |
Expected study duration | 18.0 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t) | 1.136 |
Legend:
- (t): treatment effect scale
kable(summary(getSampleSizeSurvival(median1 = c(3.1, 3.2), median2 = 2.3)))
Sample size calculation for a survival endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The sample size was calculated for a two-sample logrank test, H0: hazard ratio = 1, H1: treatment median(1) as specified, control median(2) = 2.3, accrual time = 12, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Number of subjects, median(1) = 3.1 | 377.9 |
Number of subjects, median(1) = 3.2 | 309.7 |
Number of events, median(1) = 3.1 | 352.4 |
Number of events, median(1) = 3.2 | 287.9 |
Analysis time | 18.0 |
Expected study duration, median(1) = 3.1 | 18.0 |
Expected study duration, median(1) = 3.2 | 18.0 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t), median(1) = 3.1 | 0.812 |
Efficacy boundary (t), median(1) = 3.2 | 0.794 |
Legend:
- (t): treatment effect scale
kable(summary(getSampleSizeSurvival(pi1 = 0.1, pi2 = 0.3)))
Sample size calculation for a survival endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The sample size was calculated for a two-sample logrank test, H0: hazard ratio = 1, H1: treatment pi(1) = 0.1, control pi(2) = 0.3, event time = 12, accrual time = 12, accrual intensity = 8.9, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Number of subjects | 106.7 |
Number of events | 21.1 |
Analysis time | 18.0 |
Expected study duration | 18.0 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t) | 0.426 |
Legend:
- (t): treatment effect scale
<- list(
piecewiseSurvivalTime "0 - <6" = 0.025,
"6 - <9" = 0.04,
"9 - <15" = 0.015,
"15 - <21" = 0.01,
">= 21" = 0.007
)kable(summary(getSampleSizeSurvival(
piecewiseSurvivalTime = piecewiseSurvivalTime,
hazardRatio = 1.2
)))
Sample size calculation for a survival endpoint
Fixed sample analysis, significance level 2.5% (one-sided). The sample size was calculated for a two-sample logrank test, H0: hazard ratio = 1, H1: hazard ratio = 1.2, piecewise survival distribution, piecewise survival time = c(0, 6, 9, 15, 21), control lambda(2) = c(0.025, 0.04, 0.015, 0.01, 0.007), accrual time = 12, accrual intensity = 279.2, power 80%.
Stage | Fixed |
---|---|
Efficacy boundary (z-value scale) | 1.960 |
Number of subjects | 3350.9 |
Number of events | 944.5 |
Analysis time | 18.0 |
Expected study duration | 18.0 |
One-sided local significance level | 0.0250 |
Efficacy boundary (t) | 1.136 |
Legend:
- (t): treatment effect scale
Simulation results summaries
Simulation results base
Simulation results base - means
<- getDesignInverseNormal(
design kMax = 3, alpha = 0.025,
futilityBounds = c(-0.5, 0), bindingFutility = FALSE,
typeOfDesign = "WT", deltaWT = 0.25,
informationRates = c(0.4, 0.7, 1)
)kable(summary(getSimulationMeans(
design = design, plannedSubjects = c(40, 70, 100),
alternative = seq(0, 0.8, 0.2),
stDev = 1.2,
conditionalPower = 0.8,
minNumberOfSubjectsPerStage = c(40, 20, 20),
maxNumberOfSubjectsPerStage = c(40, 100, 100),
thetaH1 = 0.6, stDevH1 = 1.5,
maxNumberOfIterations = 1000,
seed = 1234
)))
Simulation of a continuous endpoint
Sequential analysis with a maximum of 3 looks (inverse normal combination test design), overall significance level 2.5% (one-sided). The results were simulated for a two-sample t-test (normal approximation), H0: mu(1) - mu(2) = 0, power directed towards larger values, H1: effect as specified, standard deviation = 1.2, planned cumulative sample size = c(40, 70, 100), sample size reassessment: conditional power = 0.8, minimum subjects per stage = c(40, 20, 20), maximum subjects per stage = c(40, 100, 100), theta H1 = 0.6, standard deviation H1 = 1.5, simulation runs = 1000, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 0.632 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.631 | 2.287 | 2.092 |
Stage Levels | 0.0043 | 0.0111 | 0.0182 |
Futility boundary (z-value scale) | -0.500 | 0.000 | |
Overall power, alt. = 0 | 0.0040 | 0.0110 | 0.0270 |
Overall power, alt. = 0.2 | 0.0190 | 0.0960 | 0.2090 |
Overall power, alt. = 0.4 | 0.0390 | 0.3250 | 0.6260 |
Overall power, alt. = 0.6 | 0.1330 | 0.7100 | 0.9300 |
Overall power, alt. = 0.8 | 0.2830 | 0.9320 | 0.9930 |
Expected number of subjects, alt. = 0 | 151.5 | ||
Expected number of subjects, alt. = 0.2 | 186.1 | ||
Expected number of subjects, alt. = 0.4 | 179.3 | ||
Expected number of subjects, alt. = 0.6 | 139.1 | ||
Expected number of subjects, alt. = 0.8 | 108.2 | ||
Stagewise number of subjects, alt. = 0 | 40.0 | 99.3 | 98.1 |
Stagewise number of subjects, alt. = 0.2 | 40.0 | 98.6 | 95.0 |
Stagewise number of subjects, alt. = 0.4 | 40.0 | 96.8 | 86.6 |
Stagewise number of subjects, alt. = 0.6 | 40.0 | 93.5 | 75.7 |
Stagewise number of subjects, alt. = 0.8 | 40.0 | 88.9 | 73.3 |
Conditional power (achieved), alt. = 0 | 0.2206 | 0.3011 | |
Conditional power (achieved), alt. = 0.2 | 0.3112 | 0.4507 | |
Conditional power (achieved), alt. = 0.4 | 0.4009 | 0.5970 | |
Conditional power (achieved), alt. = 0.6 | 0.5292 | 0.7151 | |
Conditional power (achieved), alt. = 0.8 | 0.6066 | 0.7396 | |
Exit probability for futility, alt. = 0 | 0.3200 | 0.2170 | |
Exit probability for futility, alt. = 0.2 | 0.1500 | 0.0790 | |
Exit probability for futility, alt. = 0.4 | 0.0610 | 0.0110 | |
Exit probability for futility, alt. = 0.6 | 0.0230 | 0 | |
Exit probability for futility, alt. = 0.8 | 0.0030 | 0 | |
Exit probability for efficacy, alt. = 0 | 0.0040 | 0.0070 | 0.0160 |
Exit probability for efficacy, alt. = 0.2 | 0.0190 | 0.0770 | 0.1130 |
Exit probability for efficacy, alt. = 0.4 | 0.0390 | 0.2860 | 0.3010 |
Exit probability for efficacy, alt. = 0.6 | 0.1330 | 0.5770 | 0.2200 |
Exit probability for efficacy, alt. = 0.8 | 0.2830 | 0.6490 | 0.0610 |
Legend:
- alt.: alternative
Simulation results base - rates
<- getDesignFisher(
design kMax = 3, alpha = 0.025,
alpha0Vec = c(0.5, 0.4), bindingFutility = FALSE,
informationRates = c(0.4, 0.7, 1)
)kable(summary(getSimulationRates(
design = design, plannedSubjects = c(40, 70, 100),
groups = 1,
thetaH0 = 0.2,
pi1 = seq(0.05, 0.2, 0.05),
directionUpper = FALSE,
maxNumberOfIterations = 1000,
seed = 1234
)))
Simulation of a binary endpoint
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 2.5% (one-sided). The results were simulated for a one-sample test for rates (normal approximation), H0: pi = 0.2, power directed towards smaller values, H1: treatment rate pi as specified, planned cumulative sample size = c(40, 70, 100), simulation runs = 1000, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 0.866 | 0.866 |
Efficacy boundary (p product scale) | 0.013187 | 0.002705 | 0.000641 |
Stage Levels | 0.0132 | 0.0132 | 0.0132 |
Futility boundary (separate p-value scale) | 0.500 | 0.400 | |
Overall power, pi(1) = 0.05 | 0.6790 | 0.9040 | 0.9780 |
Overall power, pi(1) = 0.1 | 0.2150 | 0.3760 | 0.5540 |
Overall power, pi(1) = 0.15 | 0.0390 | 0.0670 | 0.1070 |
Overall power, pi(1) = 0.2 | 0.0090 | 0.0100 | 0.0110 |
Expected number of subjects, pi(1) = 0.05 | 52.4 | ||
Expected number of subjects, pi(1) = 0.1 | 78.0 | ||
Expected number of subjects, pi(1) = 0.15 | 76.9 | ||
Expected number of subjects, pi(1) = 0.2 | 58.0 | ||
Stagewise number of subjects, pi(1) = 0.05 | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, pi(1) = 0.1 | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, pi(1) = 0.15 | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, pi(1) = 0.2 | 40.0 | 30.0 | 30.0 |
Conditional power (achieved), pi(1) = 0.05 | 0.4489 | 0.5698 | |
Conditional power (achieved), pi(1) = 0.1 | 0.2752 | 0.3434 | |
Conditional power (achieved), pi(1) = 0.15 | 0.1405 | 0.1871 | |
Conditional power (achieved), pi(1) = 0.2 | 0.0820 | 0.0932 | |
Exit probability for futility, pi(1) = 0.05 | 0.0010 | 0.0020 | |
Exit probability for futility, pi(1) = 0.1 | 0.0410 | 0.0600 | |
Exit probability for futility, pi(1) = 0.15 | 0.2250 | 0.2150 | |
Exit probability for futility, pi(1) = 0.2 | 0.5680 | 0.2440 | |
Exit probability for efficacy, pi(1) = 0.05 | 0.6790 | 0.2250 | 0.0740 |
Exit probability for efficacy, pi(1) = 0.1 | 0.2150 | 0.1610 | 0.1780 |
Exit probability for efficacy, pi(1) = 0.15 | 0.0390 | 0.0280 | 0.0400 |
Exit probability for efficacy, pi(1) = 0.2 | 0.0090 | 0.0010 | 0.0010 |
Simulation results base - survival
<- getDesignInverseNormal(
design alpha = 0.05, kMax = 4, futilityBounds = c(0, 0, 0),
sided = 1, typeOfDesign = "WT", deltaWT = 0.1
)kable(summary(getSimulationSurvival(
design = design,
plannedEvents = c(40, 70, 100, 150),
maxNumberOfSubjects = 600,
thetaH0 = 1.2,
pi1 = seq(0.1, 0.25, 0.05),
pi2 = 0.2,
allocation1 = 2,
directionUpper = FALSE,
conditionalPower = 0.8,
minNumberOfEventsPerStage = c(40, 20, 20, 20),
maxNumberOfEventsPerStage = c(40, 100, 100, 100),
thetaH1 = 1,
maxNumberOfIterations = 1000,
seed = 1234
)))
Simulation of a survival endpoint
Sequential analysis with a maximum of 4 looks (inverse normal combination test design), overall significance level 5% (one-sided). The results were simulated for a two-sample logrank test, H0: hazard ratio = 1.2, power directed towards smaller values, H1: treatment pi(1) as specified, control pi(2) = 0.2, planned cumulative events = c(40, 70, 100, 150), maximum number of subjects = 600, planned allocation ratio = 2, event time = 12, accrual time = 12, accrual intensity = 50, sample size reassessment: conditional power = 0.8, minimum events per stage = c(40, 20, 20, 20), maximum events per stage = c(40, 100, 100, 100), thetaH1 = 0.833, simulation runs = 1000, seed = 1234.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.5 | 0.5 | 0.5 | 0.5 |
Efficacy boundary (z-value scale) | 3.069 | 2.326 | 1.978 | 1.763 |
Stage Levels | 0.0011 | 0.0100 | 0.0240 | 0.0390 |
Futility boundary (z-value scale) | 0 | 0 | 0 | |
Overall power, pi(1) = 0.1 | 0.4490 | 0.9970 | 0.9980 | 0.9980 |
Overall power, pi(1) = 0.15 | 0.0720 | 0.6740 | 0.9060 | 0.9350 |
Overall power, pi(1) = 0.2 | 0.0110 | 0.1030 | 0.2520 | 0.3910 |
Overall power, pi(1) = 0.25 | 0.0010 | 0.0030 | 0.0110 | 0.0220 |
Expected number of subjects, pi(1) = 0.1 | 589.6 | |||
Expected number of subjects, pi(1) = 0.15 | 589.7 | |||
Expected number of subjects, pi(1) = 0.2 | 564.5 | |||
Expected number of subjects, pi(1) = 0.25 | 508.4 | |||
Number of subjects, pi(1) = 0.1 | 576.9 | 600.0 | 600.0 | |
Number of subjects, pi(1) = 0.15 | 522.5 | 600.0 | 600.0 | 600.0 |
Number of subjects, pi(1) = 0.2 | 474.5 | 600.0 | 600.0 | 600.0 |
Number of subjects, pi(1) = 0.25 | 434.7 | 600.0 | 600.0 | 600.0 |
Expected number of events, pi(1) = 0.1 | 95.0 | |||
Expected number of events, pi(1) = 0.15 | 156.3 | |||
Expected number of events, pi(1) = 0.2 | 210.6 | |||
Expected number of events, pi(1) = 0.25 | 129.3 | |||
Cumulative number of events, pi(1) = 0.1 | 40.0 | 100.0 | 100.0 | |
Cumulative number of events, pi(1) = 0.15 | 40.0 | 100.0 | 100.0 | 100.0 |
Cumulative number of events, pi(1) = 0.2 | 40.0 | 100.0 | 100.0 | 100.0 |
Cumulative number of events, pi(1) = 0.25 | 40.0 | 100.0 | 100.0 | 100.0 |
Analysis time, pi(1) = 0.1 | 11.8 | 28.5 | 52.1 | |
Analysis time, pi(1) = 0.15 | 10.5 | 23.6 | 39.7 | 61.5 |
Analysis time, pi(1) = 0.2 | 9.5 | 20.4 | 33.5 | 51.1 |
Analysis time, pi(1) = 0.25 | 8.7 | 18.0 | 29.1 | 43.8 |
Expected study duration, pi(1) = 0.1 | 21.0 | |||
Expected study duration, pi(1) = 0.15 | 26.8 | |||
Expected study duration, pi(1) = 0.2 | 32.1 | |||
Expected study duration, pi(1) = 0.25 | 18.5 | |||
Conditional power (achieved), pi(1) = 0.1 | 0.4405 | 0.6022 | ||
Conditional power (achieved), pi(1) = 0.15 | 0.2556 | 0.4813 | 0.5406 | |
Conditional power (achieved), pi(1) = 0.2 | 0.1305 | 0.2567 | 0.3413 | |
Conditional power (achieved), pi(1) = 0.25 | 0.0794 | 0.1206 | 0.1487 | |
Exit probability for futility, pi(1) = 0.1 | 0.0020 | 0 | 0 | |
Exit probability for futility, pi(1) = 0.15 | 0.0610 | 0.0010 | 0 | |
Exit probability for futility, pi(1) = 0.2 | 0.2720 | 0.0520 | 0.0080 | |
Exit probability for futility, pi(1) = 0.25 | 0.5530 | 0.1760 | 0.0810 | |
Exit probability for efficacy, pi(1) = 0.1 | 0.4490 | 0.5480 | 0.0010 | 0 |
Exit probability for efficacy, pi(1) = 0.15 | 0.0720 | 0.6020 | 0.2320 | 0.0290 |
Exit probability for efficacy, pi(1) = 0.2 | 0.0110 | 0.0920 | 0.1490 | 0.1390 |
Exit probability for efficacy, pi(1) = 0.25 | 0.0010 | 0.0020 | 0.0080 | 0.0110 |
Simulation results multi-arm
Simulation results multi-arm - means
options("rpact.summary.output.size" = "medium") # small, medium, large
<- getDesignFisher(alpha = 0.05, kMax = 3)
design kable(summary(getSimulationMultiArmMeans(
design = design,
plannedSubjects = c(40, 70, 100),
activeArms = 3,
typeOfShape = "sigmoidEmax",
gED50 = 2,
typeOfSelection = "rBest",
rValue = 2,
stDev = 1.2,
maxNumberOfIterations = 100,
seed = 1234
)))
Simulation of a continuous endpoint (multi-arm design)
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 5% (one-sided). The results were simulated for a multi-arm comparisons for means (3 treatments vs. control), H0: mu(i) - mu(control) = 0, power directed towards larger values, H1: effect as specified, standard deviation = 1.2, planned cumulative sample size = c(40, 70, 100), effect shape = sigmoid emax, slope = 1, ED50 = 2, intersection test = Dunnett, selection = r best, r = 2, effect measure based on effect estimate, success criterion: all, simulation runs = 100, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 1 | 1 |
Efficacy boundary (p product scale) | 0.0255136 | 0.0038966 | 0.0007481 |
Stage Levels | 0.0255 | 0.0255 | 0.0255 |
Reject at least one, mu_max = 0 | 0.0500 | ||
Reject at least one, mu_max = 0.2 | 0.1400 | ||
Reject at least one, mu_max = 0.4 | 0.2900 | ||
Reject at least one, mu_max = 0.6 | 0.4800 | ||
Reject at least one, mu_max = 0.8 | 0.7100 | ||
Reject at least one, mu_max = 1 | 0.9100 | ||
Success per stage, mu_max = 0 | 0 | 0.0200 | 0 |
Success per stage, mu_max = 0.2 | 0 | 0.0200 | 0.0100 |
Success per stage, mu_max = 0.4 | 0.0200 | 0.0400 | 0.0400 |
Success per stage, mu_max = 0.6 | 0.0400 | 0.1600 | 0.0500 |
Success per stage, mu_max = 0.8 | 0.0700 | 0.2400 | 0.1100 |
Success per stage, mu_max = 1 | 0.2000 | 0.4000 | 0.0900 |
Expected number of subjects, mu_max = 0 | 338.2 | ||
Expected number of subjects, mu_max = 0.2 | 338.2 | ||
Expected number of subjects, mu_max = 0.4 | 332.8 | ||
Expected number of subjects, mu_max = 0.6 | 318.4 | ||
Expected number of subjects, mu_max = 0.8 | 305.8 | ||
Expected number of subjects, mu_max = 1 | 268.0 | ||
Overall exit probability, mu_max = 0 | 0 | 0.0200 | |
Overall exit probability, mu_max = 0.2 | 0 | 0.0200 | |
Overall exit probability, mu_max = 0.4 | 0.0200 | 0.0400 | |
Overall exit probability, mu_max = 0.6 | 0.0400 | 0.1600 | |
Overall exit probability, mu_max = 0.8 | 0.0700 | 0.2400 | |
Overall exit probability, mu_max = 1 | 0.2000 | 0.4000 | |
Stagewise number of subjects, mu_max = 0 | |||
Treatment arm 1 | 40.0 | 19.2 | 19.3 |
Treatment arm 2 | 40.0 | 18.9 | 19.0 |
Treatment arm 3 | 40.0 | 21.9 | 21.7 |
Control arm | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, mu_max = 0.2 | |||
Treatment arm 1 | 40.0 | 17.4 | 17.8 |
Treatment arm 2 | 40.0 | 20.1 | 19.9 |
Treatment arm 3 | 40.0 | 22.5 | 22.3 |
Control arm | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, mu_max = 0.4 | |||
Treatment arm 1 | 40.0 | 17.1 | 17.6 |
Treatment arm 2 | 40.0 | 20.8 | 20.7 |
Treatment arm 3 | 40.0 | 22.0 | 21.7 |
Control arm | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, mu_max = 0.6 | |||
Treatment arm 1 | 40.0 | 15.9 | 16.5 |
Treatment arm 2 | 40.0 | 18.8 | 19.1 |
Treatment arm 3 | 40.0 | 25.3 | 24.4 |
Control arm | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, mu_max = 0.8 | |||
Treatment arm 1 | 40.0 | 12.6 | 12.2 |
Treatment arm 2 | 40.0 | 22.9 | 23.5 |
Treatment arm 3 | 40.0 | 24.5 | 24.3 |
Control arm | 40.0 | 30.0 | 30.0 |
Stagewise number of subjects, mu_max = 1 | |||
Treatment arm 1 | 40.0 | 12.4 | 16.5 |
Treatment arm 2 | 40.0 | 20.2 | 18.0 |
Treatment arm 3 | 40.0 | 27.4 | 25.5 |
Control arm | 40.0 | 30.0 | 30.0 |
Selected arms, mu_max = 0 | |||
Treatment arm 1 | 1.0000 | 0.6400 | 0.6300 |
Treatment arm 2 | 1.0000 | 0.6300 | 0.6200 |
Treatment arm 3 | 1.0000 | 0.7300 | 0.7100 |
Selected arms, mu_max = 0.2 | |||
Treatment arm 1 | 1.0000 | 0.5800 | 0.5800 |
Treatment arm 2 | 1.0000 | 0.6700 | 0.6500 |
Treatment arm 3 | 1.0000 | 0.7500 | 0.7300 |
Selected arms, mu_max = 0.4 | |||
Treatment arm 1 | 1.0000 | 0.5600 | 0.5500 |
Treatment arm 2 | 1.0000 | 0.6800 | 0.6500 |
Treatment arm 3 | 1.0000 | 0.7200 | 0.6800 |
Selected arms, mu_max = 0.6 | |||
Treatment arm 1 | 1.0000 | 0.5100 | 0.4400 |
Treatment arm 2 | 1.0000 | 0.6000 | 0.5100 |
Treatment arm 3 | 1.0000 | 0.8100 | 0.6500 |
Selected arms, mu_max = 0.8 | |||
Treatment arm 1 | 1.0000 | 0.3900 | 0.2800 |
Treatment arm 2 | 1.0000 | 0.7100 | 0.5400 |
Treatment arm 3 | 1.0000 | 0.7600 | 0.5600 |
Selected arms, mu_max = 1 | |||
Treatment arm 1 | 1.0000 | 0.3300 | 0.2200 |
Treatment arm 2 | 1.0000 | 0.5400 | 0.2400 |
Treatment arm 3 | 1.0000 | 0.7300 | 0.3400 |
Number of active arms, mu_max = 0 | 3.000 | 2.000 | 2.000 |
Number of active arms, mu_max = 0.2 | 3.000 | 2.000 | 2.000 |
Number of active arms, mu_max = 0.4 | 3.000 | 2.000 | 2.000 |
Number of active arms, mu_max = 0.6 | 3.000 | 2.000 | 2.000 |
Number of active arms, mu_max = 0.8 | 3.000 | 2.000 | 2.000 |
Number of active arms, mu_max = 1 | 3.000 | 2.000 | 2.000 |
Legend:
- (i): treatment arm i
Simulation results multi-arm - rates
options("rpact.summary.output.size" = "medium") # small, medium, large
kable(summary(getSimulationMultiArmRates(
design = design,
plannedSubjects = c(40, 70, 100),
activeArms = 3,
typeOfShape = "userDefined",
effectMatrix = matrix(c(
0.1, 0.2, 0.3,
0.2, 0.3, 0.4,
0.2, 0.4, 0.4
nrow = 3),
), typeOfSelection = "rBest",
rValue = 2,
directionUpper = FALSE,
allocationRatioPlanned = 2,
piControl = 0.4,
conditionalPower = 0.8,
minNumberOfSubjectsPerStage = c(40, 20, 20),
maxNumberOfSubjectsPerStage = c(40, 100, 100),
piH1 = 0.6, piControlH1 = 0.4,
maxNumberOfIterations = 100,
seed = 1234
)))
Warning: Argument unknown in getSimulationMultiArmRates(...): 'piH1' = 0.6 will
be ignored
Simulation of a binary endpoint (multi-arm design)
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 5% (one-sided). The results were simulated for a multi-arm comparisons for rates (3 treatments vs. control), H0: pi(i) - pi(control) = 0, power directed towards smaller values, H1: treatment rate pi_max as specified, control rate pi(control) = 0.4, planned cumulative sample size = c(40, 70, 100), planned allocation ratio = 2, effect shape = user defined, intersection test = Dunnett, selection = r best, r = 2, effect measure based on effect estimate, success criterion: all, sample size reassessment: conditional power = 0.8, minimum subjects per stage = c(40, 20, 20), maximum subjects per stage = c(40, 100, 100), pi(control)H1 = 0.4, simulation runs = 100, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 1 | 1 |
Efficacy boundary (p product scale) | 0.0255136 | 0.0038966 | 0.0007481 |
Stage Levels | 0.0255 | 0.0255 | 0.0255 |
Reject at least one [1] | 1.0000 | ||
Reject at least one [2] | 0.9400 | ||
Reject at least one [3] | 0.4000 | ||
Success per stage [1] | 0.1800 | 0.4800 | 0.1100 |
Success per stage [2] | 0 | 0.1300 | 0.1100 |
Success per stage [3] | 0.0100 | 0.0200 | 0.0200 |
Expected number of subjects [1] | 259.9 | ||
Expected number of subjects [2] | 484.6 | ||
Expected number of subjects [3] | 622.7 | ||
Overall exit probability [1] | 0.1800 | 0.4800 | |
Overall exit probability [2] | 0 | 0.1300 | |
Overall exit probability [3] | 0.0100 | 0.0200 | |
Stagewise number of subjects [1] | |||
Treatment arm 1 | 40.0 | 46.2 | 22.6 |
Treatment arm 2 | 40.0 | 27.0 | 14.4 |
Treatment arm 3 | 40.0 | 22.6 | 14.1 |
Control arm | 20.0 | 23.9 | 12.7 |
Stagewise number of subjects [2] | |||
Treatment arm 1 | 40.0 | 86.7 | 56.5 |
Treatment arm 2 | 40.0 | 70.9 | 43.1 |
Treatment arm 3 | 40.0 | 17.8 | 15.7 |
Control arm | 20.0 | 43.8 | 28.8 |
Stagewise number of subjects [3] | |||
Treatment arm 1 | 40.0 | 92.8 | 91.9 |
Treatment arm 2 | 40.0 | 44.4 | 44.5 |
Treatment arm 3 | 40.0 | 60.5 | 59.7 |
Control arm | 20.0 | 49.5 | 49.0 |
Selected arms [1] | |||
Treatment arm 1 | 1.0000 | 0.8000 | 0.3300 |
Treatment arm 2 | 1.0000 | 0.4300 | 0.1700 |
Treatment arm 3 | 1.0000 | 0.4100 | 0.1800 |
Selected arms [2] | |||
Treatment arm 1 | 1.0000 | 0.9900 | 0.8600 |
Treatment arm 2 | 1.0000 | 0.8000 | 0.6800 |
Treatment arm 3 | 1.0000 | 0.2100 | 0.2000 |
Selected arms [3] | |||
Treatment arm 1 | 1.0000 | 0.9300 | 0.9100 |
Treatment arm 2 | 1.0000 | 0.4400 | 0.4400 |
Treatment arm 3 | 1.0000 | 0.6100 | 0.5900 |
Number of active arms [1] | 3.000 | 2.000 | 2.000 |
Number of active arms [2] | 3.000 | 2.000 | 2.000 |
Number of active arms [3] | 3.000 | 2.000 | 2.000 |
Legend:
- (i): treatment arm i
- [j]: effect matrix row j (situation to consider)
Simulation results multi-arm - survival
options("rpact.summary.output.size" = "medium") # small, medium, large
kable(summary(getSimulationMultiArmSurvival(
seed = 1234,
getDesignInverseNormal(informationRates = c(0.2, 0.6, 1)),
typeOfShape = "linear", activeArms = 4,
plannedEvents = c(10, 30, 50), omegaMaxVector = seq(0.3, 0.6, 0.1),
adaptations = rep(TRUE, 2), directionUpper = FALSE,
minNumberOfEventsPerStage = c(10, 4, 4), maxNumberOfEventsPerStage = c(10, 100, 100),
maxNumberOfIterations = 10,
calcEventsFunction = function(..., stage, minNumberOfEventsPerStage) {
return(ifelse(stage == 3, 33, minNumberOfEventsPerStage[stage]))
} )))
Simulation of a survival endpoint (multi-arm design)
Sequential analysis with a maximum of 3 looks (inverse normal combination test design), overall significance level 2.5% (one-sided). The results were simulated for a multi-arm logrank test (4 treatments vs. control), H0: hazard ratio(i) = 1, power directed towards smaller values, H1: omega_max as specified, planned cumulative events = c(10, 30, 50), effect shape = linear, intersection test = Dunnett, selection = best, effect measure based on effect estimate, success criterion: all, sample size reassessment: user defined ‘calcEventsFunction’, minimum events per stage = c(10, 4, 4), maximum events per stage = c(10, 100, 100), simulation runs = 10, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 0.447 | 0.632 | 0.632 |
Efficacy boundary (z-value scale) | 4.455 | 2.572 | 1.992 |
Stage Levels | <0.0001 | 0.0051 | 0.0232 |
Reject at least one, omega_max = 0.3 | 0.3000 | ||
Reject at least one, omega_max = 0.4 | 0.4000 | ||
Reject at least one, omega_max = 0.5 | 0.7000 | ||
Reject at least one, omega_max = 0.6 | 0.3000 | ||
Success per stage, omega_max = 0.3 | 0 | 0.1000 | 0.2000 |
Success per stage, omega_max = 0.4 | 0 | 0 | 0.4000 |
Success per stage, omega_max = 0.5 | 0 | 0.2000 | 0.5000 |
Success per stage, omega_max = 0.6 | 0 | 0.1000 | 0.2000 |
Expected number of events, omega_max = 0.3 | 43.7 | ||
Expected number of events, omega_max = 0.4 | 47.0 | ||
Expected number of events, omega_max = 0.5 | 40.4 | ||
Expected number of events, omega_max = 0.6 | 43.7 | ||
Overall exit probability, omega_max = 0.3 | 0 | 0.1000 | |
Overall exit probability, omega_max = 0.4 | 0 | 0 | |
Overall exit probability, omega_max = 0.5 | 0 | 0.2000 | |
Overall exit probability, omega_max = 0.6 | 0 | 0.1000 | |
Cumulative number of events, omega_max = 0.3 | |||
Treatment arm 1 vs. control | 5.6 | 8.5 | 32.5 |
Treatment arm 2 vs. control | 5.1 | 8.1 | 33.4 |
Treatment arm 3 vs. control | 4.5 | 7.8 | 33.7 |
Treatment arm 4 vs. control | 4.0 | 7.0 | 31.9 |
Cumulative number of events, omega_max = 0.4 | |||
Treatment arm 1 vs. control | 5.3 | 8.0 | 30.2 |
Treatment arm 2 vs. control | 4.9 | 7.7 | 31.3 |
Treatment arm 3 vs. control | 4.4 | 7.7 | 34.6 |
Treatment arm 4 vs. control | 4.0 | 7.3 | 34.2 |
Cumulative number of events, omega_max = 0.5 | |||
Treatment arm 1 vs. control | 5.0 | 7.7 | 30.0 |
Treatment arm 2 vs. control | 4.7 | 7.3 | 29.5 |
Treatment arm 3 vs. control | 4.3 | 7.4 | 32.6 |
Treatment arm 4 vs. control | 4.0 | 7.0 | 31.6 |
Cumulative number of events, omega_max = 0.6 | |||
Treatment arm 1 vs. control | 4.8 | 7.4 | 28.5 |
Treatment arm 2 vs. control | 4.5 | 7.0 | 28.0 |
Treatment arm 3 vs. control | 4.2 | 7.4 | 34.3 |
Treatment arm 4 vs. control | 4.0 | 6.6 | 28.7 |
Selected arms, omega_max = 0.3 | |||
Treatment arm 1 vs. control | 1.0000 | 0.1000 | 0.1000 |
Treatment arm 2 vs. control | 1.0000 | 0.2000 | 0.2000 |
Treatment arm 3 vs. control | 1.0000 | 0.4000 | 0.3000 |
Treatment arm 4 vs. control | 1.0000 | 0.3000 | 0.3000 |
Selected arms, omega_max = 0.4 | |||
Treatment arm 1 vs. control | 1.0000 | 0 | 0 |
Treatment arm 2 vs. control | 1.0000 | 0.1000 | 0.1000 |
Treatment arm 3 vs. control | 1.0000 | 0.4000 | 0.4000 |
Treatment arm 4 vs. control | 1.0000 | 0.5000 | 0.5000 |
Selected arms, omega_max = 0.5 | |||
Treatment arm 1 vs. control | 1.0000 | 0.1000 | 0.1000 |
Treatment arm 2 vs. control | 1.0000 | 0.1000 | 0.1000 |
Treatment arm 3 vs. control | 1.0000 | 0.4000 | 0.3000 |
Treatment arm 4 vs. control | 1.0000 | 0.4000 | 0.3000 |
Selected arms, omega_max = 0.6 | |||
Treatment arm 1 vs. control | 1.0000 | 0.2000 | 0.1000 |
Treatment arm 2 vs. control | 1.0000 | 0.1000 | 0.1000 |
Treatment arm 3 vs. control | 1.0000 | 0.5000 | 0.5000 |
Treatment arm 4 vs. control | 1.0000 | 0.2000 | 0.2000 |
Number of active arms, omega_max = 0.3 | 4.000 | 1.000 | 1.000 |
Number of active arms, omega_max = 0.4 | 4.000 | 1.000 | 1.000 |
Number of active arms, omega_max = 0.5 | 4.000 | 1.000 | 1.000 |
Number of active arms, omega_max = 0.6 | 4.000 | 1.000 | 1.000 |
Legend:
- (i): results of treatment arm i vs. control arm
Simulation results enrichment
Simulation results enrichment - means
options("rpact.summary.output.size" = "medium") # small, medium, large
<- getDesignFisher(alpha = 0.05, kMax = 3)
design
<- c("S", "R")
subGroups <- c(0.1, 0.9)
prevalences <- c(0.4, 0.5)
alternative <- list(
effectList subGroups = subGroups, prevalences = prevalences,
stDevs = 1,
effects = matrix(alternative, byrow = TRUE, ncol = 2)
)
kable(summary(getSimulationEnrichmentMeans(
design = design,
plannedSubjects = c(40, 70, 100),
effectList = effectList,
typeOfSelection = "rBest",
rValue = 2,
maxNumberOfIterations = 100,
seed = 1234
)))
Warning: Simulation of enrichment designs is experimental and hence not fully
validated (see www.rpact.com/experimental)
Simulation of a continuous endpoint (enrichment design)
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 5% (one-sided). The results were simulated for a population enrichment comparisons for means (treatment vs. control, 2 populations), H0: mu(treatment) - mu(control) = 0, power directed towards larger values, H1: effects = c(0.4, 0.5), subgroups = c(S, R), prevalences = c(0.1, 0.9), standard deviation = 1, planned cumulative sample size = c(40, 70, 100), intersection test = Simes, selection = r best, r = 2, effect measure based on effect estimate, success criterion: all, simulation runs = 100, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 1 | 1 |
Efficacy boundary (p product scale) | 0.0255136 | 0.0038966 | 0.0007481 |
Stage Levels | 0.0255 | 0.0255 | 0.0255 |
Reject at least one | 0.5600 | ||
Success per stage | 0.0300 | 0.0400 | 0.0400 |
Expected number of subjects | 97.0 | ||
Overall exit probability | 0.0300 | 0.0400 | |
Stagewise number of subjects | |||
Subset S | 4.0 | 3.0 | 3.0 |
Remaining population R | 36.0 | 27.0 | 27.0 |
Selected populations | |||
Subset S | 1.0000 | 0.9700 | 0.9300 |
Full population F | 1.0000 | 0.9700 | 0.9300 |
Number of populations | 2.000 | 2.000 | 2.000 |
Simulation results enrichment - rates
options("rpact.summary.output.size" = "large") # small, medium, large
<- getDesignFisher(alpha = 0.05, kMax = 3)
design
<- c("S", "R")
subGroups <- c(0.1, 0.9)
prevalences <- c(0.3, 0.4)
pi2 <- c(0.4, 0.5)
piTreatments <- list(
effectList subGroups = subGroups, prevalences = prevalences,
piControl = pi2, piTreatments = matrix(piTreatments, byrow = TRUE, ncol = 2)
)
kable(summary(getSimulationEnrichmentRates(
design = design,
plannedSubjects = c(40, 70, 100),
effectList = effectList,
typeOfSelection = "rBest",
rValue = 2,
maxNumberOfIterations = 100,
seed = 1234
)))
Warning: Simulation of enrichment designs is experimental and hence not fully
validated (see www.rpact.com/experimental)
Simulation of a binary endpoint (enrichment design)
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 5% (one-sided). The results were simulated for a population enrichment comparisons for rates (treatment vs. control, 2 populations), H0: pi(treatment) - pi(control) = 0, power directed towards larger values, H1: assumed treatment rate pi(treatment) = c(0.4, 0.5), subgroups = c(S, R), prevalences = c(0.1, 0.9), control rates pi(control) = c(0.3, 0.4), planned cumulative sample size = c(40, 70, 100), intersection test = Simes, selection = r best, r = 2, effect measure based on effect estimate, success criterion: all, simulation runs = 100, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 1 | 1 |
Efficacy boundary (p product scale) | 0.0255136 | 0.0038966 | 0.0007481 |
Stage Levels | 0.0255 | 0.0255 | 0.0255 |
Reject at least one | 0.1800 | ||
Rejected populations per stage | |||
Subset S | 0.0200 | 0.0500 | 0.0400 |
Full population F | 0.0500 | 0.0400 | 0.0700 |
Success per stage | 0.0200 | 0.0300 | 0.0400 |
Expected number of subjects | 97.9 | ||
Overall exit probability | 0.0200 | 0.0300 | |
Stagewise number of subjects | |||
Subset S | 4.0 | 3.0 | 3.0 |
Remaining population R | 36.0 | 27.0 | 27.0 |
Selected populations | |||
Subset S | 1.0000 | 0.9800 | 0.9500 |
Full population F | 1.0000 | 0.9800 | 0.9500 |
Number of populations | 2.000 | 2.000 | 2.000 |
Conditional power (achieved) | 0.0689 | 0.0731 |
Simulation results enrichment - survival
options("rpact.summary.output.size" = "medium") # small, medium, large
<- getDesignFisher(alpha = 0.05, kMax = 3)
design
<- c("S1", "S2", "S12", "R")
subGroups <- c(0.1, 0.3, 0.4, 0.2)
prevalences <- c(0.4, 0.5, 0.6, 0.7, 0.6, 0.6, 0.6, 0.8)
hazardRatios <- list(
effectList subGroups = subGroups, prevalences = prevalences,
hazardRatios = matrix(hazardRatios, byrow = TRUE, ncol = 4)
)
kable(summary(getSimulationEnrichmentSurvival(
design = design,
plannedEvents = c(40, 70, 100),
effectList = effectList,
conditionalPower = 0.8,
minNumberOfEventsPerStage = c(40, 20, 20),
maxNumberOfEventsPerStage = c(40, 100, 100),
maxNumberOfIterations = 100,
seed = 1234
)))
Warning: Simulation of enrichment designs is experimental and hence not fully
validated (see www.rpact.com/experimental)
Simulation of a survival endpoint (enrichment design)
Sequential analysis with a maximum of 3 looks (Fisher’s combination test design), overall significance level 5% (one-sided). The results were simulated for a population enrichment logrank test (treatment vs. control, 3 populations), H0: hazard ratio = 1, power directed towards larger values, H1: hazard ratios as specified, subgroups = c(S1, S2, S12, R), prevalences = c(0.1, 0.3, 0.4, 0.2), planned cumulative events = c(40, 70, 100), intersection test = Simes, selection = best, effect measure based on effect estimate, success criterion: all, sample size reassessment: conditional power = 0.8, minimum events per stage = c(40, 20, 20), maximum events per stage = c(40, 100, 100), simulation runs = 100, seed = 1234.
Stage | 1 | 2 | 3 |
---|---|---|---|
Fixed weight | 1 | 1 | 1 |
Efficacy boundary (p product scale) | 0.0255136 | 0.0038966 | 0.0007481 |
Stage Levels | 0.0255 | 0.0255 | 0.0255 |
Reject at least one, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | 0 | ||
Reject at least one, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | 0 | ||
Success per stage, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | 0 | 0 | 0 |
Success per stage, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | 0 | 0 | 0 |
Expected number of events, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | 240.0 | ||
Expected number of events, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | 238.6 | ||
Overall exit probability, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | 0 | 0 | |
Overall exit probability, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | 0 | 0 | |
Single number of events, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | |||
Subset S1 only | 3.6 | 8.1 | 8.1 |
Subset S2 only | 11.5 | 25.3 | 25.3 |
Subset S12 | 16.3 | 59.0 | 59.0 |
Remaining population R | 8.7 | 7.6 | 7.6 |
Single number of events, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | |||
Subset S1 only | 3.9 | 12.1 | 12.4 |
Subset S2 only | 11.7 | 18.7 | 18.7 |
Subset S12 | 15.6 | 60.6 | 61.7 |
Remaining population R | 8.8 | 7.2 | 7.2 |
Selected populations, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | |||
Subset S1 | 1.0000 | 0.2800 | 0.2800 |
Subset S2 | 1.0000 | 0.3700 | 0.3700 |
Full population F | 1.0000 | 0.3500 | 0.3500 |
Selected populations, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | |||
Subset S1 | 1.0000 | 0.4600 | 0.4600 |
Subset S2 | 1.0000 | 0.2100 | 0.2100 |
Full population F | 1.0000 | 0.3300 | 0.3300 |
Number of populations, hazard ratios = c(0.4, 0.5, 0.6, 0.7) | 3.000 | 1.000 | 1.000 |
Number of populations, hazard ratios = c(0.6, 0.6, 0.6, 0.8) | 3.000 | 1.000 | 1.000 |
Analysis results summaries
Create three different designs
<- getDesignInverseNormal(
design1 kMax = 4, alpha = 0.02,
futilityBounds = c(-0.5, 0, 0.5), bindingFutility = FALSE,
typeOfDesign = "asKD", gammaA = 1.2,
informationRates = c(0.15, 0.4, 0.7, 1)
)
<- getDesignConditionalDunnett(
design3 alpha = 0.02,
informationAtInterim = 0.4, secondStageConditioning = TRUE
)
Analysis results base
Analysis results base - means
<- getDataset(
simpleDataExampleMeans1 n = c(120, 130, 130),
means = c(0.45, 0.51, 0.45) * 100,
stDevs = c(1.3, 1.4, 1.2) * 100
)
kable(summary(getAnalysisResults(
design = design1, dataInput = simpleDataExampleMeans1,
nPlanned = 130, thetaH0 = 30, thetaH1 = 60, assumedStDev = 100
)))
Calculation of final confidence interval performed for kMax = 4 (for kMax > 2, it is theoretically shown that it is valid only if no sample size change was performed)
Analysis results for a continuous endpoint
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a one-sample t-test (one-sided, alpha = 0.02). H0: mu = 30 against H1: mu > 30. The conditional power calculation with planned sample size is based on assumed effect = 60 and assumed standard deviation = 100.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size | 45.000 | 48.120 | 47.053 | |
Cumulative standard deviation | 130.000 | 135.055 | 129.950 | |
Stage-wise test statistic | 1.264 | 1.710 | 1.425 | |
Stage-wise p-value | 0.1044 | 0.0448 | 0.0783 | |
Inverse normal combination | 1.257 | 2.112 | 2.524 | |
Test action | continue | continue | reject and stop | |
Conditional rejection probability | 0.0433 | 0.1706 | 0.3851 | |
Planned sample size | 130 | |||
Conditional power | 0.9991 | |||
96% repeated confidence interval | 10.269 - 79.731 | 25.952 - 70.719 | 30.900 - 63.004 | |
Repeated p-value | >0.5 | 0.0662 | 0.0141 | |
Final p-value | 0.0108 | |||
Final confidence interval | 31.784 - 60.146 | |||
Median unbiased estimate | 46.183 |
<- getDataset(
simpleDataExampleMeans2 n1 = c(23, 13, 22, 13),
n2 = c(22, 11, 22, 11),
means1 = c(2.7, 2.5, 4.5, 2.5) * 100,
means2 = c(1, 1.1, 1.3, 1) * 100,
stds1 = c(1.3, 2.4, 2.2, 1.3) * 100,
stds2 = c(1.2, 2.2, 2.1, 1.3) * 100
)
kable(summary(getAnalysisResults(
design = design1, dataInput = simpleDataExampleMeans2,
equalVariances = TRUE, directionUpper = TRUE
)))
Analysis results for a continuous endpoint
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample t-test (one-sided, alpha = 0.02), equal variances option. H0: mu(1) - mu(2) = 0 against H1: mu(1) - mu(2) > 0.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size | 170.000 | 159.444 | 219.793 | 206.784 |
Cumulative (pooled) standard deviation | 125.216 | 166.324 | 196.455 | 187.224 |
Stage-wise test statistic | 4.553 | 1.479 | 4.935 | 2.817 |
Stage-wise p-value | <0.0001 | 0.0767 | <0.0001 | 0.0050 |
Inverse normal combination | 4.090 | 3.633 | 5.599 | 6.094 |
Test action | reject and stop | reject and stop | reject and stop | reject |
Conditional rejection probability | 0.5469 | 0.7525 | 1.0000 | |
96% repeated confidence interval | 56.780 - 283.220 | 50.708 - 267.898 | 129.271 - 304.606 | 127.414 - 266.016 |
Repeated p-value | 0.0002 | 0.0006 | <0.0001 | <0.0001 |
Final p-value | <0.0001 | |||
Final confidence interval | 93.310 - 246.690 | |||
Median unbiased estimate | 170.000 |
Analysis results base - rates
<- getDataset(
simpleDataExampleRates1 n = c(8, 10, 9, 11),
events = c(4, 5, 5, 6)
)
kable(summary(getAnalysisResults(
design = design1, dataInput = simpleDataExampleRates1,
stage = 3, thetaH0 = 0.75, normalApproximation = TRUE, directionUpper = FALSE,
nPlanned = 10
)))
Calculation of final confidence interval performed for kMax = 4 (for kMax > 2, it is theoretically shown that it is valid only if no sample size change was performed)
Analysis results for a binary endpoint
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a one-sample test for rates (one-sided, alpha = 0.02), normal approximation test. H0: pi = 0.75 against H1: pi < 0.75. The conditional power calculation with planned sample size is based on overall treatment rate = 0.52.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative treatment rate | 0.500 | 0.500 | 0.519 | |
Stage-wise test statistic | -1.633 | -1.826 | -1.347 | |
Stage-wise p-value | 0.0512 | 0.0339 | 0.0890 | |
Inverse normal combination | 1.633 | 2.443 | 2.729 | |
Test action | continue | continue | reject and stop | |
Conditional rejection probability | 0.0669 | 0.2722 | 0.5084 | |
Planned sample size | 10 | |||
Conditional power | 0.9310 | |||
96% repeated confidence interval | 0.144 - 0.856 | 0.240 - 0.760 | 0.307 - 0.727 | |
Repeated p-value | 0.4992 | 0.0285 | 0.0079 | |
Final p-value | 0.0087 | |||
Final confidence interval | 0.300 - 0.714 | |||
Median unbiased estimate | 0.502 |
<- getDataset(
simpleDataExampleRates2 n1 = c(17, 23, 22),
n2 = c(18, 20, 19),
events1 = c(11, 12, 17),
events2 = c(5, 10, 7)
)
kable(summary(getAnalysisResults(design1, simpleDataExampleRates2,
thetaH0 = 0, stage = 2, directionUpper = TRUE,
normalApproximation = FALSE, pi1 = 0.9, pi2 = 0.3, nPlanned = c(20, 20)
)))
Repeated confidence intervals will be calculated under the normal approximation
Analysis results for a binary endpoint
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample test for rates (one-sided, alpha = 0.02), exact test of Fisher. H0: pi(1) - pi(2) = 0 against H1: pi(1) - pi(2) > 0. The conditional power calculation with planned sample size is based on assumed treatment rate = 0.9 and assumed control rate = 0.3.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size | 0.369 | 0.180 | ||
Cumulative treatment rate | 0.647 | 0.575 | ||
Cumulative control rate | 0.278 | 0.395 | ||
Stage-wise test statistic | ||||
Stage-wise p-value | 0.0313 | 0.5648 | ||
Inverse normal combination | 1.862 | 1.011 | ||
Test action | continue | continue | ||
Conditional rejection probability | 0.0863 | 0.0213 | ||
Planned sample size | 20 | 20 | ||
Conditional power | 0.7257 | 0.9884 | ||
96% repeated confidence interval | -0.111 - 0.711 | -0.125 - 0.429 | ||
Repeated p-value | 0.3048 | >0.5 |
Analysis results base - survival
<- getDataset(
simpleDataExampleSurvival overallEvents = c(8, 15, 29),
overallAllocationRatios = c(1, 1, 1),
overallLogRanks = c(1.52, 1.38, 2.9)
)
kable(simpleDataExampleSurvival$getNumberOfGroups())
x |
---|
2 |
kable(summary(getAnalysisResults(design1, simpleDataExampleSurvival, directionUpper = TRUE)))
Calculation of final confidence interval performed for kMax = 4 (for kMax > 2, it is theoretically shown that it is valid only if no sample size change was performed)
Analysis results for a survival endpoint
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample logrank test (one-sided, alpha = 0.02). H0: hazard ratio = 1 against H1: hazard ratio > 1.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size | 2.929 | 2.039 | 2.936 | |
Stage-wise test statistic | 1.520 | 0.395 | 2.745 | |
Stage-wise p-value | 0.0643 | 0.3464 | 0.0030 | |
Inverse normal combination | 1.520 | 1.243 | 2.737 | |
Test action | continue | continue | reject and stop | |
Conditional rejection probability | 0.0588 | 0.0350 | 0.5134 | |
96% repeated confidence interval | 0.385 - 22.290 | 0.499 - 7.358 | 1.138 - 6.825 | |
Repeated p-value | >0.5 | 0.3740 | 0.0077 | |
Final p-value | 0.0087 | |||
Final confidence interval | 1.160 - 5.900 | |||
Median unbiased estimate | 2.686 |
Analysis results multi-arm
Analysis results multi-arm - means
<- getDataset(
dataExampleMeans n1 = c(13, 25),
n2 = c(15, NA),
n3 = c(14, 27),
n4 = c(12, 29),
means1 = c(242, 222),
means2 = c(188, NA),
means3 = c(267, 277),
means4 = c(92, 122),
stDevs1 = c(244, 221),
stDevs2 = c(212, NA),
stDevs3 = c(256, 232),
stDevs4 = c(215, 227)
)
kable(summary(getAnalysisResults(
design = design3, dataInput = dataExampleMeans, stage = 2, thetaH0 = 120,
directionUpper = TRUE, normalApproximation = TRUE,
assumedStDevs = c(24, 25, 23)
)))
Warning: 'assumedStDevs' (24, 25, 23) will be ignored because 'nPlanned' is not
defined
Multi-arm analysis results for a continuous endpoint (3 active arms vs. control)
Sequential analysis with 2 looks (conditional Dunnett test design). The results were calculated using a multi-arm t-test (one-sided, alpha = 0.02), normal approximation test, overall pooled variances option, conditional second stage p-values. H0: mu(1) = 120 against H1: mu(1) > 120.
Stage | 1 | 2 |
---|---|---|
Fixed information at interim | 0.4 | |
Cumulative effect size (1) | 150.000 | 115.623 |
Cumulative effect size (2) | 96.000 | |
Cumulative effect size (3) | 175.000 | 160.366 |
Cumulative (pooled) standard deviation | 232.555 | 228.359 |
Stage-wise test statistic (1) | 0.322 | -0.323 |
Stage-wise test statistic (2) | -0.266 | |
Stage-wise test statistic (3) | 0.601 | 0.577 |
Stage-wise p-value (1) | 0.3736 | 0.6267 |
Stage-wise p-value (2) | 0.6051 | |
Stage-wise p-value (3) | 0.2739 | 0.2820 |
Conditional error rate (1, 2, 3) | 0.0062 | |
Second stage p-value (1, 2, 3) | 0.3810 | |
Test action: reject (1) | FALSE | FALSE |
Test action: reject (2) | FALSE | FALSE |
Test action: reject (3) | FALSE | FALSE |
96% overall confidence interval (1) | -7.244 - 225.387 | |
96% overall confidence interval (2) | ||
96% overall confidence interval (3) | 39.389 - 267.535 | |
Overall p-value (1) | >0.5 | |
Overall p-value (2) | ||
Overall p-value (3) | 0.3768 |
Legend:
- (i): results of treatment arm i vs. control arm
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
Analysis results multi-arm - rates
<- getDataset(
dataExampleRates n1 = c(23, 25),
n2 = c(25, NA),
n3 = c(24, 27),
n4 = c(22, 29),
events1 = c(15, 12),
events2 = c(19, NA),
events3 = c(18, 22),
events4 = c(12, 13)
)
kable(summary(getAnalysisResults(
design = design1, dataInput = dataExampleRates,
intersectionTest = "Bonferroni", nPlanned = c(20, 20),
directionUpper = TRUE, piTreatments = c(0.4, 0.6, 0.5)
)))
Multi-arm analysis results for a binary endpoint (3 active arms vs. control)
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a multi-arm test for rates (one-sided, alpha = 0.02), Bonferroni intersection test, normal approximation test. H0: pi(i) - pi(control) = 0 against H1: pi(i) - pi(control) > 0. The conditional power calculation with planned sample size is based on assumed treatment rate: pi(1) = 0.4, pi(2) = 0.6, pi(3) = 0.5 and overall control rate = 0.49.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size (1) | 0.107 | 0.072 | ||
Cumulative effect size (2) | 0.215 | |||
Cumulative effect size (3) | 0.205 | 0.294 | ||
Cumulative treatment rate (1) | 0.652 | 0.562 | ||
Cumulative treatment rate (2) | 0.760 | |||
Cumulative treatment rate (3) | 0.750 | 0.784 | ||
Cumulative control rate | 0.545 | 0.490 | ||
Stage-wise test statistic (1) | 0.730 | 0.233 | ||
Stage-wise test statistic (2) | 1.549 | |||
Stage-wise test statistic (3) | 1.455 | 2.831 | ||
Stage-wise p-value (1) | 0.2325 | 0.4078 | ||
Stage-wise p-value (2) | 0.0607 | |||
Stage-wise p-value (3) | 0.0728 | 0.0023 | ||
Adjusted stage-wise p-value (1, 2, 3) | 0.1821 | 0.0046 | ||
Overall adjusted test statistic (1, 2, 3) | 0.907 | 2.612 | ||
Test action: reject (1) | FALSE | FALSE | ||
Test action: reject (2) | FALSE | FALSE | ||
Test action: reject (3) | FALSE | TRUE | ||
Conditional rejection probability (1) | 0.0227 | 0.0088 | ||
Conditional rejection probability (2) | 0.0283 | |||
Conditional rejection probability (3) | 0.0283 | 0.3346 | ||
Planned sample size | 20 | 20 | ||
Conditional power (1) | 0.0004 | 0.0016 | ||
Conditional power (2) | ||||
Conditional power (3) | 0.2769 | 0.3544 | ||
96% repeated confidence interval (1) | -0.336 - 0.513 | -0.236 - 0.356 | ||
96% repeated confidence interval (2) | -0.222 - 0.588 | |||
96% repeated confidence interval (3) | -0.237 - 0.583 | -0.003 - 0.549 | ||
Repeated p-value (1) | >0.5 | >0.5 | ||
Repeated p-value (2) | >0.5 | |||
Repeated p-value (3) | >0.5 | 0.0179 |
Legend:
- (i): results of treatment arm i vs. control arm
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
Analysis results multi-arm - survival
<- getDataset(
dataExampleSurvival events1 = c(25, 32),
events2 = c(18, NA),
events3 = c(22, 36),
logRanks1 = c(2.2, 1.8),
logRanks2 = c(1.99, NA),
logRanks3 = c(2.32, 2.11)
)
kable(summary(getAnalysisResults(
design = design3, dataInput = dataExampleSurvival,
intersectionTest = "Dunnett", directionUpper = TRUE, thetaH0 = 2
)))
Multi-arm analysis results for a survival endpoint (3 active arms vs. control)
Sequential analysis with 2 looks (conditional Dunnett test design). The results were calculated using a multi-arm logrank test (one-sided, alpha = 0.02), conditional second stage p-values. H0: hazard ratio = 2 against H1: hazard ratio > 2.
Stage | 1 | 2 |
---|---|---|
Fixed information at interim | 0.4 | |
Cumulative effect size (1) | 2.411 | 2.103 |
Cumulative effect size (2) | 2.555 | |
Cumulative effect size (3) | 2.689 | 2.252 |
Stage-wise test statistic (1) | 0.467 | -0.161 |
Stage-wise test statistic (2) | 0.520 | |
Stage-wise test statistic (3) | 0.694 | 0.031 |
Stage-wise p-value (1) | 0.3202 | 0.5638 |
Stage-wise p-value (2) | 0.3017 | |
Stage-wise p-value (3) | 0.2437 | 0.4878 |
Conditional error rate (1, 2, 3) | 0.0103 | |
Second stage p-value (1, 2, 3) | 0.6188 | |
Test action: reject (1) | FALSE | FALSE |
Test action: reject (2) | FALSE | FALSE |
Test action: reject (3) | FALSE | FALSE |
96% overall confidence interval (1) | 1.122 - 3.911 | |
96% overall confidence interval (2) | ||
96% overall confidence interval (3) | 1.217 - 4.197 | |
Overall p-value (1) | 0.4913 | |
Overall p-value (2) | ||
Overall p-value (3) | 0.4913 |
Legend:
- (i): results of treatment arm i vs. control arm
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
Analysis results enrichment
Analysis results enrichment - means
<- getDataset(
dataS1 means1 = c(13.2, 12.8),
means2 = c(11.1, 10.8),
stDev1 = c(3.4, 3.3),
stDev2 = c(2.9, 3.5),
n1 = c(21, 22),
n2 = c(19, 21)
)<- getDataset(
dataNotS1 means1 = c(11.8, NA),
means2 = c(11.5, NA),
stDev1 = c(3.6, NA),
stDev2 = c(2.7, NA),
n1 = c(15, NA),
n2 = c(13, NA)
)<- getDataset(S1 = dataS1, R = dataNotS1)
dataExampleMeans
kable(summary(getAnalysisResults(
design = design1, dataInput = dataExampleMeans, varianceOption = "pooledFromFull",
intersectionTest = "SpiessensDebois", nPlanned = c(20, 20), directionUpper = TRUE, assumedStDevs = 5
)))
Enrichment analysis results for a continuous endpoint (2 populations)
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample t-test (one-sided, alpha = 0.02), Spiessens and Debois intersection test, pooled from full population variances option, stratified analysis. H0: mu(treatment) - mu(control) = 0 against H1: mu(treatment) - mu(control) > 0. The conditional power calculation with planned sample size is based on overall effect: thetaH1(S1) = 2.05, thetaH1(F) = NA and assumed standard deviation = 5.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size S1 | 2.100 | 2.053 | ||
Cumulative effect size F | 1.354 | |||
Cumulative (pooled) standard deviation S1 | 3.173 | 3.256 | ||
Cumulative (pooled) standard deviation F | 3.186 | |||
Stage-wise test statistic S1 | 2.079 | 1.929 | ||
Stage-wise test statistic F | 1.755 | |||
Stage-wise p-value S1 | 0.0222 | 0.0304 | ||
Stage-wise p-value F | 0.0421 | |||
Adjusted stage-wise p-value (1, 2) | 0.0334 | 0.0304 | ||
Overall adjusted test statistic (1, 2) | 1.833 | 2.605 | ||
Test action: reject S1 | FALSE | TRUE | ||
Test action: reject F | FALSE | FALSE | ||
Conditional rejection probability S1 | 0.0835 | 0.3318 | ||
Conditional rejection probability F | 0.0743 | |||
Planned sample size | 20 | 20 | ||
Conditional power S1 | 0.6080 | 0.7684 | ||
Conditional power F | ||||
96% repeated confidence interval S1 | -1.101 - 5.301 | 0.025 - 4.066 | ||
96% repeated confidence interval F | -1.096 - 3.816 | |||
Repeated p-value S1 | 0.3255 | 0.0182 | ||
Repeated p-value F | 0.4097 |
Legend:
- F: full population
- S[i]: population i
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
Analysis results enrichment - rates
<- getDataset(
S1 events2 = c(16, 19),
sampleSizes2 = c(33, 34),
events1 = c(26, 29),
sampleSizes1 = c(35, 32)
)<- getDataset(
S2 events2 = c(12, 15),
sampleSizes2 = c(36, 31),
events1 = c(22, 24),
sampleSizes1 = c(31, 39)
)<- getDataset(
F events2 = c(65, 54),
sampleSizes2 = c(83, 84),
events1 = c(66, 59),
sampleSizes1 = c(85, 82)
)
<- getDataSet(S1 = S1, S2 = S2, F = F)
dataExampleRates
kable(summary(getAnalysisResults(
design = design1, dataInput = dataExampleRates, stratifiedAnalysis = FALSE,
intersectionTest = "Simes", nPlanned = c(20, 20),
piControls = c(0.6, 0.2, 0.3),
directionUpper = TRUE
)))
Enrichment analysis results for a binary endpoint (3 populations)
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample test for rates (one-sided, alpha = 0.02), Simes intersection test, normal approximation test, non-stratified analysis. H0: pi(treatment) - pi(control) = 0 against H1: pi(treatment) - pi(control) > 0. The conditional power calculation with planned sample size is based on overall treatment rate: pi(S1) = 0.82, pi(S2) = 0.66, pi(F) = 0.75 and assumed control rate: pi(S1) = 0.6, pi(S2) = 0.2, pi(F) = 0.3.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size S1 | 0.258 | 0.299 | ||
Cumulative effect size S2 | 0.376 | 0.254 | ||
Cumulative effect size F | -0.007 | 0.036 | ||
Cumulative treatment rate S1 | 0.743 | 0.821 | ||
Cumulative treatment rate S2 | 0.710 | 0.657 | ||
Cumulative treatment rate F | 0.776 | 0.749 | ||
Cumulative control rate | 0.485 | 0.333 | 0.783 | |
Stage-wise test statistic S1 | 2.188 | 3.167 | ||
Stage-wise test statistic S2 | 3.072 | 1.100 | ||
Stage-wise test statistic F | -0.104 | 1.059 | ||
Stage-wise p-value S1 | 0.0143 | 0.0008 | ||
Stage-wise p-value S2 | 0.0011 | 0.1356 | ||
Stage-wise p-value F | 0.5415 | 0.1448 | ||
Adjusted stage-wise p-value (1, 2, 3) | 0.0032 | 0.0023 | ||
Overall adjusted test statistic (1, 2, 3) | 2.728 | 3.910 | ||
Test action: reject S1 | FALSE | TRUE | ||
Test action: reject S2 | FALSE | TRUE | ||
Test action: reject F | FALSE | FALSE | ||
Conditional rejection probability S1 | 0.0900 | 0.7054 | ||
Conditional rejection probability S2 | 0.2063 | 0.3252 | ||
Conditional rejection probability F | 0.0076 | 0.0123 | ||
Planned sample size | 20 | 20 | ||
Conditional power S1 | 0.9368 | 0.9735 | ||
Conditional power S2 | 0.9478 | 0.9948 | ||
Conditional power F | 0.2417 | 0.7339 | ||
96% repeated confidence interval S1 | -0.118 - 0.573 | 0.052 - 0.533 | ||
96% repeated confidence interval S2 | -0.016 - 0.667 | -0.046 - 0.491 | ||
96% repeated confidence interval F | -0.214 - 0.202 | -0.120 - 0.197 | ||
Repeated p-value S1 | 0.2793 | 0.0010 | ||
Repeated p-value S2 | 0.0310 | 0.0191 | ||
Repeated p-value F | >0.5 | >0.5 |
Legend:
- F: full population
- S[i]: population i
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
Analysis results enrichment - survival
<- getDataset(
S events = c(16, 19),
logRanks = c(1.5, 1.3)
)
<- getDataset(
R events = c(16, 29),
logRanks = c(1.5, 1.3)
)<- getDataset(S1 = S, F = R)
dataExampleSurvival
kable(summary(getAnalysisResults(
design = design1, dataInput = dataExampleSurvival,
intersectionTest = "Simes", nPlanned = c(20, 20), directionUpper = TRUE
)))
Test statistics from full (and sub-populations) need to be stratified log-rank tests
Enrichment analysis results for a survival endpoint (2 populations)
Sequential analysis with 4 looks (inverse normal combination test design). The results were calculated using a two-sample logrank test (one-sided, alpha = 0.02), Simes intersection test, stratified analysis. H0: hazard ratio = 1 against H1: hazard ratio > 1. The conditional power calculation with planned sample size is based on overall effect: thetaH1(S1) = 1.95, thetaH1(F) = 1.78.
Stage | 1 | 2 | 3 | 4 |
---|---|---|---|---|
Fixed weight | 0.387 | 0.5 | 0.548 | 0.548 |
Efficacy boundary (z-value scale) | 2.870 | 2.572 | 2.391 | 2.272 |
Futility boundary (z-value scale) | -0.500 | 0.000 | 0.500 | |
Cumulative alpha spent | 0.0021 | 0.0067 | 0.0130 | 0.0200 |
Stage level | 0.0021 | 0.0050 | 0.0084 | 0.0116 |
Cumulative effect size S1 | 2.117 | 1.948 | ||
Cumulative effect size F | 2.117 | 1.782 | ||
Stage-wise test statistic S1 | 1.500 | 1.300 | ||
Stage-wise test statistic F | 1.500 | 1.300 | ||
Stage-wise p-value S1 | 0.0668 | 0.0968 | ||
Stage-wise p-value F | 0.0668 | 0.0968 | ||
Adjusted stage-wise p-value (1, 2) | 0.0668 | 0.0968 | ||
Overall adjusted test statistic (1, 2) | 1.500 | 1.946 | ||
Test action: reject S1 | FALSE | FALSE | ||
Test action: reject F | FALSE | FALSE | ||
Conditional rejection probability S1 | 0.0574 | 0.1312 | ||
Conditional rejection probability F | 0.0574 | 0.1312 | ||
Planned sample size | 20 | 20 | ||
Conditional power S1 | 0.5342 | 0.8076 | ||
Conditional power F | 0.4551 | 0.7248 | ||
96% repeated confidence interval S1 | 0.453 - 9.887 | 0.703 - 5.334 | ||
96% repeated confidence interval F | 0.453 - 9.887 | 0.734 - 4.381 | ||
Repeated p-value S1 | >0.5 | 0.0970 | ||
Repeated p-value F | >0.5 | 0.0970 |
Legend:
- F: full population
- S[i]: population i
- (i, j, …): comparison of treatment arms ‘i, j, …’ vs. control arm
System: rpact 3.3.4, R version 4.2.2 (2022-10-31 ucrt), platform: x86_64-w64-mingw32
To cite R in publications use:
R Core Team (2022). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
To cite package ‘rpact’ in publications use:
Wassmer G, Pahlke F (2023). rpact: Confirmatory Adaptive Clinical Trial Design and Analysis. https://www.rpact.org, https://www.rpact.com, https://github.com/rpact-com/rpact.