回归模型中引入连续变量,还有哪些玩法?

专题合集更多教程

在前期推送的内容《想将连续变量转化为哑变量纳入回归模型,咋分组?》中,我们向大家介绍了在回归模型中引入连续型变量时,除了以其原始变量的形式纳入到模型中外,有时还需要考虑到实际的分析需求,将其按照一定的分组切点转换为哑变量,例如二分类分组、等分位分组、等距分组、临床界值分组,或者按照自己的“Free Style”进行分组等多种转换形式。

 

但是在介绍以上的转换形式时,我们主要针对的是将连续型变量转化为分类变量,以哑变量的形式引入模型。

 

而作为连续型变量,本身就自带七十二变的属性,因此本期内容我们继续来向大家介绍一下,在构建回归模型时,连续型变量还有哪些其他神奇的变化形式


1、正态转换


首先要提到的就是较为常见的正态转换形式。我们都知道,在构建线性回归时,需要满足一定的前提条件,其中有一项即要求变量需服从正态分布或者近似正态分布,如果不满足正态分布的条件,往往会导致构建的回归模型产生一定的偏倚,因此对于连续型变量在事前进行正态性检验是十分必要的。

 

我们在前期推送的文章《判断数据正态分布的超多方法》中,介绍了多种正态性检验的方法,包括利用数据分布的参数(偏度值、峰度值)进行判断,利用数据分布的图形(直方图,P-P图,Q-Q图)进行判断,或者借助非参数检验的方法(Shapiro-Wilk检验,Kolmogorov-Smirnov检验)来帮助判断。需要复习的同学可以戳上文连接。

 

那么,当我们的数据资料分布呈现非正态时,需要怎么办呢?此时,我们可以将原始的连续型变量作某种函数的转换,使偏态资料正态化,从而满足回归模型构建的需要。

 

根据数据本身分布形态的不同,我们可以采用不同的正态转换函数,例如对原始连续型变量开平方取根号值(Square Root)、取自然对数(Ln X)、取以10为底的对数(Log10 X)、取倒数(1 / X)等等,具体的操作方法详见前期推送的文章《正态转换的多种方法》。

 

当然,需要注意的是,如果对变量进行了正态转换,在结果中对回归模型参数进行解释时,应按照转换后的变量给予解释,或者可以根据转换时使用的函数关系,倒推原始自变量对原始因变量的效应大小。

 

例如JACC期刊2016年发表的一篇文章[1],作者在统计分析时首先对数据进行了正态性检验(原文表述:Normality of continuous variables was assessed by the Kolmogorov-Smirnov test)。

 

结果显示troponin I、NT-proBNP、corin等因素呈现偏态分布的特征,因此在描述研究对象基线信息时作者也采用了中位数(上四分位数,下四分位数)的表达形式,例如Troponin I的中位水平为4.5(1.8,12.6)ng/ml。

 

随后作者采用多重线性回归的方法,来分析影响corin水平的因素(原文描述: Multiple linear regression analysis was applied to determine factors influencing corin levels. Levels of troponin I, NT-proBNP, and corin were normalized by log10 transformation)

 

即研究人员首先对troponin I、NT-proBNP、corin等因素取log10转化为正态分布,然后再带入到多重线性回归中进行分析。(结果作者未在文中呈现)

 

随后作者又进行了Cox回归模型分析,虽然Cox回归对自变量的类型没有特殊的要求,但是为了与多重线性回归中变量引入的形式保持一致,故作者对于troponin I、NT-proBNP、corin等因素依然采用log10转化后的形式纳入模型,结果见下表所示。

 


2、每变化固定增量的转换形式


在前期内容《想将连续变量转化为哑变量纳入回归模型,咋分组?》中,我们介绍到若直接将原始的连续型变量引入模型,回归参数被解释为每变化一个单位水平所引起的因变量的变化效应,但有时这种变化效应可能是很微弱的。

 

因此,我们可以将连续型自变量以一个设定好的固定间距,采用等距分组的方式,将其转换为哑变量,然后再引入到模型中进行分析。这样分组的好处在于,分析结果在实际的临床应用中易于患者理解和应用。

 

例如我们纳入的研究人群年龄为31-80岁,我们可以按照年龄每10岁一组进行划分,分为31-40、41-50、51-60、61-70、71-80共5个亚组,设定4个哑变量纳入模型进行分析。

 

但是如果某一因素的变异范围很大,此时按照上述方法进行分组时,就可能会被分为很多亚组,需要设定很多个哑变量纳入模型,从而使得模型显得“臃肿”;又或者数据的变异范围很小,无法再进行更小单位的分组,此时就不再适合将其转化为哑变量的形式。

 

那么,如果遇到这种情况,应该对连续型变量进行怎样的处理呢?我们再来看一篇JACC期刊2016年发表的一篇文章[2]

 

该研究Cox回归结果如下表所示,我们发现模型中的多数变量,作者都使用到了“per”这样一个词,例如per 5% change、per 0.1 U、per 100 ml/min,等等,这里的“per + 变化间距 + 单位”的形式,表示的即为我们要介绍的,将连续型变量按照每变化固定增量的形式进行转换。

 

 

