t 检验(两样本/配对) Student's t-test (t-test)
比较两个独立组的均值,或比较同一受试者两个时点的配对均值差。
统计原理
等方差两样本 t 统计量为:
Satterthwaite 方法不合并两组方差,并调整自由度。配对 t 检验先对每对观测求差,再对差值做单样本 t 检验,因此配对关系必须真实存在。
Week 8 SBP 变化量:Drug A − Placebo,默认展示 Pooled 95% CI。
t = θ̂ ÷ SE,θ̂ = x̄A − x̄P 选择或聚焦符号,图中的对应元素会同步加强显示。
小屏提示:图表已定位到点估计,可横向滑动;键盘聚焦后可用左右方向键查看完整坐标。
真实默认:Drug A / Placebo 各 10 例;CHG 均值 −9.17 / −3.66 mmHg
点估计 置信区间 固定参照
当前数值解释
真实默认:均值差 −5.51 mmHg,Pooled 95% CI 为 −6.96 至 −4.06 mmHg;区间整体低于 0,Drug A 的 SBP 下降更多。
解释边界:默认点和区间来自本页 example.csv / SAS 输出。滑杆只按默认上下限距离做几何推演,不会重新拟合数据,也不能替代 t、M–N、精确条件法或 RMST 的正式计算;虚线参照、非劣/等效界值与 RMST 的 τ 均保持锁定,绝不表示可在看过数据后修改方案或 SAP。
什么时候用
终点是连续型且只比较两个均值时使用 t 检验。两组受试者彼此独立时用两样本 t 检验;同一受试者治疗前后或匹配成对数据用配对 t 检验。
SAP 里长这样:
Change from baseline at Week 8 will be compared between treatment groups using a two-sample Satterthwaite t-test, prespecified as the primary analysis without a preliminary variance-test switch. The pooled-variance result and Folded-F test will be presented as supplementary diagnostics. A within-group change may be assessed using a paired t-test.
看到 two-sample t-test / paired t-test / equal variances / Satterthwaite,即可定位到本页。
适用条件速查卡
| 项 | 条件 |
|---|---|
| 终点类型 | 连续型 |
| 组数 | 独立样本恰好 2 组;配对样本恰好 2 个成对测量 |
| 分析数据范围 | 示例组间分析限定 PARAMCD='SBP'、AVISIT='Week 8'、ANL01FL='Y',每名受试者一行 |
| 主要假设 | 观察独立、组内近似正态;Pooled 结果还要求方差齐性 |
| 主方法 | 必须在 SAP 中预设;本页教学示例预设 Satterthwaite,不按 Folded-F 的 p 值切换 |
| 不满足时 | 重新检查 estimand、数据生成机制与稳健性分析;不能仅因正态性检验或 Folded-F 结果事后换方法 |
核心 SAS 代码
proc import datafile="example.csv" out=adeff_raw dbms=csv replace;
guessingrows=max;
run;
data adeff;
set adeff_raw;
where paramcd='SBP' and avisit='Week 8' and anl01fl='Y';
run;
/* 主示例:两个独立治疗组;SAP 预设 Satterthwaite 为主方法 */
ods output Statistics=two_sample_statistics
TTests=two_sample_tests
Equality=variance_diagnostic;
proc ttest data=adeff;
class trt01p;
var chg;
run;
ods output close;
title "Prespecified primary analysis: Satterthwaite";
proc print data=two_sample_statistics(where=(upcase(method)='SATTERTHWAITE')) noobs;
run;
proc print data=two_sample_tests(where=(upcase(method)='SATTERTHWAITE')) noobs;
run;
title;
/* 配对示例:仅 Drug A 组内 AVAL 与 BASE 成对比较 */
proc ttest data=adeff(where=(trt01p='Drug A'));
paired aval*base;
run;
CLASS变量必须只有两个水平;若有三个及以上治疗组,应转到 ANOVA。- 本页把 Satterthwaite 作为事前预设的教学主方法;
TWO_SAMPLE_STATISTICS提供该行的均值差与 CI,TWO_SAMPLE_TESTS提供 t、自由度与 p 值。若正式 SAP 预设 Pooled,则始终读取 Pooled 行,而不是运行后再看 Folded-F 改口径。 Equality of Variances/ Folded-F 只用于诊断方差假设;它不能证明方差相等,也不能作为 Pooled 与 Satterthwaite 的自动切换开关。PAIRED aval*base检验的是同一行内AVAL - BASE,不能把独立两组误写成配对设计。
变量解释表
| 变量 | 含义 | 典型来源 |
|---|---|---|
| USUBJID | 受试者唯一标识 | ADSL.USUBJID |
| TRT01P | 计划治疗组 | ADSL.TRT01P |
| PARAMCD | 分析参数代码 | ADEFF.PARAMCD |
| AVISIT | 分析访视 | ADEFF.AVISIT |
| ANL01FL | 主分析记录标志 | ADEFF.ANL01FL |
| BASE / AVAL / CHG | 基线值、分析值及较基线变化 | ADEFF |
输出对照
以下为字段定位;先按 SAP 冻结主方法,再映射该方法对应行。本页教学示例固定读取 Method='Satterthwaite'。
Equality of Variances / T-Tests
| 输出字段 | 编号 | 对应 shell |
|---|---|---|
| Folded F 的 Pr > F | ① | 补充诊断;不得据此切换主方法 |
| Method(本页为 Satterthwaite) | ② | SAP 事前预设的主结果行 |
| Mean Diff | ③ | 组间均值差 |
| 95% CL Mean Diff(Lower, Upper) | ④ | 组间差 95% CI |
| Pr > |t| | ⑤ | 双侧 p 值 |
典型疗效 shell 的 Mean Difference (95% CI) 填写 ③ (④),p-value 填写 ⑤。① 只作为模型诊断,不能用来选择 ②;若主要方差方法未在 SAP 中预设,应先澄清分析规范,不能由程序运行结果替代设计决策。
示例数据与程序
- example.csv — 20 例、两治疗组、单目标访视的原创模拟数据
- example.sas — 两样本与配对 t 检验完整程序
常见坑
常见坑
- Folded-F 预检后切换主行:这种数据驱动的两阶段规则会改变整体检验性质;主方法必须由 SAP 事前预设,Folded-F 仅作诊断。
- 把独立样本当配对样本:配对检验要求同一受试者或预先定义的匹配对。
- 三组以上反复做 t 检验:会膨胀 I 类错误,应使用 ANOVA 并处理多重比较。
- 未冻结目标记录:混入多个访视会破坏独立性并重复计入受试者。
SAS 输出语义依据:PROC TTEST 官方说明。该文档同时给出 Pooled 与 Satterthwaite 结果,并提醒不显著的 Folded-F 只表示缺少方差不同的证据,不能证明方差相等。预检后再选择检验的错误率影响参见:Zimmerman (2004), A note on preliminary tests of equality of variances。
相关方法
- 协方差分析 校正基线值后的组间连续终点比较,输出 LS Mean 及组间差(95% CI)。
- Wilcoxon 秩和 / 符号秩检验 用秩而非原始数值比较两组独立样本,或检验配对差值的位置变化。