二分类与多分类Logistic回归模型.docx
《二分类与多分类Logistic回归模型.docx》由会员分享,可在线阅读,更多相关《二分类与多分类Logistic回归模型.docx(27页珍藏版)》请在冰豆网上搜索。
二分类与多分类Logistic回归模型
二分类Logistic回归模型
在对资料进行统计分析时常遇到反应变量为分类变量的资料,那么,能否用类似于线性回归的模型来对这种资料进行分析呢?
答案是肯定的。
本章将向大家介绍对二分类因变量
进行回归建模的Logistic回归模型。
第一节模型简介
一、模型入门
在很多场合下都能碰到反应变量为二分类的资料,如考察公司中总裁级的领导层中是否有女性职员、某一天是否下雨、某病患者结局是否痊愈、调查对象是否为某商品的潜在消费者等。
对于分类资料的分析,相信大家并不陌生,当要考察的影响因素较少,且也为分类
变量时,分析者常用列联表(contingencyTable)的形式对这种资料进行整理,并使用2检验
来进行分析,汉存在分类的混杂因素时,还可应用Mantel-Haenszel2检验进行统计学检验,
这种方法可以很好地控制混杂因素的影响。
但是这种经典分析方法也存在局限性,首先,它
虽然可以控制若干个因素的作用,但无法描述其作用大小及方向,更不能考察各因素间是否
存在交互任用;其次,该方法对样本含量的要求较大,当控制的分层因素较多时,单元格被
划分的越来越细,列联表的格子中频数可能很小甚至为0,将导致检验结果的不可靠。
最后,
2检验无法对连续性自变量的影响进行分析,而这将大大限制其应用范围,无疑是其致使
的缺陷。
那么,能否建立类似于线性回归的模型,对这种数据加以分析?
以最简单的二分类因变量为例来加以探讨,为了讨论方便,常定义出现阳性结果时反应变量取值为1,反之则取
值为o。
例如当领导层有女性职员、下雨、痊愈时反应变量y=1,而没有女性职员、未下
雨、未痊愈时反应变量y=0。
记出现阳性结果的频率为反应变量P(y=1)。
首先,回顾一下标准的线性回归模型:
丫「也川mXm
如果对分类变量直接拟合,则实质上拟合的是发生概率,参照前面线性回归方程,很
自然地会想到是否可以建立下面形式的回归模型:
P心瘁「|||-'-mXm
显然,该模型可以描述当各自变量变化时,因变量的发生概率会怎样变化,可以满足分析的基本要求。
实际上,统计学家们最早也在朝这一方向努力,并考虑到最小二乘法拟合
时遇到的各种问题,对计算方法进行了改进,最终提出了加权最小二乘法来对该模型进行拟
合,至今这种分析思路还偶有应用。
既然可以使用加权最小二乘法对模型加以估计,为什么现在又放弃了这种做法呢?
原因在于有以下两个问题是这种分析思路所无法解决的:
(1)取值区间:
上述模型右侧的取值范围,或者说应用上述模型进行预报的范围为整
个实数集(」:
,•:
:
),而模型的左边的取值范围为0空P空1,二者并不相符。
模型本身不能保证在自变量的各种组合下,因变量的估计值仍限制在0〜1内,因此可能分析者会得到这
种荒唐的结论:
男性、30岁、病情较轻的患者被治愈的概率是300%研究者当然可以将此结果等价于100%可以治愈,但是从数理统计的角度讲,这种模型显然是极不严谨的。
(2)曲线关联:
根据大量的观察,反应变量P与自变量的关系通常不是直线关系,而
是S型曲线关系。
这里以收入水平和购车概率的关系来加以说明,当收入非常低时,收入的增加对购买概率影响很小;但是在收入达到某一阈值时,购买概率会随着收入的增加而迅
速增加;在购买概率达到一定水平,绝大部分在该收入水平的人都会购车时,收入增加的影
响又会逐渐减弱。
如果用图形来表示,则如图1所示。
显然,线性关联是线性回归中至关重
要的一个前提假设,而在上述模型中这一假设是明显无法满足的。
图1S型曲线图
以上问题促使统计学家们不得不寻求新的解决思路,如同在曲线回归中,往往采用变量变换,使得曲线直线化,然后再进行直线回归方程的拟合。
那么,能否考虑对所预测的因
变量加以变换,以使得以上矛盾得以解决?
基于这一思想,又有一大批统计学家在寻找合适
的变换函数。
终于,在1970年,Cox引入了以前用于人口学领域的Logit变换(Logit
Transformation),成功地解决了上述问题。
那么,什么是Logit变换呢?
通常的把出现某种结果的概率与不出现的概率之比称为比
nn
值(odds,国内也译为优势、比数),即Odds,取其对数,=ln(Odds)=In——。
1一兀1-JT
这就是logit变换。
下面来看一下该变换是如何解决上述两个问题的,首先是因变量取值区间的变化,概率是以0.5为对称点,分布在0〜1的范围内的,而相应的logit(P)的大小为:
二=0
logit
(二)二In(0/1)=-
■-=0.5
logn^)ln(0.牛/0
■■:
=1
logit
(二)=ln(1/0)I©
从而可以通过该变换将曲线直线化。
因此,只需要以Logit
(二)为因变量,建立包含p个自
变量的logistic回归模型如下:
logit(P)二J也川「pXp
以上即为logistic回归模型。
由上式可推得:
上面三个方程式相互等价。
通过大量的分析实践,发现logistic回归模型可以很好地满
足对分类数据的建模需求,因此目前它已经成为了分类因变量的标准建模方法。
通过上面的讨论,可以很容易地理解二分类logistic回归模型对资料的要求是:
(1)反应变量为二分类的分类变量或是某事件的发生率。
(2)自变量与Logit
(二)之间为线性关系。
(3)残差合计为0,且服从二项分布。
(4)各观测值间相互独立。
由于因变量为二分类,所以logistic回归模型的误差应当服从二项分布,而不是正态分
布。
因此,该模型实际上不应当使用以前的最小二乘法进行参数估计,上次均使用最大似然
法来解决方程的估计和检验问题。
二、一些基本概念
由于使用了logit变换,Logistic模型中的参数含义略显复杂,但有很好的实用价值,为
此现对一些基本概念加以解释。
1.优势比
如前所述,人们常把出现某种结果的概率与不出现的概率之比称为比值(odds),即
P
odds=。
两个比值之比称为优势比(oddsRatio,简称OR)。
首先考察OR的特性:
1-P
PP
若P1P2,则odds!
12odds2
1—R1-F2
若P1:
:
P2,则odds&odds2
1—P1-P2
若P1二P2,则odds!
'旦odds2
1—P1-P,
显然,OR是否大于1可以用作两种情形下发生概率大小的比较。
2.Logistic回归系数的意义
从数学上讲,1和多元回归中系数的解释并无不同,代表X改变一个单位时logit(P)的
平均改变量,但由于odds的自然对数即为logit变换,因此Logistic回归模型中的系数和
OR有着直接的变换关系,使得Logistic回归系数有更加贴近实际的解释,从而也使得该模
型得到了广泛的应用。
下面用一个实例加以说明:
以4格表资料为例具体说明各回归系数的意义:
表14格表资料
治疗方法
(treat)
治疗结果(outcome)
合计
治愈率
治愈(=1)
未治愈(=0
新疗法(=1)
60(a)
21(c)
81
74.07%
传统疗法(=0)
42(b)
27(d)
69
60.87%
合计
102
48
130
68.00%
该资料如果拟合Logistic回归模型,则结果如下(操作步骤详见后述):
Logit(P|outcome=1)=1treat二-0.4420.608treat
(1)常数项:
表示自变量取全为0(称基线状态)时,比数(Y=1与Y=0的概率之比)
的自然对数值,本例中为飞=-0.442=1n[(42/69)/(27/69)]=ln(42/27)=1n(b/d),
即传统疗法组的治愈率与未治愈率之比的自然对数值。
在不同的研究设计中,常数项的具体
含义可能不同,如基线状态下个体患病率、基线个体发病率、基线状态中病例所占比例等,
但这些数值的大小研究者一般并不关心。
(2)各自变最的回归系数:
Pi(I=1」ilp)表示自变量x每改变一个单位,优势比的
自然对数值改变量,而exp(■-i)即or值,表示自变量xi每变化一个单位,阳性结果出现概
率与不出现概率的比值是变化前的相应比值的倍数,即优势比(注意:
不是出现阳性结果的
概率为变化前的倍数,即优势比并不等同于相对危险度)。
本例中自变量治疗方法的回归系数■-1=0.608,为两组病人的治愈率与未治愈率之比的
对数值之差,即ln[(60/81)/(21/81)Hln[(42/69)/(27/69)]=ln(ad/be)。
因此,对于
四格表资料而言,所建立的Logistic回归模型也可以写成:
logit(P|outcome=1)=ln(b/d)ln(ad/bc)treat=ln(b/d)Tn(OR)treat
由以上关系可知,exp(-0)表示传统疗法组的治愈率与未治愈之比值。
expCJ则表示
治疗方法增加一个单位,即将疗法从传统疗法改为新疗法时,新疗法组病人治愈率与未治愈率之比值相对于传统疗法组病人的治愈率与未治愈率比值的倍数。
而两组病人的治愈率之比
=(60/81)/(42/69)=1.217,并不完全相同。
但是,当研究结果出现阳性的概率较小时(
般认为小于0.1,反之当概率大于0.9时亦可),OR值大小和发生概率之比非常接近,此时可以近似地说一组研究对象的阳性结果发生率是另一组研究对象发生率的OR值倍,即用
OR值的大小来挖地表示相对危险度的大小。
三、简单分析实例
SPSS中通过regression模块中的BinaryLogistic过程实现结果变量为二分类的Logistic
回归,下面通过一个实例分析,具体讲解相应的操作和结果解释。
例1某医师希望研究病人的年龄(岁)、性别(0为女性,1为男性)、心电图检验是否异常(ST段压低,0为正常、1为轻度异常、2为重度异常)与患冠心病是否有关。
调用SPSS中的BinaryLogistic过程:
图2Logistic回归主对话框
本例中涉及的对话框界面如图9.2所示,注意对话框中部有一个以前未出现过的a*b按
钮、用于纳入交互作用,只要先将相应变量选中,然后单击此按钮,相应的交互项就会被纳
入模型。
本例因较为简单,未用到此功能。
性别虽为分类变量,但仅有两个取值水平,所以
可以直接引入模型,结果仍然可以被正常解释。
结果如下:
首先输出分析中使用的记录数汇总,此处略。
表2DependentVariableEncoding
OriginalValue
InternalValue
未患病
0
患病
1
例来讲,拟合的模型是logit(P|y=患病)。
随后进行模型拟合,首先给出的是模型不含任何自变量,而只有常数项(即无效模型)
时的输出结果,标题为:
"Block0:
BeginningBlock"。
此时的模型为:
表3ClassificationTable
Observed
Predicted
是否患冠心病
Percentage
Correct
未患病
患病
Step0是否患冠心病未患病
患病
OverallPercentage
0
0
37
41
.0
100.0
52.6
a.Constantisincludedinthemodel.
b.Thecutvalueis.500
表9.3输出的是模型中仅含有常数项(见表4)时计算的预测分类结果,SPSS根据p值是
否大于0.5将观察对象判断为是否出现阳性结果,即是否患冠心病。
由于模型中仅含有常数项,因此所有人的预测概率均为样本率估计值P=0.5257,将所有的观察对象均判断为冠心
病。
判断正确率为52.6%,实际上就是全部研究对象的患病率41、78=0.5256(细小差别为
四舍五入产生)。
也就是说,由于当前样本中大部分人为患病,因此当模型中不包含任何自变量时,样本中所有观察对象皆被预测为患病,总的预测准确率为52.6%。
表4
VariablesintheEquation
B
S.E.
Wald
df
Sig.
Exp(B)
Step0Constant
.103
.227
.205
1
.651
1.108
表4输出结果中B为模型中未引入自变量时常数项的估计值,S.E为其标准误,Wald为
Wald,是对总体回归系数是否为0进行统计学检验。
表格中df为其自由度,Sig.为相应的P值。
此时的exp(B)为e的订次方。
其实际意义为总
体研究对象患病率与未患病率的比值。
即1.108=0.5256/0.4744。
表5VariablesnotintheEquation
Score
df
Sig.
Step0Variablessex
6.021
1
.014
ecg
7.111
1
.008
age
7.734
1
.005
OverallStatistics
18.562
3
.000
表5输出了当前未引入模型的变量的比分检验(ScoreTest)结果,其意义为向当前模型
中引入某变量(如sex时),该变量回归系数是否等于0的比分检验假设。
对于取值水平为二分类的自变量来说,得分检验的2值等于由该自变量与反应变量构成的四格表的
Pearson
基于无效模型,现在开始在分析中引入自变量。
标题为"Block1:
Method=Enter
表6OmnibusTestsofModelCoefficients
Chi-square
df
Sig.
Step1Step
21.114
3
.000
Block
21.114
3
.000
Model
21.114
3
.000
由于此处尚未涉及变量筛选的问题,模型中会同时引入三个自变量,自由度=3,此处的
2值为似然比2值,等于上一步(模型中只含有常数项时)的-2log(似然比值)与当前
模型的-2log(似然比值)的差值,参见表6。
本例2=-86.8113-(-107.9257)=21.1144。
表7ModelSummary
Step
-2Loglikelihood
Cox&SnellR
Square
NagelkerkeR
Square
1
86.811a
.237
.316
a.Estimationterminatedatiterationnumber5becauseparameterestimateschangedbylessthan.001.
表7输出了当前模型的-2log(似然比值)和两个伪决定系数(“伪”,以示与线性回归
模型中的决定系数相区别)Cox&SnellR2和NagelkerkeR2。
后两者从不同角度反映了当前
Logistic回归而言,
模型中自恋量解释了反应变量的变异占反应变量总变异的比例。
但对于
是否患冠心病
Percentage
Correct
未患病
患病
Step1是否患冠心病未患病
25
12
67.6
患病
10
31
75.6
OverallPercentage
71.8
a.Thecutvalueis.500
这是应用引入三个自变量后重新拟合的回归模型进行预测的分类表格,P>0.5判断为出
现阳性结果。
可见已经出现了被预测为未患病的研究对象,此处78例研究对象中共有56
(25+31)例判断正确,总正确率为56/78=71.8%,如表8所示。
表9输出了模型中各自变量的偏回归系数及其标准误、Wald2、自由度、P直,及OR
值(即表格最右侧的Exp(B))。
由此可以得出结论,男性(sex=1)较女性更容易患冠心病、心电图异常程度越高,越容易被诊断为冠心病,年龄越大的越容易患冠心病。
由于年龄不可
能为0,这也超出了样本所观察的自变量age取值范围,因此这里的常数项无实际意义。
表9VariablesintheEquation
B
S.E.
Wald
df
Sig.
Exp(B)
a
Step1sex
1.356
.546
6.162
1
.013
3.882
ecg
.873
.384
5.162
1
.023
2.395
age
.093
.035
7.000
1
.008
1.097
Constant
-5.642
1.806
9.757
1
.002
.004
a.Variable(s)enteredonstep1:
sex,ecg,age.
到此为止,可建立如下Logistic回归方程:
_exp(一5.642一1.356乂sex—0.873汇ecg—0.093汇age)
y1exp(-5.642-1.356sex-0.873ecg-0.093age)
或Logit(P)--5.642-1.356sex-0.873ecg-0.093age
第二节分类自变量的定义与比较方法
一、使用哑变量的必要性
在回归模型中,回归系数b表示其他自变量不变,x每改变一个单位时,所预测的y的平
均变化量,当x为连续性变量时这样解释没有问题,二分类变量由于只存在两个类别间的比较,也可以对系数得到很好的解释,但是当x为多分类变量时拟合一个回归系数就不太合适
了,此时需要使用哑变量(DummyVariable)方式对模型加以定义,为说明该问题,先引入下面的一个实例。
例2Hosmer和Lemeshow于1989年研究了低出生体重婴儿的影响因素。
结果变量为是否娩出低出生体重儿(变量名为LOW,1为低出生体重,即婴儿出生体重<2500g,0为非低出生体重),考虑的影响(自变量)有:
产妇妊娠前体重(1wt,磅)、产妇年龄(age,岁)、
产妇在妊娠期间是否吸烟(smoke,0=未吸、1=吸烟)、本次妊娠前早产次数(ptl,次)、是否患有高血压(ht,0=未患,1=患病)、子宫对按摩、催产素等刺激引起收缩的应激性
(ui,0=无、1=有)、妊娠前三个月社区医生随访次数(ftv,次)、种族(race,1=白人,2=黑人,3=其他民族)。
本例包含的自变量种类齐全,有连续性变量、二分类、无序多分类变量。
SPSS默认将
所有的自变量均视作连续性变量,如本例,不同种族的变量赋值为1、2、3,但这仅是一个
代码而已,并不意味着白人、黑人、其他民族间存在大小次序的关系,即并非代表产妇娩出
低出生体重儿概率的logit(P)会按此顺序线性增加或减少。
即使是有序多分类变量,如家庭收入分高、中、低三档,各类别间的差距也是无法准确衡量的,按编码数值来分析实际上就
是强行规定为等距,这显然可能引入更大的误差。
在以上情况时,就必须将原始的多分类变
量转化为数个哑变量,每个哑变量只代表某两个级别或若干个级别间的差异,这样得到的回
归结果才能有明确而合理的实际意义。
图3Categorical子对话框
SPSS提供了CategoricaI按钮用于指定无序多分类自变量,如图3所示,对于取值有n个水
平的自变量X,默认会产生n-1个哑变量X
(1),…,X(n-1),此时以第n个水平为参照水平,SPSS会在分类变量编码矩阵中输出具体的赋值情况,矩阵中元素均为“0”的那一行表示以
该自变量相对应的取值水平作为参照水平。
例如种族race有三个水平,则SPSS会产生两个哑
变量:
表10CategoricalVariablesCodings
1|
Frequency
Parametercoding
(1)
(2)
种族白人
96
1.000
.000
黑人
26
.000
1.000
其他种族
67
.000
.000
在表10中可以看出,相应的两个哑变量含义如下:
race
(1)=1,白人;0,非白人
race
(2)=1,黑人;0,非黑人
由于两个哑变量是同时使用的,而只有“其他种族”这一类在两个哑变量中取值都为0,
因此当同时使用时,实际上两个哑变量都是以“其他种族”作为参照水平。
分别对上述哑变
量的系数进行估计,就可以分别得知白人、黑人和参照水平(其他种族)的差异,而这两个哑变量的参数估计值之差就反映了白人和黑人间的差异。
例如在本例中如果只分析种族的作
用,则最终的结果参见表11.
和其他种族相比,白人低出生体重的风险较低,而黑人则风险较高,但两者均无统计学意义。
如果将白人和黑人相比,则相应的系数为-0.636-0.209=-0.845,其OR值为
exp(-0.845)=0.43,白人的风险要比黑人小得多。
显然,这两个类别之间有无这差异还需要进
行检验,而这在表11中是无法直接体现的。
表11VariablesintheEquation
B
S.E.
Wald
df
Sig.
Exp(B)
〜,a
Step1race
4.922
2
.085
race
(1)
-.636
.348
3.345
1
.067
.529
race
(2)
.209
.471
.197
1
.657
1.232
Constant
-.519
.253
4.218
1
.040
.595
a.Variable(s)enteredonstep1:
race.
表11的输出中两个哑变量均无统计学意义,如果同一分类变量的不同哑变量出现了有些
有意义,有些无意义的情形,又该如何处理?
首先,结果中会对分类变量先进行一个总体的检验,例如在本例中种族的检验其P值为0.085,表明从总体上讲,种族应当对因变量无影响,
此时所有的哑变量都不用再纳入分析了,总的检验比分项的检验更有权威性;如果总的检验
有差异,而有些哑变量无统计学意义,则由于哑变量应当同进同出,原则上仍然应当在模型
中纳入所有的哑变量,以保证哑变量代表含义的正确性。
否则,剔除部分哑变量将会导致参
照水平的变化,从而哑变量的具体含义也会发生改变。
二、SPSS中预设的哑变量编码方式
除以上默认的哑变量对比方式外,SPSS的C