分享

一文读懂logistic回归的前世今生

 井里的怪兽 2019-06-27

什么情况下使用logistic回归?为什么要使用logistic回归呢?它的基本原理是什么?

1

从线性回归说起

在开始回答这些问题前,各位读者心中一定要清楚,logistic回归构成了回归的半壁江山,另外半壁则是由线性回归构成的(此处暂且先不讨论非线性回归的情形)。

从最简单的问题开始,假设我们收集了一组数据,该数据仅仅包含两个变量,其一是体重(用X表示),其二是身高(用Y表示),我们想研究此二者之间的关系。显然,此处的身高与体重,都属于连续型数据(简单来说,就是可以在一个连续的数轴上,或者取值范围内任意取值)。我们再假设这两个变量都服从正态分布,那么,对于这种情形,大家都知道可以使用一元线性回归探索XY的关系。如下图所示:

从散点图来看,height和weight虽然并非严格的数学关系(即可以用固定的等式进行准确的描述),但还是不难看出,二者之间有非常明显的正相关关系(当然,此处需要必要的统计量予以佐证,比如相关系数ρ和其对应的p值)。

2

遇到分类变量怎么办?

这是我们最常用的线性回归,包括一元和多元线性回归区别仅在于X的数量不同,本质是完全相同的。

但是,当我们遇到这样一种情形时,比如,临床上研究100个肿瘤患者的预后影响因素,我们收集的X可能包括患者的年龄、性别、BMI、家族史等基本信息,也可能包括患者的治疗方式、肿瘤分期、某个基因的突变情况等临床信息。显然,这些X中既有连续型变量,也有分类变量,但是它们的类型与我们所选用的回归模型没有关系此处我们研究的Y是患者的预后情况(是否死亡)。与身高、体重等连续型变量不同,此处的Y显然是一个二分类变量。那么,在这种情形下,我们还能拟合如下的线性方程吗?

上式中,α为截距项,β为各个自变量的系数,ε为随机误差项。

假设是可以的,我们来尝试一下。方便考虑,我们仅考虑一个X的情形

。如下图所示:

此处我们研究的是BMI与患者结局之间的关系。BMI是连续型变量,outcome是离散变量。我们采用线性回归进行拟合(图中蓝色线条),暂且先不管模型拟合的好坏,我们利用这个模型来探索一下每一个患者出现死亡结局的概率。如下图所示:

到此,相信很多读者已经发现问题了,既然是死亡的概率,应该是在[0, 1]上取值,而上图展示的概率竟然出现了小于0和大于1的情形!这显然既不符合常理也不符合我们的要求。

3

Logistic回归基本原理浅析

那么,我们理想的情况是怎样的呢?应该是像线性回归一样,找到一个单调可微(连续且光滑)的函数f(x),能够建立起XY之间的关系。即:

f(x)通常称为连接函数。

对于分类变量Y,假设其输出为{0,1},但是,线性回归方程的输出是连续型的数值因此,必须想到一个办法将转化到{01}。对于此情形,最理想的模拟就是单位阶跃函数

如下图所示:

当z小于0时,y全部等于0,当z大于0时,y全部等于1,当z等于0时,y等于0.5。这样看来,单位阶跃函数似乎能够将XY联系起来,但是从上图我们看出,这个函数并非一个连续函数,不满足我们之前对f(x)的设定。所以我们必须再次转换思路。

在研究分类问题时,我们通常关心的是阳性结果,比如死亡,在给定的其他因素的影响下,出现的概率,即P(Y=1 | X)(管道符“|”是条件概率的标识,表示给定了X,再来考虑Y=1的概率)。显然,由于P(Y=1 | X)是概率,所以它在[0, 1]上取值(注意,此处的[0, 1]表示0~1的闭区间,与之前Y的取值{0, 1}完全不同)。假如我们以P(Y=1 | X)作为因变量Y,再来构建同X之间的线性方程,如下所示:

等式的左边取值为[0, 1],而等式的右边取值为[-∞,+∞],还是对应不上!怎么办?能不能找到一个函数让等式右边的部分的取值限定在[0, 1]上?