具体举其中2个因素为例来进行说明。例如Oxygen uptake efficiency slope,在研究人群中的平均水平为1655 U,5%-95%人群的变化范围为846-2800 U,由此可见数据的变化范围是非常大的。此时如果带入原始连续型变量,每增加1U,回归模型的HR值可能就会很小,无法体现实际的临床意义;如果转换为哑变量,又可能会被划分成很多组。

 

因此,作者将该变量以每增加100 U的形式带入到模型中,评价的是Oxygen uptake efficiency slope每增加100 U时,研究人群的死亡风险会下降9%(HR=0.91,95% CI:0.89-0.93)。

 

再例如Peak RER这个因素,研究人群的平均水平为1.08 U,5%-95%人群的变化范围为0.91-1.27 U,数据波动又非常小。此时如果带入原始连续型变量,每增加1U,回归模型的HR值可能就会很大,而且在临床意义的解释上,由于人群中的数值范围很小,直接变化1U的个体情况并不常见,无法在临床大部分病人中得到广泛应用。如果转换为哑变量,可能也无法再进行细分。

 

因此,作者将该变量以每增加0.1 U的形式带入到模型中,考察的是Peak RER每增加0.1U时,研究人群的死亡风险会下降6%(HR=0.94,95% CI:0.86-1.04),但无统计学显著性。

 

理解了这种变化形式的意义,那么在实际的统计分析中,如何实现这种形式的转换呢?其实很简单,假如,如果我们想要把该因素由每增加1个单位变为每增加100个单位(变化幅度增大100倍),只需要将该原始变量除以100代入模型即可;同样,如果我们想要把该因素由每增加1个单位变为每增加0.1个单位(变化幅度缩小10倍),只需要将该原始变量乘以10即可。


3、每变化一个标准差的转换形式


上面我们介绍了每变化固定增量的转换形式,例如每变化0.1、10或100个单位,但是我们常常在阅读文献时,还会见到另外一种变化形式,即自变量每变化一个标准差(per SD increase)的形式。那么这种变化形式又是什么从哪里冒出来的呢?

 

我们再来看一篇JACC期刊2016年发表的一篇文章[3](好吧,原谅小咖独宠JACC,下次努力争取做到雨露均沾),Cox回归结果如下表所示。

 

 

我们发现,对于年龄和收缩压,作者都采用了每增加1个标准差的形式纳入到回归模型中,即年龄每增加1个标准差,动脉粥样硬化性心脏病(ASCVD)的发病风险增加70%(HR=1.70,95% CI:1.32-2.19);收缩压每增加1个标准差,ASCVD的发病风险增加25%(HR=1.25,95% CI:1.05-1.49)。

 

这里将连续型变量转换为per SD increase的形式带入模型中,又有什么特殊的意义么?

 

我们都知道,标准差是描述一个变量的所有观察值与均数的平均离散程度的指标,对于计量单位相同的变量,标准差越大,数据的离散程度就越大。在临床实践中,我们常用标准差来计算医学参考值的范围。

 

假定测定的指标服从正态分布,根据正态分布曲线下面积可知,均值 ± SD区间内的面积为68.27%,均值 ± 1.96 SD区间内的面积为95%,均值 ± 2.58 SD区间内的面积为99%,也就是说在大约4个标准差的范围内,数据已经基本覆盖了95% 的样本。

 

因此,特别是对于罕见的非常规新指标,每增加1个单位时的临床意义并不是很明确的情况下,可以将其转换为每增加1个SD的形式纳入回归模型中,由此可以指导患者根据自身实际的测量结果,看看自己是处于人群分布水平的几个标准差范围内,进而来评估其对应的风险会改变多少。

 

同样,实现这种形式的转换也非常简单,可以通过以下两种方式:

 

1、在构建回归模型之前,将原始的连续型变量进行标准化处理,再将标准化后的自变量带入到回归模型中,所得到的回归系数即为自变量每增加1个SD时对因变量的影响(注意这里只对自变量进行标准化处理)

 

2、如果未对原始变量进行标准化处理,也可以直接把原始变量带入到模型中,得出未标化的回归系数(Unstandardized Coefficients),然后再乘以该自变量的标准差,此时即为自变量每增加1个SD时对因变量的影响。

 

不过细心的同学会发现,SPSS在输出未标化的回归系数(Unstandardized Coefficients)的同时也会输出标准化回归系数(Standardized Coefficients),那么这个标准化回归系数又是什么鬼,它与上述未标化的回归系数,以及每增加1个SD的回归系数又有什么区别呢,我们将在以后的内容中向大家进行介绍,敬请期待!

 

参考文献:

[1] J Am Coll Cardiol. 2016 May 3;67(17):2008-14

[2] J Am Coll Cardiol. 2016 Feb 23;67(7):780-9

[3] J Am Coll Cardiol. 2016 May 31;67(21):2480-7

描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
我要提问
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
    提交问题