场景案例 ·

临床试验数据分析全流程 — AI 一句话完成 RCT 基线均衡/组间比较/ITT/生存分析/CONSORT

随机对照试验(RCT)统计全攻略:AI 一句话完成基线均衡性检验、t/ANOVA/卡方组间比较、协变量调整 ANCOVA、意向性分析 ITT、KM 生存曲线/Cox 回归、亚组分析,自动输出符合 CONSORT 规范的论文报告。

随机对照试验(RCT)是循证医学的金标准,但它的数据分析从来就不简单:基线均衡要不要检验?ITT 集和 PP 集怎么区分?协变量调整用什么方法?生存分析如何加入?亚组交互检验往往被忽略……这篇文章带你走完 RCT 分析的全部关键步骤,并展示如何用 AI 一句话搞定每一步。

为什么 RCT 的统计分析比普通研究更复杂

随机对照试验拥有最高级别的证据等级,但这背后是更严格的分析规范:

  • 设计复杂:随机化、分层、盲法、多中心——每个设计特征都对应特定的统计处理
  • 分析集多:意向性分析(ITT)、符合方案集分析(PP)、安全性集(SS)需分别报告
  • 终点类型多:连续结局(均值差)、二分类结局(率差/OR/RR)、时间到事件结局(HR/KM 曲线)同时存在
  • 缺失数据处理:临床试验缺失不可忽视,多重插补(MI)或混合效应模型是标准方法
  • 报告规范严格:CONSORT 2010 核对清单要求 25 个条目,缺项直接被编辑退稿

ChatSRS 把这些专业分析压缩到对话层级,60 秒完成 RCT 全流程。

RCT 分析的 6 个核心步骤

步骤 1:基线均衡性检验(Table 1)

步骤 2:主要终点组间比较

步骤 3:协变量调整(ANCOVA)

步骤 4:意向性分析(ITT)与符合方案集分析(PP)

步骤 5:生存分析(KM 曲线 + Cox 回归)

步骤 6:亚组分析与交互检验


案例数据:新型降压药 RCT(2 臂 Phase III)

假设你正在分析一项 III 期随机对照试验:

trial_arm      分配组别(0 = 安慰剂,1 = 新药)
age            年龄(连续)
sex            性别(0 = 女,1 = 男)
bmi            BMI(连续)
baseline_sbp   基线收缩压(mmHg,连续)
baseline_dbp   基线舒张压(mmHg,连续)
comorbidity    基线合并症(0 = 无,1 = 有)
sbp_wk12       第 12 周收缩压(主要终点)
sbp_wk24       第 24 周收缩压
event          心血管事件(0 = 无,1 = 有)
time_to_event  随访时间(周)
site           研究中心(A/B/C/D)
completed      是否完成方案(0 = 脱落/失访,1 = 完成)

380 名高血压患者,按 1:1 随机分配,主要终点为第 12 周收缩压变化量(从基线至第 12 周)。


步骤 1:基线均衡性检验(Table 1)

为什么要检验基线均衡性

随机化的目的是让两组在基线特征上尽量均衡,但"尽量"不等于"一定"。基线均衡性检验是 CONSORT 要求的第一张表格,用于:

  1. 报告两组基线特征的描述统计
  2. 通过统计检验或标准化差值(SMD)评估均衡程度
  3. 识别可能影响结果解读的潜在混杂

注意:对随机化后的基线均衡性做 p 值检验,在方法学上有争议(CONSORT 2010 不推荐)。SMD(标准化均值差)|SMD| < 0.10 是更广泛使用的均衡标准,不受样本量影响。两种方法 ChatSRS 均支持。

在 chatsrs.com 上传数据,输入:

"按 trial_arm 分组,生成 RCT 基线均衡性 Table 1:

  1. 连续变量(age、bmi、baseline_sbp、baseline_dbp)报告均数 ± 标准差,t 检验或 Wilcoxon;正态性先用 Shapiro-Wilk 检验
  2. 分类变量(sex、comorbidity、site)报告频率(%),卡方检验或 Fisher 精确检验
  3. 同时计算每个变量的标准化均值差(SMD),|SMD| < 0.10 为均衡
  4. 输出 CONSORT 风格三线表,注明检验方法"

输出:基线特征 Table 1

表 1  研究对象基线特征(N = 380)

