非劣效与等效性检验 Noninferiority and Equivalence Testing (NI / Equivalence)
明确治疗差方向和临床界值,用单侧置信下限判断非劣效,或用 TOST 判断治疗差是否完全落入等效区间。
统计原理
本页以连续终点且“数值越大越好”为例,定义治疗差
若正的临床损失上限为 ,非劣效检验为
在单侧 下,若 的 97.5% 单侧置信下限大于 ,即可拒绝“损失达到或超过界值”的原假设。等效性更严格:治疗差必须同时高于下界 且低于上界 。TOST 把它拆成两个单侧检验;在 时,等价判据是治疗差的 90% 双侧置信区间完全位于 内。
非劣效看单侧界值;等效要求整个置信区间同时落在上下界内。
界值不是从当前试验数据“算出来”的。它必须在揭盲前由临床意义、历史对照效应和保留效应比例共同论证,并写入方案/SAP。终点若“越小越好”,不等式和有利方向都要同步反转。
什么时候用
- 有效治疗已存在、安慰剂对照不适当,目标是证明新疗法的疗效损失不超过可接受界值时,用非劣效设计。
- 目标是证明两种制剂或治疗的差异同时不低于下界且不高于上界时,用等效性检验。
SAP 里长这样:
Noninferiority will be concluded if the lower bound of the one-sided 97.5% confidence interval for the treatment difference (Test minus Active Control) is greater than -2 points. Equivalence will be assessed by two one-sided tests using margins of -2 and 2 points.
必须同时看到:估计量方向、界值数值、置信水平、分析集以及界值的单位。只写“做非劣效检验”不足以编程。
适用条件速查卡
| 项 | 条件 |
|---|---|
| 本页终点 | 两个平行组的连续型终点,值越大越好 |
| 本页方向 | Test − Active Control;正值有利于 Test |
| 非劣界值 | ,判据为单侧 97.5% 下限 > -2 |
| 等效界值 | ,判据为 90% 双侧 CI 完全落入区间 |
| 关键设计条件 | 活性对照历史效应可解释、试验具有 assay sensitivity,界值预先论证 |
| 模型假设 | 组间独立;均值差模型合理;方差口径按 SAP 预设 |
| 分析集 | FAS/ITT 与 PP 的角色须按方案预设;非劣效结论通常需要检查二者一致性 |
核心 SAS 代码
proc import datafile="example.csv" out=ni dbms=csv replace;
guessingrows=max;
run;
data ni;
set ni;
if trt01p='Test' then trtord=1;
else if trt01p='Active Control' then trtord=2;
run;
proc sort data=ni;
by trtord;
run;
/* ORDER=DATA 读取上面的受控顺序,因此差值为 Test-Control。 */
proc ttest data=ni order=data test=diff h0=-2 sides=u alpha=0.025;
class trt01p;
var chg;
run;
proc ttest data=ni order=data test=diff tost(-2, 2) alpha=0.05;
class trt01p;
var chg;
run;
SIDES=U表示备择假设为均值差大于H0=-2,输出从下限延伸至正无穷的单侧 CI。TOST(-2,2)同时检验两个等效边界,并在EquivTests中给出整体 p 值与 Equivalent/Not equivalent 判断。TRTORD与ORDER=DATA固定这个教学数据的组间方向;正式程序应使用受控治疗顺序,并在输出中再次核对两列 CLASS 标签。
变量解释表
| 变量 | 含义 | 典型来源 |
|---|---|---|
| USUBJID | 受试者唯一标识 | ADSL.USUBJID |
| TRT01P | 计划治疗;Test 与 Active Control | ADSL.TRT01P |
| CHG | 目标访视较基线变化,本页数值越大越好 | ADEFF.CHG |
| 非劣效界值;本例为 2 分 | 方案/SAP,不是分析数据列 |
输出对照
以下数值由本页数据在 SAS 9.4 TS1M8 / SAS/STAT 15.3 实跑获得,采用 Satterthwaite 方差口径。抄数前仍要在输出的 Method 与两组标签中确认方向。
| SAS 输出 | 实跑值 | 对应 shell |
|---|---|---|
| Statistics / Difference Mean | 0.7333 | Test − Active Control 点估计 |
| TTests / Satterthwaite Lower CL | −0.0105 | 非劣效单侧 97.5% 下限;大于 −2 |
TTests / Satterthwaite Pr > t | <.0001 | 针对 的单侧 p-value |
| Equivalence Limits / 90% CI | (0.1158, 1.3508) | 等效性置信区间,完全位于 (−2,2) |
| EquivTests / overall p-value | 0.0008 | TOST p-value;Assessment=Equivalent |
非劣效 shell 必须同时显示 Test − Active Control、界值 −2、点估计和单侧下限;等效 shell 显示界值区间、90% CI 与 TOST 结论。
示例数据与程序
- example.csv — 30 例原创模拟平行组连续终点数据
- example.sas — 非劣效单侧检验与等效性 TOST 完整程序
常见坑
方向、界值与结论必须同时锁定
- 只写 margin=2:没有估计量方向和“越大/越小越好”,
+2与−2无法解释。 - 用观察数据反推界值:会把显著性目标伪装成临床目标;界值必须在揭盲前论证。
- 把未显著优效当成等效:优效检验不显著只表示证据不足,不等于 90% CI 落在两个等效界内。
- 忽略分析集和依从性:非劣效分析对偏倚方向敏感,FAS 与 PP 的角色不能分析后再决定。
- 非劣后直接宣称优效:是否可层级检验优效取决于预设假设序列与多重性策略。
方法边界依据:FDA Non-Inferiority Clinical Trials;SAS 语法依据:PROC TTEST 官方文档。
相关方法
- 率差及 Miettinen-Nurminen 置信区间 估计两个独立治疗组的应答率差及非对称 Miettinen-Nurminen 置信区间,并说明非分层适用边界。
- 多重性控制 先定义假设家族和检验顺序,再用 Bonferroni、Holm 或预设层级策略控制确认性结论的总体一类错误率。