corrBounds | R Documentation |
This function calculates the rejection boundaries in p value (significance level) and z value in group sequential design based on the alpha spending function for each test using the log-rank test (He et al 2021).
corrBounds( sf = list(sfuA = gsDesign::sfLDOF, sfuB = gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0, 0), eBnotA = c(54, 90), r = list(AandB = 1/2, AnotB = 0, BnotA = 1/2), rA = 1/2, rB = 1/2, gamma = 0.8, strat.ana = c("Y", "N"), alpha = 0.025, w = c(1/3, 2/3), epsA = c(NA, NA), epsB = c(1, 1), method = c("Balanced Allocation", "Customized Allocation") )
sf |
Spending functions for tests A and B. Default sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), both tests are based on O'Brien Fleming spending boundary. Refer to gsDesign() function for other choices of spending functions. |
eAandB |
Number of events in subjects included in both population A and population B. For group sequential design, eAandB is a vector by each analysis. |
eAnotB |
Number of events in subjects included in population A but not in population B. |
eBnotA |
Number of events in subjects included in population B but not in population A. |
r |
A vector of proportions of experimental subjects in each of subgroup: Both in A and B, A not B, B not A. For randomization stratified by A and B, then r$AandB = r$AnotB = BcA. |
rA |
Proportion of experimental subjects among those included in population A. |
rB |
Proportion of experimental subjects among those included in population B. |
gamma |
Proportion of subjects included in both A and B among all subjects in A or B. rA, rB and gamma are required parameter for unstratified analysis; They are not required for stratified analysis. |
strat.ana |
stratified analysis flag, "Y" or "N". Default, "Y". The stratified analysis means that testing HA is stratified by B, and vice versa. |
alpha |
Overall one-sided type I error for all primary hypothesis tests. Default 0.025. |
w |
A vector of proportions for type I error allocation to all primary hypotheses. The sum of w must be 1. |
epsA |
A vector of efficiency factors for testing Ha at all analyses. |
epsB |
A vector of efficiency factors for testing Hb at all analyses. epsA and epsB are required when method = "Customized Allocation". At analysis k, either epsAk or epsBk is required, but not both. The unspecified will be determined. For example, epsA = c(1, NA) and epsB = c(NA, 1): At the 1st analysis, Ha rejection boundary is the same as the boundary based on alpha-splitting method, and the benefit from the correlation is fully captured to Hb to improve its rejection boundary. At the 2nd analysis, Hb's rejection boundary is the same as the alpha-splitting approach, and the benefit from the correlation is fully captured to Ha. In order to insure the improved rejection boundary is no worse than the alpha-splitting method, epsA and epsB is must be at least 1, and also capped by the acceptable value when the other one is 1. |
method |
The method for alpha adjustment: "Balanced Allocation" or "Customized Allocation". "Balanced Allocation" = the adjustment is equally allocated to all primary hypotheses. "Customized Allocation" = the adjustment is made according to pre-specified levels for some hypotheses. Default "Balanced Allocation". |
An object with values
overall.alpha Overall type I error allocated to the family-wise type I error, Ha, and Hb.
FW.alpha Family-wise type I error, default 0.025 one-sided.
alphaA Overall alpha for testing A
alphaB Overall alpha for testing B
side Side of test. Always one-sided, 1.
bd: Data frame includes the rejection boundaries before and after improvements.
timingA Timing of analysis in terms of information fraction for testing A
bd.pA0 P value bound for the alpha-splitting approach
bd.zA0 z value bound for the alpha-splitting approach
bd.pA Improved p value bound incorporating the correlation
bd.zA Improved z value bound incorporating the correlation
epsA Efficiency factor for testing A, defined as the ratio of improved p bound and the p bound from alpha-splitting method
timingB Timing of analysis in terms of information fraction for testing B
bd.pB0 P value bound for the alpha-splitting approach
bd.zB0 z value bound for the alpha-splitting approach
bd.pB Improved p value bound incorporating the correlation
bd.zB Improved z value bound incorporating the correlation
epsB Efficiency factor for testing B, defined as the ratio of improved p bound and the p bound from alpha-splitting method
max.eps: Data frame of maximum epsA and epsB at each analysis. In order to ensure the improved bound is not worse than the alpha-splitting approach, epsA and epsB should be within the range of [1, max.epsA] and [1, max.epsB]. max.epsAk is obtained by passing all improvement of the bound to test A at analysis k while keeping the bound for test B same as the alpha-splitting approach. max.epsBk is also determined similarly. This range is useful for customized setting of epsA and epsB.
corr: Correlation matrix of the logrank test statistics
cov: Covariance matrix of the logrank scores for (Z_Ak, Z_Bk, Z_Ak', Z_Bk'), where k' > k
method: Method for allocation of the improvements
strat: Flag for stratified analysis "Y" or "N", as user input.
@references He P, Ni P, Zhang F, and Yu C. Group Sequential Monitoring and Study Design for Time-to-Event Endpoints in Overlapping Populations. Manuscript submitted, 2021
#Example 1. A subgroup (S) and overall population: at the same DCO, the numbers #of target events are 100(eS) and 150 (eT) respectively. 1:1 randomization. #1/3 alpha is allocated to S and 2/3 allocated to overall population. #(1a) Default method: Balanced allocation; stratified analysis #stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(100), eAnotB = c(0), eBnotA = c(50), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana=c("Y", "N"),alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method=c("Balanced Allocation", "Customized Allocation")) #(1b) Default method: Balanced allocation; unstratified analysis #For unstratified analysis, gamma is required. corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(100), eAnotB = c(0), eBnotA = c(50), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method=c("Balanced Allocation", "Customized Allocation")) #(1c) Customized Allocation with the subgroup alpha fixed at the initial alpha #stratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(100), eAnotB = c(0), eBnotA = c(50), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana=c("Y"),alpha=0.025, w=c(1/3, 2/3),epsA = c(1), epsB=c(NA), method=c("Customized Allocation")) #(1d) Customized Allocation with the subgroup alpha fixed at the initial alpha #unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(100), eAnotB = c(0), eBnotA = c(50), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana=c("N"),alpha=0.025, w=c(1/3, 2/3),epsA = c(1), epsB=c(NA), method=c("Customized Allocation")) ##### #Example 2. Group sequential design. O'Brien Fleming spending function #is used for both tests Ha and Hb. One IA and FA are performed. The number #of events at IA and FA in each set of patients are: (126, 210), (0,0), (54,90) #for in A and B, in A not B, in B not A respectively. So the events ratio #at IA for testing Ha is 126/180 = 0.7; and for testing Hb is 210 / 300 = 0.70. #The overall type I error is split as 1/3 alpha and 2/3 alpha. #(2a) stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana="Y",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method=c("Balanced Allocation", "Customized Allocation")) ##(2b)unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method="Balanced Allocation") #(2c) Improve Ha only. stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana="Y",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method="Customized Allocation") #(2d)Improve Ha only. unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,NA), epsB=c(1,1), method="Customized Allocation") #(2e) Improve Hb only. stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana="Y",alpha=0.025, w=c(1/3, 2/3),epsA = c(1,1), epsB=c(NA,NA), method="Customized Allocation") #(2f)Improve Hb only. unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(1,1), epsB=c(NA,NA), method="Customized Allocation") #(2g) Improve Ha at IA and improve Hb at FA. stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana="Y",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,1), epsB=c(1,NA), method="Customized Allocation") #(2h)Improve Ha at IA and improve Hb at FA. unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(NA,1), epsB=c(1,NA), method="Customized Allocation") #(2i) Improve Hb at IA and improve Ha at FA. stratified Analysis by default corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = NA, strat.ana="Y",alpha=0.025, w=c(1/3, 2/3),epsA = c(1,NA), epsB=c(NA,1), method="Customized Allocation") #(2j)Improve Hb at IA and improve Ha at FA. unstratified Analysis corrBounds(sf=list(sfuA=gsDesign::sfLDOF, sfuB=gsDesign::sfLDOF), eAandB = c(126, 210), eAnotB = c(0,0), eBnotA = c(54, 90), r=list(AandB = 1/2, AnotB=0, BnotA=1/2), rA=1/2, rB=1/2, gamma = 0.8, strat.ana="N",alpha=0.025, w=c(1/3, 2/3),epsA = c(1,NA), epsB=c(NA,1), method="Customized Allocation")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.