变量                     新药组(n=190)          安慰剂组(n=190)       统计量           p        SMD
年龄(岁)               58.3 +/- 9.1             57.8 +/- 9.4            t = 0.52         .602     0.054
性别(男,%)             52.6%                    50.5%                   chi^2 = 0.17     .680     0.042
BMI(kg/m^2)           26.4 +/- 3.2             26.8 +/- 3.5            t = -1.15        .250     0.119
基线收缩压(mmHg)       152.4 +/- 14.8           153.1 +/- 15.2          t = -0.45        .651     0.046
基线舒张压(mmHg)       92.6 +/- 9.3             93.0 +/- 9.7            t = -0.40        .690     0.041
合并症(有,%)          38.4%                    40.0%                   chi^2 = 0.10     .754     0.032
研究中心(A/B/C/D)      47/49/47/47              48/48/46/48             chi^2 = 0.08     .994     —

注:连续变量以均数 +/- 标准差报告;正态性 Shapiro-Wilk 检验 p > .10(均满足);分类变量以频率(%)报告。
   SMD = 标准化均值差,|SMD| < 0.10 提示良好均衡,|SMD| < 0.20 可接受。
   BMI 的 SMD = 0.119,略超 0.10 临界值,需在敏感性分析中纳入协变量调整。

解读要点:所有 p 值均 > .05,7 项基线特征中 6 项 SMD < 0.10,BMI SMD = 0.119 稍高,随机化整体成功。


步骤 2:主要终点组间比较

主要终点分析:第 12 周收缩压变化量

主要终点是从基线到第 12 周收缩压的变化量(sbp_wk12 - baseline_sbp),即 delta_sbp_12。

在 chatsrs.com 输入:

"计算每位患者的 delta_sbp_12(= sbp_wk12 - baseline_sbp),对 ITT 集(所有随机化患者)做:

  1. 两组描述统计(均数 ± SD,95% CI)
  2. 独立样本 t 检验(检验方差齐性,不齐则 Welch)
  3. 效应量 Cohen's d
  4. APA 医学格式完整报告句式"

输出:主要终点 Table 2

表 2  主要终点:第 12 周收缩压变化量(ITT 集,N = 380)

                         新药组(n=190)    安慰剂组(n=190)    均值差(95% CI)          t           p         Cohen's d
delta_sbp_12(mmHg)    -18.4 +/- 11.2    -8.7 +/- 10.6        -9.7(-12.0, -7.4)      -8.22      <.001 ***   0.89

Levene 方差齐性:F(1,378) = 1.24,p = .266(方差齐,使用标准 t 检验)

结论:新药组收缩压变化量(-18.4 mmHg)显著大于安慰剂组(-8.7 mmHg),
     两组均值差为 -9.7 mmHg,95% CI [-12.0, -7.4],Cohen's d = 0.89(大效应)。

步骤 3:协变量调整(ANCOVA)

CONSORT 推荐:若随机化时用了分层因素,或基线存在不均衡变量,主要分析应使用 ANCOVA(协方差分析),以基线值和预设协变量作为协变量,提高检验效能。

在 chatsrs.com 输入:

"以 delta_sbp_12 为因变量,trial_arm 为处理因素,以 baseline_sbp、age、sex、bmi 为协变量,做 ANCOVA。 输出:

  1. ANCOVA 方差分析表(各效应 F 值、df、p、偏 eta 平方)
  2. 校正后处理组均值(Estimated Marginal Means,EMM)+ 95% CI
  3. 组间 EMM 差值 + 95% CI + 效应量(偏 eta 平方)
  4. 同质性假设检验(Levene 检验)+ 回归斜率同质性检验"

输出:ANCOVA Table 3

表 3  主要终点协变量调整分析(ANCOVA,ITT 集)

效应              SS            df    MS            F          p          偏 eta^2
处理因素          8421.4        1     8421.4        84.72     <.001 ***   0.186
基线收缩压        12846.3       1     12846.3       129.24    <.001 ***   0.255
年龄              312.8         1     312.8         3.15      .077        0.008
性别              88.4          1     88.4          0.89      .346        0.002
BMI               428.6         1     428.6         4.31      .039 *      0.011
误差              37218.1       374   99.5          —         —           —

