跳到主要内容
临床统计方法速查站
方法分类

方差分析 Analysis of Variance (ANOVA)

比较三个及以上独立治疗组的连续终点均值,并给出总体 F 检验和按计划的两两比较。

统计原理

ANOVA 把总变异拆成组间变异和组内变异:

F=MSbetweenMSwithinF=\frac{MS_{\text{between}}}{MS_{\text{within}}}

若各组均值接近,组间均方不会明显大于组内均方,F 值接近 1;若治疗组均值相对组内波动明显分离,F 值增大。总体 F 检验控制一次总体假设,但后续多次两两比较仍需单独控制多重性。

示例数据驱动
把总变异拆成组间与组内

圆点是 24 个真实 CHG。滑杆只缩放组均值相对总均值的距离,保留每组内部残差,用来隔离 F 统计量的两个来源。

↔ 小屏可横向滑动;键盘聚焦后用左右方向键 ANOVA 的组间变异与组内变异 三列圆点分别表示 Placebo、Low Dose 和 High Dose 的真实变化值;短横线是组均值,虚线是总均值。 CHG(mmHg) Placebo · CHG -4.1 Placebo · CHG -2.4 Placebo · CHG -5.2 Placebo · CHG -1.7 Placebo · CHG -3.6 Placebo · CHG -4.6 Placebo · CHG -2.8 Placebo · CHG -3.9 Placebo Low Dose · CHG -7.1 Low Dose · CHG -5.8 Low Dose · CHG -8.1 Low Dose · CHG -4.9 Low Dose · CHG -6.7 Low Dose · CHG -6.2 Low Dose · CHG -7.6 Low Dose · CHG -5.4 Low Dose High Dose · CHG -10.6 High Dose · CHG -8.9 High Dose · CHG -11.8 High Dose · CHG -7.7 High Dose · CHG -9.7 High Dose · CHG -8.3 High Dose · CHG -11.1 High Dose · CHG -7.3 High Dose 总均值 −6.48

口径example.csv:Week 8 的 24 个 SBP CHG;100% 是原始示例,其他位置是标注过的教学反事实。

什么时候用

终点是连续型、治疗组有三个及以上,且目标是先检验是否存在总体组间差异时使用单因素 ANOVA。总体检验显著并不自动说明哪两组不同;两两比较和多重性处理须按 SAP 预先规定。

SAP 里长这样:

Change from baseline at Week 8 will be analyzed using a one-way analysis of variance (ANOVA) with treatment group as a fixed effect. The overall treatment effect will be assessed by an F-test, followed by prespecified pairwise comparisons of each active dose versus placebo.

看到 one-way ANOVA / F-test / overall treatment effect / pairwise comparisons,即可定位到本页。

适用条件速查卡

项条件
终点类型连续型
组数通常 3 组及以上独立样本
分析数据范围示例限定 PARAMCD='SBP'、AVISIT='Week 8'、ANL01FL='Y',每名受试者一行
主要假设观察独立、组内残差近似正态、组间方差齐性
不满足时先保持或通过 SAP 正式变更 estimand;只有事前预设多组分布/秩比较时才考虑 Kruskal-Wallis,不能因诊断结果自动切换;需校正基线 → ANCOVA;多访视 → MMRM

核心 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;

proc glm data=adeff;
  class trt01p;
  model chg = trt01p;
  means trt01p / hovtest=levene;       /* 方差齐性诊断 */
quit;

/* 同一个一因素固定效应模型;直接输出组间差、95% CI 和 p 值 */
proc mixed data=adeff;
  class trt01p;
  model chg = trt01p;
  lsmeans trt01p / diff=all cl;
run;
  • MODEL 的治疗效应 F 检验回答“至少有一组均值不同”。
  • 非平衡设计应读取 Type III SS;本例只有单一治疗效应,Type I 与 Type III 结论通常一致。
  • PROC GLM 提供总体 F 检验和 Levene 诊断;随后相同的一因素固定效应模型用 PROC MIXED 的 DIFF CL 直接输出差值、95% CI 与 p 值。
  • DIFF=ALL 会产生所有两两比较;正式输出只保留 SAP 指定的对比,并按方案处理多重性。

变量解释表

变量含义典型来源
USUBJID受试者唯一标识ADSL.USUBJID
TRT01P计划治疗组/剂量组ADSL.TRT01P
PARAMCD分析参数代码ADEFF.PARAMCD
AVISIT分析访视ADEFF.AVISIT
ANL01FL主分析记录标志ADEFF.ANL01FL
CHG目标访视较基线变化ADEFF.CHG

输出对照

以下为字段定位,不预填未经 SAS 9.4 核验的数值。

SAS 输出编号对应 shell
Type III SS 表的 F Value①Overall treatment effect 的 F statistic
Type III SS 表的 Pr > F②Overall treatment effect 的 p-value
Least Squares Means 的 LSMean③各组 LS Mean
Least Squares Means 的 Standard Error④各组 SE
Differences of Least Squares Means 的 Estimate⑤计划的组间差;按 TRT01P / _TRT01P 两列确认方向
Differences of Least Squares Means 的 Lower / Upper⑥组间差 95% CI
Differences of Least Squares Means 的 Pr > |t|⑦两两比较 p-value

典型剂量探索 shell 中,总体检验行填写 ① / ②,每个预设剂量与 Placebo 的比较行填写 ⑤ (⑥) 和 ⑦;是否展示调整后 p 值由 SAP 决定。

示例数据与程序

  • example.csv — Placebo、Low Dose、High Dose 三组共 24 例原创模拟数据
  • example.sas — 数据限定、Levene 诊断、总体检验和两两比较程序

常见坑

常见坑

  • 总体显著就宣称所有组均不同:F 检验只说明至少一组不同,具体差异来自预设对比。
  • 忽略多重性:多个剂量与对照、全部两两比较会增加假阳性,调整规则必须按 SAP。
  • 非平衡设计读错平方和:存在不等样本量或其他效应时,应使用方案指定的 Type III 结果。
  • 混入重复访视:单因素 ANOVA 假设观察独立,多访视记录应改用 MMRM。

监管与 SAS 实现依据:ICH E9《Statistical Principles for Clinical Trials》;SAS/STAT 15.3 PROC GLM 官方文档。

相关方法