二分类Logistic回归模型
在对资料进行统计分析时常遇到反应变量为分类变量的资料,那么,能否用类似于线性回归的模型来对这种资料进行分析呢?答案是肯定的。本章将向大家介绍对二分类因变量进行回归建模的Logistic回归模型。
第一节
模型简介
一、模型入门
在很多场合下都能碰到反应变量为二分类的资料,如考察公司中总裁级的领导层中是否有女性职员、某一天是否下雨、某病患者结局是否痊愈、调查对象是否为某商品的潜在消费者等。对于分类资料的分析,相信大家并不陌生,当要考察的影响因素较少,且也为分类变量时,分析者常用列联表(contingency Table)的形式对这种资料进行整理,并使用?检验来进行分析,汉存在分类的混杂因素时,还可应用Mantel-Haenszel?检验进行统计学检验,这种方法可以很好地控制混杂因素的影响。但是这种经典分析方法也存在局限性,首先,它虽然可以控制若干个因素的作用,但无法描述其作用大小及方向,更不能考察各因素间是否存在交互任用;其次,该方法对样本含量的要求较大,当控制的分层因素较多时,单元格被划分的越来越细,列联表的格子中频数可能很小甚至为0,将导致检验结果的不可靠。最后,
22?2检验无法对连续性自变量的影响进行分析,而这将大大限制其应用范围,无疑是其致使
的缺陷。
那么,能否建立类似于线性回归的模型,对这种数据加以分析?以最简单的二分类因变量为例来加以探讨,为了讨论方便,常定义出现阳性结果时反应变量取值为1,反之则取值为0 。例如当领导层有女性职员、下雨、痊愈时反应变量y?1,而没有女性职员、未下雨、未痊愈时反应变量y?0。记出现阳性结果的频率为反应变量P(y?1)。
首先,回顾一下标准的线性回归模型:
Y????1x1???mxm
如果对分类变量直接拟合,则实质上拟合的是发生概率,参照前面线性回归方程 ,很自然地会想到是否可以建立下面形式的回归模型:
P????1x1???mxm
显然,该模型可以描述当各自变量变化时,因变量的发生概率会怎样变化,可以满足分析的基本要求。实际上,统计学家们最早也在朝这一方向努力,并考虑到最小二乘法拟合时遇到的各种问题,对计算方法进行了改进,最终提出了加权最小二乘法来对该模型进行拟合,至今这种分析思路还偶有应用。
既然可以使用加权最小二乘法对模型加以估计,为什么现在又放弃了这种做法呢?原因在于有以下两个问题是这种分析思路所无法解决的:
(1)取值区间:上述模型右侧的取值范围,或者说应用上述模型进行预报的范围为整 个实数集(??,??),而模型的左边的取值范围为0?P?1,二者并不相符。模型本身不能保证在自变量的各种组合下,因变量的估计值仍限制在0~1内,因此可能分析者会得到这种荒唐的结论:男性、30岁、病情较轻的患者被治愈的概率是300%!研究者当然可以将此结果等价于100%可以治愈,但是从数理统计的角度讲,这种模型显然是极不严谨的。
(2)曲线关联:根据大量的观察,反应变量P与自变量的关系通常不是直线关系,而是S型曲线关系。这里以收入水平和购车概率的关系来加以说明,当收入非常低时,收入的增加对购买概率影响很小;但是在收入达到某一阈值时,购买概率会随着收入的增加而迅速增加;在购买概率达到一定水平,绝大部分在该收入水平的人都会购车时,收入增加的影响又会逐渐减弱。如果用图形来表示,则如图1所示。显然,线性关联是线性回归中至关重要的一个前提假设,而在上述模型中这一假设是明显无法满足的。
图1 S型曲线图
以上问题促使统计学家们不得不寻求新的解决思路,如同在曲线回归中,往往采用变量变换,使得曲线直线化,然后再进行直线回归方程的拟合。那么,能否考虑对所预测的因变量加以变换,以使得以上矛盾得以解决?基于这一思想,又有一大批统计学家在寻找合适的变换函数。终于,在1970年,Cox引入了以前用于人口学领域的Logit变换(Logit Transformation),成功地解决了上述问题。
那么,什么是Logit变换呢?通常的把出现某种结果的概率与不出现的概率之比称为比值(odds,国内也译为优势、比数),即Odds??1??,取其对数??ln(Odds)?ln?1??。
这就是logit变换。下面来看一下该变换是如何解决上述两个问题的,首先是因变量取值区间的变化,概率是以0.5为对称点,分布在0~1的范围内的,而相应的logit(P)的大小为:
??0 logit(?)?ln(0/1)??∞
??0.5 logi?t(?)ln(0.5?/0.
??1 logit(?)?ln(1/0)??∞
显然,通过变换,Logit(?)的取值范围就被扩展为以0为对称点的整个实数域,这使得在任何自变量取值下,对?值的预测均有实际意义。其次,大量实践证明,Logit(?)往往和自变量呈线性关系,换言之,概率和自变量间关系的S形曲线往往就符合logit函数关系,从而可以通过该变换将曲线直线化。因此,只需要以Logit(?)为因变量,建立包含p个自变量的logistic回归模型如下:
logit(P)??0??1x1?以上即为logistic回归模型。由上式可推得:
??pxp
P?exp(?0??1x1?1?exp(?0??1x1???pxp)??pxp) 1?P?11?exp?(x1?0??1??pxp
)上面三个方程式相互等价。通过大量的分析实践,发现logistic回归模型可以很好地满
足对分类数据的建模需求,因此目前它已经成为了分类因变量的标准建模方法。
通过上面的讨论,可以很容易地理解二分类logistic回归模型对资料的要求是: (1)反应变量为二分类的分类变量或是某事件的发生率。 (2)自变量与Logit(?)之间为线性关系。 (3)残差合计为0,且服从二项分布。 (4)各观测值间相互独立。
由于因变量为二分类,所以logistic回归模型的误差应当服从二项分布,而不是正态分布。因此,该模型实际上不应当使用以前的最小二乘法进行参数估计,上次均使用最大似然法来解决方程的估计和检验问题。
二、一些基本概念
由于使用了logit变换,Logistic模型中的参数含义略显复杂,但有很好的实用价值,为此现对一些基本概念加以解释。
1. 优势比
如前所述,人们常把出现某种结果的概率与不出现的概率之比称为比值(odds),即
odds?P。两个比值之比称为优势比(odds Ratio,简称OR)。首先考察OR的特性: 1?P若P1?P2,则odds1?PP1?2?odds2 1?P1?P21PP1?2?odds2 1?P1?P21PP1?2?odds2 1?P1?P21若P1?P2,则odds1?若P1?P2,则odds1?显然,OR是否大于1可以用作两种情形下发生概率大小的比较。
2. Logistic回归系数的意义
从数学上讲,?和多元回归中系数的解释并无不同,代表x改变一个单位时logit(P)的
平均改变量,但由于odds的自然对数即为logit变换,因此Logistic回归模型中的系数和OR有着直接的变换关系,使得Logistic回归系数有更加贴近实际的解释,从而也使得该模型得到了广泛的应用。下面用一个实例加以说明:
以4格表资料为例具体说明各回归系数的意义:
表1 4格表资料
治疗方法 (treat) 新疗法(=1) 传统疗法(=0)
合计
治疗结果(outcome) 治愈(=1)
60 (a)
42 (b) 102
未治愈(=0)
21 (c) 27 (d) 48
合计 81 69 130
治愈率 74.07% 60.87% 68.00%
该资料如果拟合Logistic回归模型,则结果如下(操作步骤详见后述): Logit(P|outcome?1)??0??1?treat??0.442?0.608?treat
(1)常数项:表示自变量取全为0(称基线状态)时,比数(Y=1与Y=0的概率之比)的自然对数值,本例中为?0??0.442?ln[(42/69)/(27/69)]?ln(42/27)?ln(b/d),即传统疗法组的治愈率与未治愈率之比的自然对数值。在不同的研究设计中,常数项的具体含义可能不同,如基线状态下个体患病率、基线个体发病率、基线状态中病例所占比例等,但这些数值的大小研究者一般并不关心。
(2)各自变最的回归系数:?i(i?1,p)表示自变量xi每改变一个单位,优势比的
自然对数值改变量,而exp(?i)即OR值,表示自变量xi每变化一个单位,阳性结果出现概率与不出现概率的比值是变化前的相应比值的倍数,即优势比(注意:不是出现阳性结果的概率为变化前的倍数,即优势比并不等同于相对危险度)。
本例中自变量治疗方法的回归系数?1?0.608,为两组病人的治愈率与未治愈率之比的对数值之差,即ln[(60/81)/(21/81)]?ln[(42/69)/(27/69)]?ln(ad/bc)。因此,对于四格表资料而言,所建立的Logistic回归模型也可以写成:
logit(P|outcome?1)?ln(b/d)?ln(ad/bc)?treat?ln(b/d)?ln(OR)?treat
由以上关系可知,exp(?0)表示传统疗法组的治愈率与未治愈之比值。exp(?1)则表示治疗方法增加一个单位,即将疗法从传统疗法改为新疗法时,新疗法组病人治愈率与未治愈率之比值相对于传统疗法组病人的治愈率与未治愈率比值的倍数。而两组病人的治愈率之比
?(60/81)/(42/69)?1.217,并不完全相同。但是,当研究结果出现阳性的概率较小时(一
般认为小于0.1 ,反之当概率大于0.9时亦可),OR值大小和发生概率之比非常接近,此时可以近似地说一组研究对象的阳性结果发生率是另一组研究对象发生率的OR值倍,即用OR值的大小来挖地表示相对危险度的大小。
三、简单分析实例
SPSS中通过regression模块中的Binary Logistic过程实现结果变量为二分类的Logistic回归,下面通过一个实例分析,具体讲解相应的操作和结果解释。
例1某医师希望研究病人的年龄(岁)、性别(0为女性,1为男性)、心电图检验是否异常(ST段压低,0为正常、1为轻度异常、2为重度异常)与患冠心病是否有关。
调用SPSS中的Binary Logistic过程:
图 2 Logistic回归主对话框
本例中涉及的对话框界面如图9.2所示,注意对话框中部有一个以前未出现过的a*b按钮、用于纳入交互作用,只要先将相应变量选中,然后单击此按钮,相应的交互项就会被纳入模型。本例因较为简单,未用到此功能。性别虽为分类变量,但仅有两个取值水平,所以可以直接引入模型,结果仍然可以被正常解释。
结果如下:
首先输出分析中使用的记录数汇总,此处略。
表2 Dependent Variable Encoding Original Value 未患病 患病 Internal Value 0 1 表2为因变量的取值水平编码,SPSS拟合模型时默认取值水平高的为阳性结果,对于本