如何将分类变量纳入线性回归模型,以及如何将预测变量分配到不同组中并验证组间差异? Mark Lunt 教授在 Medscape 上为大家介绍了分类变量的处理方法,并解释了利用「相互作用项」测试组间差异的原理。
二分类变量
最简单的分类变量是仅有两个值的类型,如:性别、牛皮癣病史等。如果我们用「X」来代表分类变量,那么回归方程就变成了:Y = β0 + β1 * X +ε,其中β0 为回归直线在 Y 轴上的截距,β1 为回归系数(斜率),ε为误差项(平均值为 0)。如果我们组 1 选定 X = 0,组 2 选定 X = 1,那么两组 Y 的平均值就分别为:β0 、β0+β1,即回归系数β1 就是两组间的差异的平均值。
我们以 Lie 等的一篇论文为例,研究中发现在「SSZ 治疗组」疗后 6 个月时 DAS28 的变化量是 -1.0,而 MTX 治疗组变化量则是 -1.5。他们在回归中创建的变量叫做「mtx」,在 SSZ 组取 X = 0,在 MTX 组取 X = 1,并以此进行线性回归,最终得出的线性回归方程式可以表达为:ΔDAS28 = 1.0 - 0.5 * mtx +ε。
此处计算回归系数的方法和前文我们介绍的方法完全相同。同时需要取β1 = 0 进行无效假设以验证两组间是否存在明显的统计学差异。我们也可通过计算两组间差异的可信区间来验证。这一模型也存在一些问题,如没有参数用以计算组 2 的平均 Y 值(β0+β1 仅可以计算可信区间)。
两个以上分类变量
如果分类变量的数目超过两个,你可能会想:我们把第三组设定取 X = 2 好了。但是这行不通,因为如此一来第三组的平均值就变成了β0+2β1,也就是默认第三组和第一组的差异是第一第二组差异的两倍,而这显然是不可以的。
正确的处理方式是引入「指示变量」和「虚拟变量」,并取值 0 或 1。此类变量「中间变量」数目为分组数目减 1。其中一种作为参考组,并且「指示变量」均取 0,那么常数β0 就作为这一组的均值,而「虚拟变量」的系数们就作为其他各组与参考组差异的均值。
我们同样以 Bhole 等的一篇论文为例,他们拟比较「PsO 组」、「PsA」、「RA」以及「正常人群」四组间的 BMI 差异。因为他们想以「正常人群」组作为参考组,因此他们定义了三个「指示变量」,如表 1 所示。同时他们在比较的同时也引入了「性别」和「年龄」参与校正,如表 2 所示:
那么此实验的回归方程式就可表达为:
BMI = β0 + β1 * PsO + β2 * PsA + β3 * RA + β4 * age + β5 * sex + ε。从表 1 中可知β1、β2、β3 分比为 1.03、1.80 和 3.39,三个比较组的 BMI 均比「正常人群」组要高。
线性回归方程参数告诉了一些我们想知道的数值,但是并不是全部。比如此例中我们仅求出了三组与参考组的差异,但是他们互相之间的差异无从得知。我们可以通过计算β2 – β1 来间接计算。我们也可以计算两组差值的可信区间,或者利用 P 之来验证:「β2 – β1 = 0」这一假设(即两组间无差异)。
相互作用
我们已经探索了如何计算两组间的整体差异,但是如何某一变量在两组间起的作用大小不一样呢?比如 Kyburz 等就对早期使用 DMRDs 治疗风湿和晚期使用间的「放射损伤评分」差异感兴趣。
他们想要计算出解决此问题的线性回归方程:「放射损伤评分」作为结果变量,时间作为指示变量,即:假设「放射损伤评分」在两组中随着时间推移固定改变,但是两组间的改变不同从而表现为两条直线,如图 1 所示:
我们第一眼看到这两条线,可能自然而然想到将它们分别表述为两条回归方程:
Y = β00 + β10 * time + ε if late = 0
= Β01 + β11 * time + ε if late = 1
现在早期治疗组的斜率为β10 而晚期治疗组为β11。但是β10 与β11 显然是不相等的。而且如果考虑所有混杂因素,那么如此多的校正将使得两组间的比较难以进行。
因此更好的方法是引入一个相互作用项以来建立一个统一的回归方程,即变量 late_time 代表 late*time:
Y = β0 + βt * time + βl * late + βlt * late_time + ε
此时早期治疗组中变量 late 和 late_time 均为 0,方程为:Y = β0 + βt * time + ε;
晚期治疗组中 late = 1,late_time = time,方程为:Y =(β0+β1)+(βt+βlt)*time+ε。
从中我们可以发现βl 代表两组间的截距,而βlt 代表两组间斜率的差异。同样我们也可以通过计算可信区间和假设验证的方式来确认两组间的差异性。
尽管相互作用关系很重要且很普遍,但是实际上在数据分析中他们常常被忽视,即使实在某些「影响因子」很高的期刊上,这些错误也很普遍!一篇论文通常假设两组比较,研究者们习惯性认为实验组重要且两组间有区别,但实际上并不总是如此:有时候缺乏统计学差异并不是由于效果差异为 0,而是由于样本量太小。而如果引入「相互作用项」就可以有效避免此类错误,因为只有「相互作用项」明显不等于 0 才能代表两组间存在差异。
结束语
虽然不像连续变量那样容易进行线性回归分析,但是分类变量经过变通后也是可以进行。不仅如此,分类变量回归还可以进行组间差异的有效推论,包括结局变量的均值差异以及其他变量对结局变量的影响。