校正后处理组均值(EMM):
  新药组:-18.2 mmHg(95% CI: -19.6, -16.8)
  安慰剂组:-8.9 mmHg(95% CI: -10.3, -7.5)
  组间差值(新药 - 安慰剂):-9.3 mmHg(95% CI: -11.1, -7.5),p < .001***,偏 eta^2 = .186

Levene 检验:F(1, 378) = 1.18,p = .279(同质性满足)
回归斜率同质性检验:F(1, 373) = 0.84,p = .360(交互不显著,ANCOVA 前提成立)

解读:控制基线 SBP、年龄、性别、BMI 后,新药组较安慰剂组多降低 9.3 mmHg(p < .001),偏 eta^2 = .186(大效应)。


步骤 4:意向性分析(ITT)vs 符合方案集分析(PP)

ITT 与 PP 的区别

分析集定义用途
ITT(Intention-to-Treat)所有随机化患者,无论是否完成治疗主要分析,保守估计(有利于安全性)
mITT(Modified ITT)接受至少 1 次治疗的随机化患者常见折中方案
PP(Per-Protocol)符合方案完成整个治疗的患者敏感性分析,估计依从下的效应
SS(Safety Set)接受至少 1 次治疗的患者安全性分析

CONSORT 要求同时报告 ITT 和 PP 分析,若结论一致则增加可信度;若不一致需讨论原因。

在 chatsrs.com 输入:

"比较 ITT 集和 PP 集(completed = 1)的主要终点分析结果:

  1. 先报告各分析集的样本量(脱落率、脱落原因摘要)
  2. 分别做 ANCOVA(协变量同步骤 3),输出 EMM 差值 + 95% CI + p
  3. 两个分析集结果并排汇总表
  4. 对缺失数据做多重插补(MI,m=20)敏感性分析,报告插补后主要结果"

输出:ITT vs PP 汇总 Table 4

表 4  ITT 集与 PP 集主要终点对比

                        ITT 集(N=380)          PP 集(N=338)
新药组 n                190                      168
安慰剂组 n              190                      170
脱落数(脱落率)        42(11.1%)              —
  — 失访                18(4.7%)              —
  — 不良事件            12(3.2%)              —
  — 撤回知情同意        12(3.2%)              —

ANCOVA 组间 EMM 差值:
  新药 - 安慰剂          -9.3 mmHg               -10.1 mmHg
  95% CI                [-11.1, -7.5]            [-12.2, -8.0]
  p                     <.001 ***                <.001 ***
  偏 eta^2              .186                     .201

多重插补敏感性(m=20):-9.1 mmHg(95% CI: -11.0, -7.2),p < .001***

结论:ITT、PP、MI 三套分析结论一致,新药组降压效果显著优于安慰剂组,
     结果的稳健性得到证实。

步骤 5:生存分析(次要终点—心血管事件)

若次要终点是"首次心血管事件的发生时间",则需要完整的生存分析流程。

在 chatsrs.com 输入:

"以 time_to_event 为随访时间、event 为结局状态(1 = 心血管事件,0 = 删失),按 trial_arm 分组,做:

  1. Kaplan-Meier 生存曲线(含 95% CI 阴影,Number at Risk 表)
  2. Log-rank 检验
  3. 各组心血管事件发生率(12/24 周累计发生率 + 95% CI)
  4. 多因素 Cox 比例风险回归(协变量:age、sex、bmi、baseline_sbp、comorbidity)
  5. Schoenfeld 残差检验比例风险假设
  6. 医学期刊格式文字描述"

输出:生存分析 Table 5

表 5  次要终点:心血管事件生存分析(ITT 集,N = 380)

                    新药组(n=190)    安慰剂组(n=190)
事件数              24(12.6%)        38(20.0%)
12 周累计事件率      6.3%(95% CI: 3.4, 9.3)       11.1%(95% CI: 7.4, 14.7)
24 周累计事件率      12.6%(95% CI: 8.0, 17.1)      20.0%(95% CI: 14.5, 25.4)

Log-rank 检验:chi^2(1) = 5.84,p = .016 *

Cox 比例风险回归(多因素):
  治疗组(新药 vs 安慰剂):HR = 0.58,95% CI [0.34, 0.98],p = .042 *
  年龄(每岁):HR = 1.04,95% CI [1.01, 1.08],p = .018 *
  合并症(有 vs 无):HR = 2.12,95% CI [1.20, 3.74],p = .009 **
  基线 SBP(每 mmHg):HR = 1.02,95% CI [0.99, 1.05],p = .148

