组序贯与期中分析 Group Sequential Design and Interim Analysis (GSD)
在预设信息时点比较累计检验统计量与组序贯界值,在允许期中停止的同时控制总体 I 类错误。
统计原理
组序贯设计在 个预先计划的信息时点重复检验同一主要假设。第 次分析使用截至该数据截点的累计数据,通常以标准化统计量 表示;各次 共享受试者和事件,因此彼此相关,不能把每次分析都当作独立的 检验。
单侧优效性设计选择一组界值 ,使得在零假设下:
信息分数 描述第 次分析相对最终分析的信息量。对均值、率或回归系数,信息常与有效样本量近似成正比;对生存终点,常与累计事件数近似成正比。实际信息分数若偏离计划,应按方案指定的 alpha-spending 或边界调整规则处理,不能只按日历时间硬套原界值。
O’Brien–Fleming 型界值早期很高,只有极强证据才会提前拒绝 ;最终界值则接近固定样本设计的常规临界值。随附示例是三阶段、单侧 、仅允许因疗效停止的 O’Brien–Fleming 设计,不包含无效性界值。
多次查看数据会消耗 alpha;组序贯设计预先分配各次分析的界值。
方法与实现依据:FDA《Adaptive Designs for Clinical Trials of Drugs and Biologics》最终指南;SAS PROC SEQDESIGN 官方说明与示例。
什么时候用
确证性试验计划在主要终点积累到若干信息比例时,由独立数据监查委员会进行期中分析,并允许因压倒性疗效、无效性或安全性提前停止时,使用组序贯设计。它回答的是“在多次查看同一主要假设的情况下,当前证据是否越过预先控制总体错误率的界值”。
SAP 里长这样:
One interim analysis for efficacy will be performed after approximately 50% of the planned information is available. A group sequential design with an O’Brien–Fleming boundary will control the overall one-sided type I error at 0.025. The interim decision will be based on the actual information fraction and the prospectively specified efficacy boundary.
看到 interim analysis / group sequential / information fraction / alpha spending / O’Brien–Fleming / efficacy boundary,即可定位到本页。普通的盲态样本量复核、仅查看安全性而不影响主要检验,或未预设的“偷看结果”,不能直接套本页界值。
适用条件速查卡
| 项 | 条件 |
|---|---|
| 设计时点 | 分析次数、信息时点、单/双侧 、功效和停止类型在方案中预先指定 |
| 信息定义 | 明确 的计算;生存终点通常按事件数,其他终点按估计量方差或有效样本量 |
| 决策独立性 | 未盲态期中结果只提供给有授权的独立委员会,执行团队保持盲态 |
| 统计量一致性 | 各次分析的终点、模型、协变量、分层及缺失规则与最终分析一致或有预设映射 |
| 错误率 | 同一主要假设的全部期中与最终检验合计控制总体 I 类错误 |
| 运行数据 | 数据截点、清理程度、事件判定和实际信息分数可追溯 |
| 不适用时 | 未预设的重复查看;高度复杂自适应且解析界值不足时,应按方案做模拟验证 |
核心 SAS 代码
proc import datafile="example.csv"
out=interim_stats
dbms=csv replace;
guessingrows=max;
run;
proc sort data=interim_stats;
by stage;
run;
ods output Boundary=gs_boundary_raw;
proc seqdesign altref=0.35;
GSD: design nstages=3
method=obf
alt=upper
stop=reject
alpha=0.025 beta=0.10;
samplesize model=twosamplemean(stddev=1);
run;
ods output close;
data gs_boundary;
set gs_boundary_raw;
stage=_Stage_;
planned_information_fraction=_InfoProp_;
planned_total_n=ceil(NObs);
critical_z=Bound_UA;
keep stage planned_information_fraction planned_total_n critical_z;
run;
proc sort data=gs_boundary;
by stage;
run;
data stage_check;
merge interim_stats(in=in_data) gs_boundary;
by stage;
if in_data;
length decision $32;
boundary_crossed=(z_stat >= critical_z);
if missing(z_stat) then decision='Not yet observed';
else if boundary_crossed then decision='Cross efficacy boundary';
else decision='Continue to next look';
run;
proc print data=stage_check noobs;
run;
ALT=UPPER与ALPHA=0.025定义单侧上界;若目标是双侧、非劣效或同时有无效性停止,必须重写设计,不能只改结果解释。STOP=REJECT只生成拒绝零假设的早停规则;本例没有无效性边界。METHOD=OBF生成 O’Brien–Fleming 形状界值。若方案按 Lan–DeMets alpha-spending 和实际信息分数更新,应使用对应误差消耗方法及正式数据传递链。ALTREF=0.35、STDDEV=1只是原创模拟场景,用于演示样本量与边界;正式值必须来自方案假设。- 正式执行中通常用
PROC SEQTEST接收当前估计量和标准误,并延续上一阶段的 test information。这里的DATA步仅透明演示“观察到的 Z 与设计界值比较”,不替代受控的期中分析系统。
变量解释表
| 变量 | 含义 | 典型来源 |
|---|---|---|
| STAGE | 分析阶段,含期中与最终分析 | 方案 / DMC charter |
| INFORMATION_FRACTION | 当前实际信息量除以计划最终信息量 | 经冻结的数据截点与终点模型 |
| Z_STAT | 方向与方案一致的累计标准化检验统计量 | 当前主要分析估计值 / 标准误 |
_Stage_ | PROC SEQDESIGN 输出的计划阶段 | Boundary ODS 表 |
_InfoProp_ | 计划信息分数 | Boundary ODS 表 |
NObs | 对示例两样本均值模型推导的累计总样本量 | Boundary ODS 表 |
Bound_UA | 单侧上方 alpha 拒绝界值 | Boundary ODS 表 |
| DECISION | 本示例按 Z_STAT >= Bound_UA 生成的演示决策 | 派生变量;正式决策还需遵守 charter |
输出对照
随附程序已在 SAS 9.4 TS1M8 / SAS/STAT 15.3 上运行。对于示例参数,Boundary 表给出的三次上方 Z 界值约为 3.4711、2.4544、2.0040;模拟 Z_STAT 分别为 1.80、2.30、2.10,因此前两次继续,最终分析越界。数值仅说明程序闭环,不是临床结论。
| SAS 输出 | 编号 | 对应报告或决策记录 |
|---|---|---|
| Design Information / Alpha / Number of Stages | ① | 设计版本、总体单侧 、分析次数 |
Boundary Information / _InfoProp_ | ② | 每次计划信息分数 |
Boundary Information / Bound_UA | ③ | 各阶段疗效 Z 界值 |
| Sample Sizes / N | ④ | 各阶段计划累计样本量;生存设计则通常映射累计事件数 |
| STAGE_CHECK / Z_STAT | ⑤ | 当前冻结数据产生的累计检验统计量 |
| STAGE_CHECK / DECISION | ⑥ | Continue 或 Cross efficacy boundary 的程序化复核字段 |
正式期中包应同时留存数据截点、实际信息分数、模型输出、边界版本、独立复核和 DMC 决议,不能只截取一张 p 值表。
示例数据与程序
- example.csv — 3 个计划分析时点的原创模拟信息分数与累计 Z 统计量
- example.sas — O’Brien–Fleming 设计、边界输出、模拟统计量合并与阶段决策完整程序
常见坑
常见坑
- 把每次 p<0.025 都当成功:重复查看会膨胀总体 I 类错误;必须和该阶段的调整界值比较。
- 用日历进度代替信息分数:入组 50% 不一定等于事件或 Fisher 信息 50%,实际信息偏移需按预设规则处理。
- 临时增加一次期中分析:新增 look 会改变联合错误率;必须在揭盲前重新评价并有完整治理记录。
- 方向写反:效应估计、Z 统计量与 upper/lower boundary 的有利方向必须一致。
- 越界后仍按常规固定样本 CI 报告:序贯停止会影响估计和区间性质;报告方法须按方案预设。
- 泄露未盲态趋势:操作团队获知中期效应可能改变入组、随访或终点判定,破坏试验完整性。
- 把示例界值直接搬到正式试验:边界取决于侧数、、look、信息时点、停止类型和检验模型,必须为每个设计重新生成。
相关方法
- 贝叶斯借用与后验分析 将预先规定的先验分布与当前试验似然结合,得到治疗效应后验分布、可信区间和决策概率。
- 多重性控制 先定义假设家族和检验顺序,再用 Bonferroni、Holm 或预设层级策略控制确认性结论的总体一类错误率。