协方差分析:基线不齐时如何比较两组疗效

某研究回顾性纳入 40 例 2 型糖尿病患者,比较两种口服降糖方案治疗 12 周后的血糖控制情况。方案 A 为二甲双胍联合 DPP-4 抑制剂,方案 B 为二甲双胍联合磺脲类,两组各 20 例,疗效指标是糖化血红蛋白(HbA1c,%)。

治疗 12 周后,A 组 HbA1c 为 6.65±0.69%,B 组为 6.67±0.70%,两组相差 0.02%,独立样本 t 检验 t=−0.09,P=0.93。照这个结果写结论,两种方案降糖效果相当。

这个结论是错的。问题出在起点。

入组时 A 组 HbA1c 为 8.57±0.90%,B 组为 7.95±0.85%,A 组平均高出 0.62%,差异有统计学意义(t=2.26,P=0.029)。两组的终点值看着一样,但 A 组是从更差的水平降下来的:A 组平均下降 1.93±0.47%,B 组下降 1.28±0.41%。同样是 6.6% 左右的终点,一个起点是 8.6%,另一个是 7.9%,这两件事的临床含义并不相同。

终点值相同,为什么会得出相反的答案

关键在于基线在两组之间不均衡,而基线本身又是终点最强的预测因素。本例中基线与终点的相关系数约为 0.87。当这样一个变量同时与分组有关、又与结局有关时,它就是一个混杂因素。直接比较终点值,等于把两组的基线差异一并算进了疗效里。

A 组基线更高,而 HbA1c 存在"回归到均值"的现象——基线偏高的个体,即使不做任何干预,复测时也倾向于向均值回落。所以基线高的 A 组天然会有更大的降幅。两组终点打平,既可能是 A 方案真的更强,也可能只是回归到均值的假象。单看终点值,无法区分这两种解释。

协方差分析在做什么

协方差分析(analysis of covariance,ANCOVA)把基线作为协变量放进模型,同时估计基线的回归系数和组间效应:

终点 HbA1c = 常数 + b₁×基线 HbA1c + b₂×组别

其中组别取 A=1、B=0。这个式子回答的问题是:如果两组的基线处在同一水平,它们的期望终点分别是多少。基线差异被"扣除"之后,剩下的才是组间效应。

本例拟合结果为:

终点 HbA1c = 1.191 + 0.689×基线 HbA1c − 0.451×组别

组别系数 −0.451(95%CI:−0.688~−0.213),t=−3.84,P=0.0005。也就是说,在基线相同的前提下,A 组的期望 HbA1c 比 B 组低 0.45 个百分点。令两组基线都取总体均数 8.26%,得到的调整均数为 A 组 6.43%、B 组 6.88%,差距 0.45 个百分点——同一个模型换一种表达方式而已。

方差分析部分:组别 F=14.75,df=(1,37),P=0.0005,偏 η²=0.285;基线 F=113.27,P<0.001,偏 η²=0.754。基线对终点的解释力远大于分组,这也从侧面说明,把它排除在模型之外会损失多少信息。

换一种说法:调整基线后的结论

把上面两个结果放在一起看,本例的完整结论应该是:两组治疗 12 周后的 HbA1c 终点值接近,但 A 组基线更高;在校正基线差异后,A 组比 B 组多降低约 0.45 个百分点(95%CI 0.21~0.69),差异有统计学意义。至于这 0.45 个百分点有没有临床意义,又是另一个需要结合指南阈值来判断的问题——统计学显著并不自动等于临床重要。

能不能用变化值代替

既然终点值相同、基线不同,一个自然的想法是比较"下降幅度"。本例变化值为 A 组 1.93±0.47%、B 组 1.28±0.41%,t=4.66,P<0.001,同样得到显著差异,看上去比协方差分析更"干脆"。

但变化值分析隐含了一个假设:终点与基线的回归系数等于 1。也就是它认为,无论基线是多少,个体都会以同样的幅度改变。本例实际估计出的系数是 0.689,明显不等于 1。当真实系数小于 1 时,用变化值做比较会系统性放大基线较高那一组的疗效,因为它把回归到均值的部分算成了治疗效果。协方差分析不预设这个系数,而是从数据里估计它,因此在基线不齐时更可靠。

反过来说,如果两组基线均衡(例如样本量充足的随机对照试验),变化值和协方差分析的结论通常是一致的,这时用哪个差别不大。协方差分析真正不可替代的场合,正是基线不齐的非随机资料——回顾性队列、真实世界研究、单臂对照等。

用之前要确认的几件事

协方差分析的结论建立在几条假设上,报告结果时应当一并给出检验结果。

回归线的平行性,也叫斜率齐性。它要求两组的"终点对基线"回归斜率相同,模型才可以用一个共同的 b₁。检查办法是在模型里加入组别与基线的交互项:本例交互项系数 −0.070,t=−0.53,P=0.597,两条回归线近似平行,条件满足。如果交互项显著(P<0.05),说明基线对终点的影响在两组间不同,此时不宜报告单一的调整均数差,应当分别给出两组的回归式,或者改用其他模型。

线性关系。协方差分析假定终点与基线近似线性相关。基线是连续变量的场合,可以先画散点图看一眼;如果关系明显弯曲,可考虑对基线做变换或加入二次项。

残差的正态性与方差齐性。本例残差的 Shapiro-Wilk 检验 W=0.981,P=0.725;基线在两组间的方差齐性检验(Levene 法)P=0.681,都可以接受。

协变量必须是"分组之前"测量的。基线 HbA1c 是入组时测的,在分组之前,作为协变量是合适的。但把治疗过程中某个中间变量(比如 6 周时的血糖)放进模型就不对了——那是分组之后的结果,属于中介变量,校正它会掩盖真实的组间差异,甚至把效应完全"校正掉"。

协变量不能有大的测量误差。如果基线本身就是个测得很粗糙的指标,校正会不充分,剩下的偏差仍然会留在结论里。

不要在基线范围之外外推。本例基线范围大致是 5.3%~10.4%,模型给出的调整结果只在这个区间内成立。若把它用于基线 12% 的患者,结论未必成立。

最后一点常被忽略:协方差分析校正的是"测量到的"基线差异。如果还存在没测到的组间不均衡(比如病程、用药依从性、饮食控制),协方差分析并不能替你消除它们,这些因素需要在设计阶段考虑,或者在敏感性分析中讨论。

在软件里怎么做

把数据整理成三列——分组、基线值、终点值,一行一个观察对象——在医学统计助手中选择协方差分析,指定分组变量、协变量与结局变量即可,软件会输出组别与协变量的系数、标准误、t 值、P 值与置信区间,以及调整后的组间均数差和偏 η²。若要顺手核对斜率齐性,再跑一次带交互项的模型就能看出两条回归线是否平行。

文末附表给出本例的 40 例原始数据,可以自己复核上面的每一个数字。

编号A组基线A组终点B组基线B组终点
18.96.67.97.1
210.27.87.96.4
310.48.17.46.1
48.76.17.36.4
57.36.58.36.8
68.56.28.77.7
78.86.88.06.8
87.35.67.66.8
97.96.58.97.3
109.37.29.27.6
119.87.77.76.7
127.26.27.65.7
138.86.65.34.7
148.36.68.76.6
158.76.77.76.0
167.65.47.46.6
178.96.98.67.4
188.26.78.67.2
198.56.88.67.0
208.15.97.56.4