Schoenfeld 残差全局检验:chi^2(4) = 2.18,p = .703(比例风险假设成立)

可直接复制的结果段落

Kaplan-Meier 分析显示,新药组 24 周心血管事件累计发生率(12.6%,95% CI [8.0, 17.1])显著低于安慰剂组(20.0%,95% CI [14.5, 25.4]),Log-rank chi^2(1) = 5.84,p = .016。多因素 Cox 比例风险回归显示,控制年龄、性别、BMI、基线血压和合并症后,新药组心血管事件风险较安慰剂组降低 42%(HR = 0.58,95% CI [0.34, 0.98],p = .042)。Schoenfeld 残差全局检验提示比例风险假设成立(chi^2(4) = 2.18,p = .703)。


步骤 6:亚组分析与交互检验

亚组分析常见于 RCT,但方法学陷阱极多。交互检验(而非各亚组内分别做 t 检验)才是正确方法。

为什么不能只做亚组内 p 值

错误做法正确做法
在各亚组内分别做 t 检验,各自报告 p 值建立处理 × 亚组交互项,报告交互 p 值
"年轻患者新药有效(p = .01),老年无效(p = .12)""年龄分组的交互 p = .18,提示无显著效应修饰"
亚组 p 显著就报告为"发现"交互 p > .05 时亚组差异可能只是偶然

在 chatsrs.com 输入:

"做亚组分析:亚组变量为 sex(男/女)、comorbidity(有/无)、age_group(< 60 / >= 60)。

  1. 对每个亚组,做处理组 × 亚组变量的交互效应检验(ANCOVA 加交互项),报告交互 F 值和 p 值
  2. 各亚组内的校正 EMM 差值(95% CI)
  3. 输出亚组森林图,标注交互 p 值
  4. 说明多重比较问题(Bonferroni 校正后的交互 alpha = .05/3 = .017)"

输出:亚组分析 Table 6

表 6  亚组分析:处理效果的一致性(ANCOVA,ITT 集)

亚组            亚组内组间差值(EMM, mmHg)    95% CI           交互 F         交互 p
性别
  男(n=195)   -9.8                           [-12.5, -7.1]     F(1,374) =     .512(不显著)
  女(n=185)   -8.7                           [-11.4, -6.0]     0.43
合并症
  有(n=149)   -11.2                          [-14.6, -7.8]     F(1,374) =     .184(不显著)
  无(n=231)   -8.2                           [-10.5, -5.9]     1.77
年龄分组
  < 60岁(n=198) -10.1                        [-12.9, -7.3]     F(1,374) =     .320(不显著)
  >= 60岁(n=182) -8.4                        [-11.3, -5.5]     1.00

Bonferroni 校正显著水平:alpha = .017;3 项交互检验均 p > .017,
提示处理效果在各亚组间一致,不存在显著的效应修饰。

CONSORT 规范报告要点

CONSORT 2010 要求 RCT 报告包含以下统计内容:

CONSORT 条目内容本案例
17a主要次要结局的估计值及精确性(95% CI)EMM 差值 -9.3 mmHg,95% CI [-11.1, -7.5]
17b二元结局同时报告绝对风险与相对风险事件率 12.6% vs 20.0%,HR = 0.58
18亚组分析和探索性分析交互检验,标注假设验证/探索性
19所有意向性分析和符合方案分析ITT + PP + MI 敏感性
12敏感性分析多重插补(m=20)
14a每个研究臂的脱落人数和原因脱落 42/380(11.1%)

在 chatsrs.com 输入:"生成 CONSORT 风格的结果章节摘要,包含所有必报条目,英文/中文双版本",ChatSRS 自动核对清单并输出。


RCT 统计方法节(可直接复制)

以下模板可直接用于论文 Methods 章节:


统计分析

所有统计分析均采用 R 4.4(R Foundation for Statistical Computing)实施。主要分析集为意向性分析集(ITT),包含所有随机化患者;符合方案集(PP)分析作为敏感性分析。

基线特征采用描述统计报告:连续变量以均数 ± 标准差表示,组间比较采用独立样本 t 检验;正态性假设违反时采用 Wilcoxon 秩和检验。分类变量以频率(%)表示,组间比较采用 Pearson 卡方检验或 Fisher 精确检验(期望频数 < 5 时)。随机化均衡程度以标准化均值差(SMD)量化,|SMD| < 0.10 为均衡。

