- SAS
SAS中给出的成组序贯设计的流程图。通过proc seqdesign实现序贯设计,通过proc seqtest组合界值和统计量判断是否继续试验。成组序贯设计的统计假设是基于正态分布。即使不是连续性资料(二项、生存资料),也是假设其在大样本的情况下趋近于正态分布。
-
SeqDesign
语句信息 PROC SEQDESIGN<options>; <label:> DESIGN options; SAMPLESIZE <MODEL= option>; run;
SAS中给出的例子:
假设某项降胆固醇药物临床试验,共两组。主要指标为胆固醇变化情况。计划进行4次期中分析。 ods graphics on; proc seqdesign altref=-10.0; TwoSidedOBrienFleming: design nstages=4 method=obf; samplesize model=twosamplemean(stddev=20); ods output Boundary=Bnd_LDL; run;
- 输出结果
- 给出了设计相关的信息,跟程序里设定的一致。Max information为计算出的最大信息量,Max information/Null Ref/Alt Ref (Percent)为相对固定设计样本量的百分比。
- Figure 4 :4次期中分析各次的样本量及界值(Boundary Values)。
- Figure 5 :根据Figure 4 中的信息画的界值图,未指定单/双侧检验及有效/无效中止时,程序默认双侧+有效中止。K=1~3,统计量落在上下两块蓝色区域时,即拒绝原假设,落在中间区域时继续试验;最终分析K=4时,要么拒绝要么接受原假设,不存在继续试验的中间区域。
- Figure 6:样本量信息,与Design Information对应。该适应固定设计的样本量为168.1188,Max sample size=168.1188Max Information (Percent) 102.2163%=171.84,Expected Sample Size (Null)=168.1188Null Ref ASN(Percent)101.5728%=170.76。
一个问题,同样的参数用proc power算=172,用proc seqdesign算=168.12:
Proc seqdesign altref=-10; proc power;
twosideobrienfleming: design nstage=1 twosamplemeans alpha=0.05 power=0.9 test=diff
method=obf; Meandiff=10 stddev=20
samplesize model=twosamplemean(stddev=20); ntotal=.;
run; run;
-
Seqtest
整合seqDesign中生成的界值以及实际数据分析后的相关统计量判断是否中止、P值及置信区间等。
Seqtest可以输出的结果包括_SAS Help:
1. average sample numbers under various hypothetical references
2. stopping probabilities at each stage under various hypothetical references
3. conditional power given the most recently observed statistic under specified hypothetical references
4. predictive power given the most recently observed statistic
5. repeated confidence intervals for the parameter from the observed statistic at each stage
6. parameter estimate, p-value, and median and confidence limits
SAS中的例子:试验数据收集之后采用适用的方法分析,如 proc reg data=LDL_1; model Ldl=Trt; ods output ParameterEstimates=Parms_LDL1; run; data Parms_LDL1; /*提取需要用到的统计量*/ set Parms_LDL1; if Variable='Trt'; _Scale_='MLE'; _Stage_= 1; keep _Scale_ _Stage_ Variable Estimate StdErr; run; proc seqtest Boundary=Bnd_LDL /*Seqdesign中生成的界值*/ Parms(Testvar=Trt)=Parms_LDL1 /* 数据分析完成后获得的统计量 */ infoadj=prop; /* 根据现阶段信息校正的信息量,=None的话不校正,采用seqDesign中的结果 */ ods output Test=Test_LDL1; run;
因为程序中设定了infoadj=prop,所有后续各次期中分析时根据实际的数据信息校正了界值,输出结果中显示了seqDesign中预设的信息水平/界值和各次分析之后校正的后续几次分析的界值。各次分析实际的信息水平
网站
https://gsdesign.shinyapps.io/prod/
用R实现的,页面友好,可以直接输入相关参数,输出图示、试验相关信息及文本。