这个函数还真有!它就是logistic函数,也叫sigmoid函数(或者S函数,因为外形状似字母S)。其公式为:

,如下图所示:

如你所见,x可以在实数轴上取任意值,但是,y的取值被限定在[0, 1]上,这完全符合我们的需要。所以,此处,我们只需要将回归方程右边的替换成sigmoid函数中的x,然后将回归方程左边的替换成sigmoid函数中的y即可,即:

至此,我们回归方程构建的任务算是完成了。下面就是找到一个更简单的方式来表示上式,使公式看起来更像一个回归方程。

事实上,这一步很简单,只需要经过简单的变换,则可以得到下式:

再将上式的左右两边同时取对数,则得到:

如你所见,上式中,至少右边已经完全是普通回归方程的结构了,至于左边,我们再来解释。

在等式左边,Y出现阳性结果的概率,自然的,就是1-Y出现阴性结果的概率,两者的比值被叫做比率odds,取对数后,自然就被叫做对数比率。所以,logistic回归在机器学习领域通常被叫做对数比率回归

既然回归方程已经构建完毕,下面就需要对我们感兴趣的系数β进行求解。通用的方法是“最大似然法”(maximum likelihood)。

何为似然?其实我个人认为是因为当初引进这个词汇时翻译的过于玄乎,导致很多人看不懂。其实,似然,就是“可能”的意思,最大似然,也就是最大可能。那什么是最大似然法?我们暂且不需要展示什么公式,两句话就可以解释清楚。

以求解logistic回归方程的系数β为例,β值有千千万,但我们想要找到的最优β,它们必须满足一个条件,就是使我们当前获得的数据出现的可能性最大!举个例子,假如小明认为β=1,在他给出的β下,当前数据出现的可能性只有0.3,小花给出的β为2,在她给出的β下,当前数据出现的可能性为0.6。也就是说,在当前的数据已经出现的情况下,小花的β更加合理!

那么,最理想的情况就是,找到一个β,使当前数据出现的可能为100%。有这种可能吗?有!

最简单的情形,比如我们要求解的系数β,拿到的数据是(x = 1, y =2),很简单的,我们知道β只能等于1。也就是当β=1时,当前数据(x = 1, y =2)出现的可能是最大!

对于logistic回归,道理也是一样的,我们需要找到β,使得X和Y出现的可能性最大。具体的计算公式就不在此展示了,R语言可以轻松帮我们实现。

4

OR值是怎么来的?

本节最后一点内容,需要跟各位读者解释一下我们在医学科研中常见的比值比(OR是怎么来的。

比值比(odds ratio)是流行病学中常用来衡量暴露与结局之间的关系的一个指标比值(odds),其实更应该叫做比率,这个我们在前文已经见过,即

。那么ratio)是怎么来的呢?这就需要我们对logistic的回归方程的结果进行一番解释。此处我们仅以两个自变量X进行演示。

假设X1是分类变量,X2是连续型变量。先来考虑X1的效应。在控制了X2后,X1在水平1时的回归方程为

在水平2时的回归方程是:

当X1由水平1变化为水平2时,其效应的变化可以由式(9)和式(8)相减得到:

由于X1仅变化了一个水平,可以理解成由变成了X11+1,所以式(10)的右边最后等于β1

将式(10)进行简单的变换(初中学的对数运算),得到:

式(11)左边已经出现了odds ratio(OR),即X1在水平2和水平1时的比率之比。右边是X1系数的指数。

上述是针对分类变量,对于连续型变量,原理完全一样,只不过对于分类变量,变化的是一个水平,而对于连续型变量,变化的是一个单位,比如身高从170cm变成171cm!

在R语言中实现logistic回归是十分简单的事情,使用glm()函数即可,在此就不给大家演示了。请各位读者自行探索。

征 稿 启 事

「医学方」现正式向粉丝们公开征稿!内容须原创首发,与科研相关,一经采用,会奉上丰厚稿酬(300-2000元),详情请戳。

“医学方”始终致力于服务“医学人”,将最前沿、最有价值的临床、科研原创文章推送给各位临床医师、科研人员。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多