主要终点(第 12 周收缩压变化量)采用协方差分析(ANCOVA),以处理组为固定效应,以基线收缩压、年龄、性别、BMI 为协变量,报告校正后处理组均值(EMM)差值及 95% CI。

次要终点(首次心血管事件)采用 Kaplan-Meier 法估计生存函数,Log-rank 检验比较组间差异;多因素 Cox 比例风险回归报告调整风险比(aHR)及 95% CI,比例风险假设以 Schoenfeld 残差检验验证。

亚组分析通过引入处理组与亚组变量的交互项来检验效应修饰,交互检验采用 Bonferroni 法校正(显著水平 alpha / 亚组数)。缺失数据采用链式方程多重插补(MICE,m = 20)敏感性分析。所有检验均为双侧,检验水准 alpha = .05(另有说明除外)。


常见 FAQ

Q1:RCT 的基线均衡性检验,到底该不该做 p 值检验?

A:这是争议了 20 年的问题。CONSORT 2010 明确指出,对随机化后的基线差异做 p 值检验"在逻辑上是不合适的",因为任何差异都是随机产生的,而非系统性偏倚。目前推荐方法是报告标准化均值差(SMD):|SMD| < 0.10 均衡,0.10-0.20 轻度不均衡,> 0.20 需纳入协变量调整。如果期刊明确要求 p 值,报告即可,但不应据此声称"两组有/无显著差异",因为这句话在随机化语境下意义不大。

Q2:ITT 分析遇到大量缺失数据怎么办?"末次观测结转(LOCF)"还能用吗?

A:LOCF(Last Observation Carried Forward)已被主流监管机构(FDA/EMA)和方法学界基本否定。LOCF 假设"患者脱落后结局保持不变",这在大多数情况下不现实,可能系统性高估疗效。当前推荐方法:**链式方程多重插补(MICE)**用于 MAR(随机缺失)假设下,**混合效应重复测量模型(MMRM)**是临床试验最推荐的主要分析方法,MNAR(非随机缺失)情形下需做控制归因(Control-Based Imputation)敏感性分析。在 ChatSRS 输入"用 MMRM 分析纵向数据,处理缺失值"即可。

Q3:Cox 回归给出的 HR 和 Logistic 回归给出的 OR 有什么区别?

A:两者回答的是不同问题。OR(优势比) 来自 Logistic 回归,描述某时间点(截面)上结局发生优势之比,与时间无关。HR(风险比/危险比) 来自 Cox 回归,描述在任意时刻发生事件的瞬时风险之比,是时间依赖的效应量。对于罕见事件(发生率 < 10%),OR ≈ RR 近似成立;但 HR 是时间依赖的瞬时风险比,与 OR/RR 概念不同,有随访时间数据时应用 Cox 回归单独报告 HR,不能与 OR/RR 互换。但当事件常见时,OR 会高估相对风险。临床试验的时间到事件终点应使用 Cox 回归报告 HR,不能用 Logistic 回归的 OR 替代。

Q4:亚组分析发现显著结果,能不能作为主要结论?

A:不能。亚组分析(尤其是探索性亚组)面临严重的多重比较问题:10 个亚组的探索性检验,仅凭偶然就有约 40% 的概率出现至少一个"显著"结果(alpha = .05 时)。CONSORT 要求:(1)区分预设亚组分析(Protocol 中已写明)和事后探索性分析;(2)交互检验显著才能声称效应修饰,亚组内 p 值显著而交互 p 不显著时,不构成效应修饰的证据;(3)探索性亚组发现只能作为"假说生成",需独立研究验证。ChatSRS 会在报告中自动标注"探索性,交互 p 值见注"。

Q5:多中心 RCT 需要额外处理研究中心效应吗?

A:是的。多中心试验中,各研究中心可能存在系统性差异(如患者来源、操作规范、医生水平),忽视中心效应会导致标准误低估。推荐做法:在 ANCOVA 中将研究中心(site)作为固定效应或随机效应纳入模型;若中心数量较多(> 5),用混合效应模型(中心作为随机截距)更合理。ChatSRS 支持"加入 site 为随机效应,做混合效应 ANCOVA"的完整分析。


相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。