This example requests a log-rank test that compares two survival distributions for the treatment effect (Jennison and Turnbull 2000, pp. 77–79; Whitehead 1997, pp. 36–39).
A clinic is studying the effect of a new cancer treatment. The study consists of mice exposed to a carcinogen and randomized to either the control group or the treatment group. The event of interest is the death from cancer induced by the carcinogen, and the response is the time from randomization to death.
Following the derivations in the section "Test for Two Survival Distributions with a Log-Rank Test" in the chapter "The SEQDESIGN Procedure," the hypothesis with an alternative hypothesis can be used, where is the hazard ratio between the treatment group and control group.
Suppose that from past experience, the median survival time for the control group is weeks, and the study would like to detect a weeks median survival time with a power in the trial. Assuming exponential survival functions for the two groups, the hazard rates can be computed from
where .
Thus, with and , the hazard ratio and the alternative hypothesis is
The following statements invoke the SEQDESIGN procedure and request a four-stage group sequential design for normally distributed data. The design uses a one-sided alternative hypothesis with early stopping to reject and to accept the null hypothesis . Whitehead’s triangular method is used to derive the boundaries.
ods graphics on; proc seqdesign altref=0.69315 boundaryscale=score ; OneSidedWhitehead: design method=whitehead nstages=4 boundarykey=alpha alt=upper stop=both beta=0.20; samplesize model=twosamplesurvival ( nullhazard=0.03466 accrate=10); run; ods graphics off;
A Whitehead method creates boundaries that approximately satisfy the Type I and Type II error probability level specification. The BOUNDARYKEY=ALPHA option is used to adjust the boundary value at the last stage and to meet the specified Type I probability level.
The specified ACCRATE=10 option indicates that mice will be accrued each week and the resulting minimum and maximum accrual times are displayed. With the BOUNDARYSCALE=SCORE option, the procedure displays the output boundaries with the score statistics.
The "Design Information" table in Output 81.6.1 displays design specifications and derived statistics.
Design Information | |
---|---|
Statistic Distribution | Normal |
Boundary Scale | Score |
Alternative Hypothesis | Upper |
Early Stop | Accept/Reject Null |
Method | Whitehead |
Boundary Key | Alpha |
Alternative Reference | 0.69315 |
Number of Stages | 4 |
Alpha | 0.05 |
Beta | 0.20044 |
Power | 0.79956 |
Max Information (Percent of Fixed Sample) | 129.9894 |
Max Information | 16.70624 |
Null Ref ASN (Percent of Fixed Sample) | 62.6302 |
Alt Ref ASN (Percent of Fixed Sample) | 74.00064 |
The "Boundary Information" table in Output 81.6.2 displays the information level, alternative reference, and boundary values at each stage.
Boundary Information (Score Scale) Null Reference = 0 |
||||||
---|---|---|---|---|---|---|
_Stage_ | Alternative | Boundary Values | ||||
Information Level | Reference | Upper | ||||
Proportion | Actual | Events | Upper | Beta | Alpha | |
1 | 0.2500 | 4.176561 | 16.70624 | 2.89498 | -0.95755 | 4.78773 |
2 | 0.5000 | 8.353122 | 33.41249 | 5.78997 | 1.91509 | 5.74527 |
3 | 0.7500 | 12.52968 | 50.11873 | 8.68495 | 4.78773 | 6.70282 |
4 | 1.0000 | 16.70624 | 66.82498 | 11.57993 | 7.81296 | 7.81296 |
With ODS Graphics enabled, a detailed boundary plot with the rejection and acceptance regions is displayed, as shown in Output 81.6.3.
With the MODEL=TWOSAMPLESURVIVAL option in the SAMPLESIZE statement, the "Sample Size Summary" table in Output 81.6.4 displays the parameters for the sample size computation.
Sample Size Summary | |
---|---|
Test | Two-Sample Survival |
Null Hazard Rate | 0.03466 |
Hazard Rate (Group A) | 0.01733 |
Hazard Rate (Group B) | 0.03466 |
Hazard Ratio | 0.499999 |
log(Hazard Ratio) | -0.69315 |
Reference Hazards | Alt Ref |
Accrual Rate | 10 |
Min Accrual Time | 6.682498 |
Min Sample Size | 66.82498 |
Max Accrual Time | 25.401 |
Max Sample Size | 254.01 |
Max Number of Events | 66.82498 |
With a minimum accrual time of weeks and a maximum accrual time of weeks, an accrual time of weeks is used in the study.
The "Numbers of Events" table in Output 81.6.5 displays the required number of events for the group sequential clinical trial.
Numbers of Events (D) Two-Sample Log-Rank Test |
||
---|---|---|
_Stage_ | D | Information |
1 | 16.71 | 4.1766 |
2 | 33.41 | 8.3531 |
3 | 50.12 | 12.5297 |
4 | 66.82 | 16.7062 |
The following statements invoke the SEQDESIGN procedure and provide more detailed sample size information:
proc seqdesign altref=0.69315 boundaryscale=score ; OneSidedWhitehead: design method=whitehead nstages=4 boundarykey=alpha alt=upper stop=both beta=0.20; samplesize model=twosamplesurvival ( nullhazard=0.03466 accrate=10 acctime=20); ods output Boundary=Bnd_Surv; run;
The ODS OUTPUT statement with the BOUNDARY=BND_SURV option creates an output data set named BND_SURV which contains the resulting boundary information for the subsequent sequential tests.
With an accrual time of weeks, the "Sample Size Summary" table in Output 81.6.6 displays the follow-up time for the trial.
Sample Size Summary | |
---|---|
Test | Two-Sample Survival |
Null Hazard Rate | 0.03466 |
Hazard Rate (Group A) | 0.01733 |
Hazard Rate (Group B) | 0.03466 |
Hazard Ratio | 0.499999 |
log(Hazard Ratio) | -0.69315 |
Reference Hazards | Alt Ref |
Accrual Rate | 10 |
Accrual Time | 20 |
Follow-up Time | 6.47422 |
Total Time | 26.47422 |
Max Number of Events | 66.82498 |
Max Sample Size | 200 |
Expected Sample Size (Null Ref) | 161.5937 |
Expected Sample Size (Alt Ref) | 172.4689 |
The "Numbers of Events and Sample Sizes" table in Output 81.6.7 displays the required sample sizes for the group sequential clinical trial.
Numbers of Events (D) and Sample Sizes (N) Two-Sample Log-Rank Test |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
_Stage_ | Fractional Time | Ceiling Time | ||||||||||||||
D | D(Grp 1) | D(Grp 2) | Time | N | N(Grp 1) | N(Grp 2) | Information | D | D(Grp 1) | D(Grp 2) | Time | N | N(Grp 1) | N(Grp 2) | Information | |
1 | 16.71 | 5.82 | 10.89 | 11.9866 | 119.87 | 59.93 | 59.93 | 4.1766 | 16.74 | 5.83 | 10.91 | 12 | 120.00 | 60.00 | 60.00 | 4.1854 |
2 | 33.41 | 11.84 | 21.57 | 17.3584 | 173.58 | 86.79 | 86.79 | 8.3531 | 35.73 | 12.68 | 23.04 | 18 | 180.00 | 90.00 | 90.00 | 8.9322 |
3 | 50.12 | 18.01 | 32.11 | 21.7479 | 200.00 | 100.00 | 100.00 | 12.5297 | 51.07 | 18.37 | 32.70 | 22 | 200.00 | 100.00 | 100.00 | 12.7667 |
4 | 66.82 | 24.46 | 42.37 | 26.4742 | 200.00 | 100.00 | 100.00 | 16.7062 | 68.55 | 25.14 | 43.41 | 27 | 200.00 | 100.00 | 100.00 | 17.1377 |
Thus the study will perform three interim analyses after , , and weeks and a final analysis after weeks if the study does not stop at any of the interim analyses.
Note that the SEQDESIGN procedure does not compute numbers of events or sample sizes for all statistical models. If the number of events or sample size for a fixed-sample design is available, then the MODEL=INPUTNEVENTS or MODEL=INPUTNOBS option can be used to input fixed-sample information. For example, with a required fixed-sample number of events , the following SAMPLESIZE statement can be used to produce the same sample size results:
samplesize model=inputnevents ( d=51.47 sample=two hazard=0.03466 0.01733 accrate=10 acctime=20);
Suppose that mice are available after week for the first interim analysis. Output 81.6.8 lists the 10 observations in the data set weeks_1.
First 10 Obs in the Trial Data |
Obs | TrtGp | Event | Weeks |
---|---|---|---|
1 | 0 | 0 | 11 |
2 | 1 | 0 | 11 |
3 | 0 | 0 | 11 |
4 | 1 | 0 | 11 |
5 | 0 | 1 | 6 |
6 | 1 | 0 | 11 |
7 | 0 | 0 | 11 |
8 | 1 | 0 | 11 |
9 | 0 | 1 | 9 |
10 | 1 | 0 | 11 |
The TrtGp variable is a grouping variable with the value for a mouse in the placebo control group and the value for a mouse in the treatment group. The Weeks variable is the survival time variable measured in weeks and the Event variable is the censoring variable with the value indicating censoring. That is, the values of Weeks are considered censored if the corresponding values of Event are 0; otherwise, they are considered as event times.
The following statements use the LIFETEST procedure to estimate the log-rank statistic at stage :
proc lifetest data=Surv_1; time Weeks*Event(0); test TrtGp; ods output logunichisq=Parms_Surv1; run;
The following statements create and display (in Output 81.6.9) the data set for the log-rank statistic and its associated standard error:
data Parms_Surv1; set Parms_Surv1(rename=(Statistic=Estimate)); if Variable='TrtGp'; _Scale_='Score'; _Stage_= 1; keep Variable _Scale_ _Stage_ StdErr Estimate; run; proc print data=Parms_Surv1; title 'Statistics Computed at Stage 1'; run;
Statistics Computed at Stage 1 |
Obs | Variable | Estimate | StdErr | _Scale_ | _Stage_ |
---|---|---|---|---|---|
1 | TrtGp | 3.2004 | 1.9979 | Score | 1 |
The following statements invoke the SEQTEST procedure to test for early stopping at stage :
ods graphics on; proc seqtest Boundary=Bnd_Surv Parms(Testvar=TrtGp)=Parms_Surv1 infoadj=none boundaryscale=score ; ods output Test=Test_Surv1; run; ods graphics off;
The BOUNDARY= option specifies the input data set that provides the boundary information for the trial at stage , which was generated in the SEQDESIGN procedure. The PARMS=PARMS_SURV1 option specifies the input data set PARMS_SURV1 that contains the test statistic and its associated standard error at stage , and the TESTVAR=TRTGP option identifies the test variable TRTGP in the data set. The INFOADJ=NONE option maintains the information levels for future interim stages ( and ) at the values provided in the BOUNDARY= data set.
The ODS OUTPUT statement with the TEST=TEST_SURV1 option creates an output data set named TEST_SURV1 which contains the updated boundary information for the test at stage . The data set also provides the boundary information that is needed for the group sequential test at the next stage.
The "Design Information" table in Output 81.6.10 displays design specifications. By default (or equivalently if you specify BOUNDARYKEY=ALPHA), the maximum information and the Type I error level are preserved. Since the computed information level at stage is not the same as the value provided in the BOUNDARY= data set, the power has been modified.
Design Information | |
---|---|
BOUNDARY Data Set | WORK.BND_SURV |
Data Set | WORK.PARMS_SURV1 |
Statistic Distribution | Normal |
Boundary Scale | Score |
Alternative Hypothesis | Upper |
Early Stop | Accept/Reject Null |
Number of Stages | 4 |
Alpha | 0.05 |
Beta | 0.20055 |
Power | 0.79945 |
Max Information (Percent of Fixed Sample) | 130.0335 |
Max Information | 16.7062448 |
Null Ref ASN (Percent of Fixed Sample) | 62.80855 |
Alt Ref ASN (Percent of Fixed Sample) | 74.19155 |
The "Test Information" table in Output 81.6.11 displays the boundary values for the test statistic with the SCORE statistic scale. Since only the information level at stage is specified in the DATA= data set, the information levels at subsequent stages are derived proportionally from the corresponding information levels provided in the BOUNDARY= data set. At stage , the score statistic is between the upper boundary value and the upper boundary value , so the trial continues to the next stage.
Test Information (Score Scale) Null Reference = 0 |
|||||||
---|---|---|---|---|---|---|---|
_Stage_ | Alternative | Boundary Values | Test | ||||
Information Level | Reference | Upper | TrtGp | ||||
Proportion | Actual | Upper | Beta | Alpha | Estimate | Action | |
1 | 0.2389 | 3.991698 | 2.76685 | -1.03860 | 4.71422 | 3.20040 | Continue |
2 | 0.5000 | 8.353122 | 5.78997 | 1.91799 | 5.73971 | . | |
3 | 0.7500 | 12.52968 | 8.68495 | 4.78802 | 6.70284 | . | |
4 | 1.0000 | 16.70624 | 11.57993 | 7.81346 | 7.81346 | . |
Note that the observed information level corresponds to a proportion of in information level. If the observed information level is much smaller than the target proportion of , then you need to increase the accrual rate, accrual time, or follow-up time to achieve the target maximum information level for the trial. Scharfstein and Tsiatis (1998) use the simulation and bootstrap methods to modify the trial at interim stages to achieve the target maximum information level. These modifications should be specified in the study protocol or study plan before the study starts.
With ODS Graphics enabled, a boundary plot with test statistics is displayed, as shown in Output 81.6.12. As expected, the test statistic is in the continuation region between the upper and boundary values.
Note that the input DATA= option can also be used for the test statistics. For example, the following statements create and display (in Output 81.6.13) the data set for the log-rank statistic and its associated standard error after the LIFETEST procedure. Since the log-rank statistic is a score statistic, the corresponding information level is the variance of the statistic.
proc lifetest data=Surv_1; time Weeks*Event(0); test TrtGp; ods output logunichisq=Parms_Surv1a; run;
data Parms_Surv1a; set Parms_Surv1a(rename=(Statistic=TrtGp)); keep _Scale_ _Stage_ _Info_ TrtGp; _Scale_='Score'; _Stage_= 1; _Info_= StdErr * StdErr; if Variable='TrtGp'; run;
proc print data=Parms_Surv1a; title 'Statistics Computed at Stage 1'; run;
Statistics Computed at Stage 1 |
Obs | TrtGp | _Scale_ | _Stage_ | _Info_ |
---|---|---|---|---|
1 | 3.2004 | Score | 1 | 3.99170 |
The following statements can be used to invoke the SEQTEST procedure to test for early stopping at stage :
ods graphics on; proc seqtest Boundary=Bnd_Surv Data(Testvar=TrtGp)=Parms_Surv1a infoadj=none boundaryscale=score ; ods output Test=Test_Surv1; run; ods graphics off;
The following statements use the LIFETEST procedure to compute the log-rank statistic and its associated standard error at stage :
proc lifetest data=Surv_2; time Weeks*Event(0); test TrtGp; ods output logunichisq=Parms_Surv2; run;
The following statements create and display (in Output 81.6.14) the data set for the log-rank statistic and its associated standard error for each of the first two stages:
data Parms_Surv2; set Parms_Surv2 (rename=(Statistic=Estimate)); if Variable='TrtGp'; _Scale_='Score'; _Stage_= 2; keep Variable _Scale_ _Stage_ StdErr Estimate; run; proc print data=Parms_Surv2; title 'Statistics Computed at Stage 2'; run;
Statistics Computed at Stage 2 |
Obs | Variable | Estimate | StdErr | _Scale_ | _Stage_ |
---|---|---|---|---|---|
1 | TrtGp | 7.3136 | 2.9489 | Score | 2 |
The following statements invoke the SEQTEST procedure to test for early stopping at stage :
ods graphics on; proc seqtest Boundary=Test_Surv1 Parms(Testvar=TrtGp)=Parms_Surv2 infoadj=none boundaryscale=score citype=lower ; ods output Test=Test_Surv2; run; ods graphics off;
The BOUNDARY= option specifies the input data set that provides the boundary information for the trial at stage , which was generated by the SEQTEST procedure at the previous stage. The PARMS= option specifies the input data set that contains the test statistic and its associated standard error at stage , and the TESTVAR= option identifies the test variable in the data set. The INFOADJ=NONE option maintains the information level for stage at the value provided in the BOUNDARY= data set.
The ODS OUTPUT statement with the TEST=TEST_SURV2 option creates an output data set named TEST_SURV2 which contains the updated boundary information for the test at stage . The data set also provides the boundary information that is needed for the group sequential test at the next stage if the trial does not stop at the current stage.
The "Test Information" table in Output 81.6.15 displays the boundary values for the test statistic. The test statistic is larger than the corresponding upper boundary , so the study stops and rejects the null hypothesis. That is, there is evidence of reduction in hazard rate for the new treatment.
Test Information (Score Scale) Null Reference = 0 |
|||||||
---|---|---|---|---|---|---|---|
_Stage_ | Alternative | Boundary Values | Test | ||||
Information Level | Reference | Upper | TrtGp | ||||
Proportion | Actual | Upper | Beta | Alpha | Estimate | Action | |
1 | 0.2389 | 3.991698 | 2.76685 | -1.03860 | 4.71422 | 3.20040 | Continue |
2 | 0.5205 | 8.696125 | 6.02772 | 2.17045 | 5.79332 | 7.31365 | Reject Null |
3 | 0.7500 | 12.52968 | 8.68495 | 4.76306 | 6.72915 | . | |
4 | 1.0000 | 16.70624 | 11.57993 | 7.81287 | 7.81287 | . |
With ODS Graphics enabled, the "Test Plot" displays boundary values of the design and the test statistic at the first two stages, as shown in Output 81.6.16. It also shows that the test statistic is in the "Rejection Region" above the upper boundary value at stage .
After the stopping of a trial, the "Parameter Estimates" table in Output 81.6.17 displays the stopping stage, parameter estimate, unbiased median estimate, confidence limits, and -value under the null hypothesis .
Parameter Estimates Stagewise Ordering |
|||||
---|---|---|---|---|---|
Parameter | Stopping Stage |
MLE | p-Value for H0:Parm=0 |
Median Estimate |
Lower 95% CL |
TrtGp | 2 | 0.841024 | 0.0139 | 0.810329 | 0.21615 |
As expected, the -value is significant at the level and the lower confidence limit is larger than . The -value, unbiased median estimate, and lower confidence limit depend on the ordering of the sample space , where is the stage number and is the standardized statistic. With the specified stagewise ordering, the -value is , where is the spending at stage ,
where is a standardized normal variate and is the information level at stage for .