预测模型第8期 | 连续变量该如何进入模型?
连续变量纳入模型
如果变量和结果之间的关系是线性的,则可以在回归方程中包含连续变量。
如果没有,可以将其转换为二分变量或有序分类变量,然后将它们放入回归方程中。回归模型中包含连续变量时,应尽可能将原始的连续变量包含在回归模型中,并考虑实际需要将连续变量根据一些规则进行转换,二分类分组、等距分组、根据临床临界值分组都是为了更好的专业解释。
通过最优截断值分析,将连续变量转化为分类变量,并将其作为哑变量引入回归模型。在回归模型中,连续变量可以以不同的方式表示。我们将列举具体的例子说明。无论以何种方式呈现,总的原则是更有利于专业的解释和理解。
正态转换
对于正态分布的连续变量,这不是问题。然而,当我们遇到不符合正态分布的数据时,我们可以基于某种函数进行转换,然后这些数据将被正态化,并拟合回归模型。原始数据可以根据自身的特点,采用不同的函数进行正态化处理,如平方根法、LnX法、Log10X法和(1/X)法等。如果对原始数据进行了正态化处理,则应解释正态变换后的变量,而不是原始变量在回归模型中的影响
或者可以根据转换中所使用的函数来评估原始自变量对原始因变量的影响。例如,作者在他们发表在JACC,2016(21)上的文章中进行了正态性检验。原文如下:用Kolmogorov-Smirnov检验评定连续变量的正态性。正态性检验方法包括利用数据分布参数(偏度值和峰度值)和数据分布图(直方图、P-P图、Q-Q图)。
或应用一些非参数检验方法(Shapiro-Wilk检验、Kolmogorov-Smirnov检验)来帮助评估数据的正态性分布。在他们的研究中,肌钙蛋白I、NT-proBNP或Corin等变量符合正态分布。因此,作者用中位数(四分位数-三分位数)来描述这些纳入变量的基线特征。例如,肌钙蛋白I的中位数是4.5(1.8–12.6)ng/mL。然后进行多元线性回归分析。
原文表达如下:采用多元线性回归分析来确定影响corin水平的因素。肌钙蛋白I、NT-proBNP和corin首先通过Log10函数转换进行正态化处理,再将其纳入多元线性回归。接着进行Cox回归分析。虽然Cox回归模型对自变量的类型没有什么特殊要求,但为了与多元线性回归模型中变量的纳入形式保持一致,作者依然采用转换后的变量形式带入模型中分析。
对连续变量采用固定增量的形式进行转换
如果连续变量以其原始形式直接引入模型,则回归参数被解释为因每个单位变化而产生的因变量变化的影响。然而,有时这种变化的影响可能是微弱的。
因此,我们可以将连续的自变量按固定的区间,以等距分组的形式转化为一个分类变量,然后将它们引入到模型中进行分析,这一分组有助于患者更好地理解和应用。
例如,我们纳入年龄在31岁到80岁之间的患者。我们可以根据每10年的年龄间隔将其分为31-40岁、41-50岁、51-60岁、61-70岁、71-80岁。然后,将已设置的五个哑变量纳入到模型中进行分析。
但是,如果变量范围很大,按照前面提到的方法进行分组,会导致分组过多,哑变量过多,这在分析过程中是相当冗余的。临床解释也会很困难。反之,数据变动范围很小,无法进行更小单位的分组。
JACC文献参考
那么,当我们面对这两种情况时,我们应该怎么做呢?在这里,我们可以参考发表在JACC,2016(19)的一篇文章。我们发现,在模型中,作者使用了很多“per”单词,如per 5% 改变、per 0.1 u 、per 100ml/min等,这是连续变量在每次变化中以固定增量的形式进行转换,这种转换以“per+改变间距+单位”的形式呈现。我们将在本文中演示两个示例。摄氧效率斜率(评价成人心肺功能储备的新指标)的平均值为1655u,5%-95%的人群在846-2800U之间,这确实是一个很大的变化范围。如果将原始数据放入模型中,每1u的变化引起HR的变化很小,这在临床上是没有意义的。如果将其转换为分类变量,将出现许多组。因此,作者将原始数据每变化100u的形式纳入模型中,发现当每100u增加时,研究人群的死亡风险将降低9%(HR=0.91,95%CI:0.89–0.93)。另一个例子是Peak RER。中位数为1.08 U,5%-95%的人群范围是0.91-1.27U间。这是一个很小的范围。如果将原始数据带入模型中,每1u的变化将导致HR的变化很大。在临床实践中,1u的改变是非常罕见的,这种结果的实用性非常有限。因此,作者将每0.1U的变化纳入模型中,Peak RER每增加0.1U单位,研究人群死亡风险降低6%(HR=0.94,95%CI:0.86-1.04),但无统计学意义。
那么我们具体怎么做这种转换呢?
如果我们想把变量从每增加1个单位改为每增加100个单位,我们只需要将原始变量除以100,带入模型中即可。同样,如果我们想将研究因素每增加1个单位改变为每增加0.1个单位,只需将原始数据乘以10,再纳入模型中即可。
按改变每标准差(SD)的形式进行转换
在临床研究中,我们还有另一种转换方法:自变量按每标准差的形式进行变化。让我们看看2016年在JACC上发表的一篇文章。该模型中年龄和收缩压按1个标准差增加的形式转化。年龄每增加一个标准差,动脉粥样硬化性心脏病(ASCVD)的风险增加70%(HR=1.70,95%CI:1.32-2.19)。收缩压(SBP)每增加一个标准差,ASCVD风险增加25%(HR=1.25,95%CI:1.05-1.49)。
本文将连续变量以每标准差递增的形式引入到模型中。假设变量符合正态分布,平均值±SD区间下的面积为68.27%,平均值±1.96 SD区间下的面积为95%。平均值±2.58 SD区间下的面积为99%。我们可以看出,如果在4个标准差范围内,大约95%的样本将被覆盖。因此,新的变量,特别是对于那些临床上尚不清楚的罕见变量解释,我们可以按每SD改变形式纳入模型中。这可以引导患者根据自己的实际测量结果,判断自己在人群分布水平的几个标准差范围内,进而评估相应的风险会发生多大的变化。
两种转换方式
(1)在建立回归模型之前,需要对原始的连续变量进行标准化处理,并将标准化后的自变量纳入回归模型。得到的回归系数就是自变量每变化1个SD对因变量的影响。(注意:这里只对自变量进行标准化处理)。(2)如果原始变量没有标准化,也可以直接将原始变量带入模型,得到未标准化的回归系数,然后再乘以该自变量的标准差,即标准化的回归系数。这就是自变量每变化1个SD对因变量的影响。
参考文献
Zhou ZR, Wang WW, Li Y, et al. In-depth mining of clinical data: the construction of clinical prediction model with R. Ann Transl Med. 2019;7(23):796. doi:10.21037/atm.2019.08.63