资源描述
28. 二元Logistic回归
二元或多元线性回归的因变量都是连续型变量,若因变量是分类变量(例如:患病与不患病;不重要、重要、非常重要),就需要用Logistic回归。
Logistic回归分析可以从统计意义上估计出在其它自变量固定不变的情况下,每个自变量对因变量取某个值的概率的数值影响大小。
Logistic回归模型有“条件”与“非条件”之分,前者适用于配对病例对照资料的分析,后者适用于队列研究或非配对的病例-对照研究成组资料的分析。
对于二分类因变量,y=1表示事件发生;y=0表示事件不发生。事件发生的条件概率P{ y=1 | xi } 与 xi 之间是非线性关系,通常是单调的,即随着xi 的增加/减少,P{ y=1 | xi } 也增加/减少。
Logistic函数F(x)= 11+e-x,图形如下图所示:
该函数值域在(0,1)之间,x趋于-∞时,F(x)趋于0;x趋于+∞时,F(x)趋于1. 正好适合描述概率P{ y=1 | xi }. 例如,某因素x导致患病与否:x在某一水平段内变化时,对患病概率的影响较大;而在x较低或较高时对患病概率影响都不大。
记事件发生的条件概率P{ y=1 | xi } = pi,则
pi = 11+e-(α+βxi) = eα+βxi1+eα+βxi
记事件不发生的条件概率为
1- pi = 11+eα+βxi
则在条件xi下,事件发生概率与事件不发生概率之比为
pi1-pi = eα+βxi
称为事件的发生比,简记为odds. 对odds取自然对数得到
lnpi1-pi = α+βxi
上式左边(对数发生比)记为Logit(y), 称为y的Logit变换。可见变换之后的Logit(y)就可以用线性回归,计算出回归系数α和β值。
若分类因变量y与多个自变量xi有关,则变换后Logit(y)可由多元线性回归:
或
一、简单的二元Logistic回归
出现某种结果的概率与不出现的概率之比,称为优势比OR.
问题1:研究“低体重出生儿”与“孕妇是否吸烟”之间的关系
有数据文件:
因变量low:是否“低体重出生儿”(0=正常,1=低体重);
自变量smoke:是否吸烟(0=不吸烟,1=吸烟)
【分析】——【回归】——【二元Logistic】,打开“Logistic回归”窗口,将变量“low”选入【因变量】框,变量“smoke”选入【协变量】框;
点【确定】,得到
因变量编码
初始值
内部值
正常
0
低出生体重
1
块 0: 起始块
分类表a,b
已观测
已预测
低出生体重儿
百分比校正
正常
低出生体重
步骤 0
低出生体重儿
正常
130
0
100.0
低出生体重
59
0
.0
总计百分比
68.8
a. 模型中包括常量。
b. 切割值为 .500
若模型只含常数项,预测正确率为68.8%(=130/189);
方程中的变量
B
S.E,
Wals
df
Sig.
Exp (B)
步骤 0
常量
-.790
.157
25.327
1
.000
.454
B=-0.79为模型常数项估计值,S.E为B的标准误;
Wals为Wald卡方检验,原假设H0:回归系数=0;
Exp(B)=0.454(表示患病率与未患病率之比:(1-68.8%)/68.8%);
不在方程中的变量
得分
df
Sig.
步骤 0
变量
smoke
4.924
1
.026
总统计量
4.924
1
.026
引入变量后的得分,以及该变量的回归系数是否为0的检验,原假设H0:回归系数=0;(主要针对逐步引进多个变量时的变量筛选)
块 1: 方法 = 输入
模型系数的综合检验
卡方
df
Sig.
步骤 1
步骤
4.867
1
.027
块
4.867
1
.027
模型
4.867
1
.027
似然比卡方值,上一模型(常数项模型)与当前模型似然比值之差,检验两个模型有无差异,原假设H0:无差异。
模型汇总
步骤
-2 对数似然值
Cox & Snell R 方
Nagelkerke R 方
1
229.805a
.025
.036
a. 因为参数估计的更改范围小于 .001,所以估计在迭代次数 4 处终止。
当前模型的对数似然比值=229.805,两个R方从不同角度反映了当前模型自变量解释因变量的变异占因变量总变异的比例。
分类表a
已观测
已预测
低出生体重儿
百分比校正
正常
低出生体重
步骤 1
低出生体重儿
正常
130
0
100.0
低出生体重
59
0
.0
总计百分比
68.8
a. 切割值为 .500
分类表,概率值>0.5判定为患病;与常数项模型结果相同,预测正确率仍为68.8%
方程中的变量
B
S.E,
Wals
df
Sig.
Exp (B)
步骤 1a
smoke
.704
.320
4.852
1
.028
2.022
常量
-1.087
.215
25.627
1
.000
.337
a. 在步骤 1 中输入的变量: smoke.
自变量的偏回归系数及标准误、Wald卡方、自由度、P值、OR值Exp(B). 从而得到Logistic回归模型:
Logit(P)=-1.087+0.704*smoke
模型结果解释:
产妇在妊娠期间是否吸烟* 低出生体重儿 交叉制表
低出生体重儿
合计
正常
低出生体重
产妇在妊娠期间是否吸烟
不吸烟
计数
86
29
115
产妇在妊娠期间是否吸烟 中的 %
74.8%
25.2%
100.0%
吸烟
计数
44
30
74
产妇在妊娠期间是否吸烟 中的 %
59.5%
40.5%
100.0%
合计
计数
130
59
189
产妇在妊娠期间是否吸烟 中的 %
68.8%
31.2%
100.0%
常数项:为自变量都取0时,优势比(P{Y=1}/P{Y=0})的自然对数值,即不吸烟组的低体重儿概率与正常儿概率之比的对数值:
β0 = ln[25.2% / (1-25.2%)] = ln(29/86)= -1.087
即exp(β0) 表示不吸烟组的低体重儿概率与正常儿概率之比。
回归系数:βi表示自变量xi每改变一个单位,优势比的自然对数值的改变量;exp(βi)即优势比OR值,表示自变量xi每改变一个单位,阳性结果出现的概率与不出现的概率的比值是改变前相应比值的exp(βi)倍。例如,本例中
β1 = ln[(30/44)/(29/86)] = 0.704
相应的OR值=exp(0.704) =2.02, 表示吸烟状况增加一个单位,即从不吸烟改为吸烟时,“吸烟组的低体重儿概率与正常儿概率之比”是“不吸烟组的低体重儿概率与正常儿概率之比”的2.02倍。
注意:OR值反映的不是阳性结果出现概率的变化倍数(相对危险度RR)。
二、将多分类自变量设置为哑变量
对于问题1,若将自变量【“race种族”,1=白人、2=黑人、3=其它种族】引入模型。注意,这里的1、2、3并不表示种族之间的次序关系,即说“该自变量每增加1个单位”是错误的。
此时,就需要将其设置为哑变量(只代表若干级别间的差异),这样的回归结果才有明确合理的实际意义。对于有n个水平值的分类自变量xi,默认生成n-1个哑变量:xi(1), …, xi (n-1).
本例中,对变量“race”有3个水平值,
race(1)=“是否为白人:1=是,0=不是”;
race(2)=“是否为黑人:1=是,0=不是”
其它种族作为参照水平(race(1)、race(2)都取0). 从而白人、黑人、其它种族分别编码如下:
分类变量编码
频率
参数编码
(1)
(2)
种族
白人
96
1.000
.000
黑人
26
.000
1.000
其他种族
67
.000
.000
在“Logistic回归窗口”将变量“race”选入【协变量】框,点【分类】,打开“定义分类变量”子窗口,将变量“race”选入【分类协变量】框,点【继续】;
注:【更改对比】框,可选择“对比方式”:
①指示:指定某一分类水平作为参照水平,可选第一或最后一个水平值;
②简单:可计算该分类变量的各水平与参照水平相比的βi值;
③差值:用于有序分类变量,分类变量某个水平与其前面的所有水平平均值进行比较;
④Helmert:与“差值”相反,用于有序分类变量,分类变量某个水平与其后面的所有水平平均值进行比较;
⑤重复:分类变量的各水平与其前面相邻的水平相比较;
⑥多项式:仅用于数值型分类变量,各水平值和logit P间可能是多项式关系,则依次用一个哑变量代表一个“次方”项,并分别给出检验结果(原假设H0:各水平是等距离的);
⑦偏差:除所规定的参照水平外,其余每个水平均与总体水平相比,此时每个水平的回归系数都是相对于总体水平而言的改变量(参照水平可以用其它水平回归系数计算)。
注:这里的方式选择与【方差分析】的“contrast”选择是相同的。下面以“race”为例计算出的各种方式的系数转化关系如下:
注意:(1)参照水平最好有实际意义,否则就失去比较的目标,不建议用“其它”作为参照水平;参照水平组应有一定的频数做保证(不少于30或50);
(2)对有序自变量,若从专业来看:不同等级对因变量的影响程度是一致的,可将该变量作为连续型变量处理;否则,需要分别以哑变量和连续型变量方式引入模型,观察各哑变量的回归系数间是欧服存在等级关系,以及对两个模型进行似然比检验,若无统计学意义,且各哑变量的回归系数间存在等级关系,可以将该自变量作为连续型变量,否则最好是用哑变量方式,引入模型。
三、自变量的筛选与逐步回归
回归模型应该尽量引入对因变量有影响作用的变量,将没有影响或影响较小的变量排除。
用到的假设检验方法有:Walds检验(最差,未考虑各因素的综合作用)、似然比检验(最可靠,基于整个模型的拟合情况)、比分检验(最常用于筛选变量,一般与似然比检验结果一致)。
SPSS提供了6种筛选变量的方法(选入自变量时均采用比分检验,剔除自变量的标准不同):向前(条件)、向前(LR)、向前(Wald)、向后(条件)、向后(LR)、向后(Wald)。
问题2:用逐步回归法对“低体重出生儿”做二元Logistic分析。
1. 【分析】——【回归】——【二元Logistic】,打开“Logistic回归”窗口,将变量“low”选入【因变量】框,变量“age, lwt, race, smoke, ptl, ht, ui, ftv”选入【协变量】框;
2. 点【分类】,打开“定义分类变量”子窗口,将变量“race”选入【分类协变量】框,【更改对比】选“指示符”,勾选“第一个”,点【更改】,点【继续】;
3. 原窗口【方法】框选择“向前LR”,表示向前似然比法,点【确定】得到
因变量编码
初始值
内部值
正常
0
低出生体重
1
分类变量编码
频率
参数编码
(1)
(2)
种族
白人
96
.000
.000
黑人
26
1.000
.000
其他种族
67
.000
1.000
块 0: 起始块(模型0,只有常数项)
分类表a,b
已观测
已预测
低出生体重儿
百分比校正
正常
低出生体重
步骤 0
低出生体重儿
正常
130
0
100.0
低出生体重
59
0
.0
总计百分比
68.8
a. 模型中包括常量。
b. 切割值为 .500
方程中的变量
B
S.E,
Wals
df
Sig.
Exp (B)
步骤 0
常量
-.790
.157
25.327
1
.000
.454
不在方程中的变量
得分
df
Sig.
步骤 0
变量
age
2.407
1
.121
lwt
4.616
1
.032
race
5.005
2
.082
race(1)
1.727
1
.189
race(2)
1.797
1
.180
smoke
4.924
1
.026
ptl
7.267
1
.007
ht
4.388
1
.036
ui
4.205
1
.040
ftv
.934
1
.334
总统计量
29.140
9
.001
所有变量的比分检验结果,race产生2个哑变量,故自由度为2;变量“ptl妊娠前早产次数”的得分最大为7.267,其P值=0.007<0.05, 故下一步将它首先选入模型。
块 1: 方法 = 向前步进(似然比)(模型1)
模型系数的综合检验
卡方
df
Sig.
步骤 1
步骤
6.779
1
.009
块
6.779
1
.009
模型
6.779
1
.009
步骤 2
步骤
4.309
1
.038
块
11.089
2
.004
模型
11.089
2
.004
步骤 3
步骤
6.363
1
.012
块
17.452
3
.001
模型
17.452
3
.001
每一步引入变量后,整个模型中是否所有回归系数均为0的似然比检验表。
模型汇总
步骤
-2 对数似然值
Cox & Snell R 方
Nagelkerke R 方
1
227.893a
.035
.050
2
223.583b
.057
.080
3
217.220b
.088
.124
a. 因为参数估计的更改范围小于 .001,所以估计在迭代次数 3 处终止。
b. 因为参数估计的更改范围小于 .001,所以估计在迭代次数 4 处终止。
每一步的-2log(L)值逐步减小,两个R方逐步增大。
分类表a
已观测
已预测
低出生体重儿
百分比校正
正常
低出生体重
步骤 1
低出生体重儿
正常
126
4
96.9
低出生体重
57
2
3.4
总计百分比
67.7
步骤 2
低出生体重儿
正常
121
9
93.1
低出生体重
50
9
15.3
总计百分比
68.8
步骤 3
低出生体重儿
正常
123
7
94.6
低出生体重
47
12
20.3
总计百分比
71.4
a. 切割值为 .500
每一步的分类结果表。
方程中的变量
B
S.E,
Wals
df
Sig.
Exp (B)
步骤 1a
ptl
.802
.317
6.391
1
.011
2.230
常量
-.964
.175
30.370
1
.000
.381
步骤 2b
ptl
.823
.318
6.683
1
.010
2.277
ht
1.272
.616
4.270
1
.039
3.569
常量
-1.062
.184
33.224
1
.000
.346
步骤 3c
lwt
-.015
.007
5.584
1
.018
.985
ptl
.728
.327
4.961
1
.026
2.071
ht
1.789
.694
6.639
1
.010
5.986
常量
.893
.829
1.158
1
.282
2.441
a. 在步骤 1 中输入的变量: ptl.
b. 在步骤 2 中输入的变量: ht.
c. 在步骤 3 中输入的变量: lwt.
逐步回归每一步引入的自变量及其回归系数的估计值、标准误、Walds卡方、自由度、P值、OR.
最终依次筛选出的变量是: ptl(妊娠前早产次数), ht(是否高血压), lwt(产妇体重)。可以得到Logistic回归方程:
Logit(P)=0.893+0.728*ptl+1.789*ht-0.015*lwt
如果移去项则建模
变量
模型对数似然性
在 -2 对数似然中的更改
df
更改的显著性
步骤 1
ptl
-117.336
6.779
1
.009
步骤 2
ptl
-115.325
7.067
1
.008
ht
-113.946
4.309
1
.038
步骤 3
lwt
-111.792
6.363
1
.012
ptl
-111.231
5.242
1
.022
ht
-112.145
7.070
1
.008
已选入模型的变量,在后续步骤中是否需要剔除出模型的似然比检验结果表,根据P值判断都不剔除。
不在方程中的变量
得分
df
Sig.
步骤 1
变量
age
3.149
1
.076
lwt
3.340
1
.068
race
5.359
2
.069
race(1)
2.056
1
.152
race(2)
1.712
1
.191
smoke
3.164
1
.075
ht
4.722
1
.030
ui
2.162
1
.141
ftv
.753
1
.385
总统计量
22.858
8
.004
步骤 2
变量
age
3.108
1
.078
lwt
5.830
1
.016
race
4.882
2
.087
race(1)
1.597
1
.206
race(2)
1.834
1
.176
smoke
3.117
1
.078
ui
3.010
1
.083
ftv
.520
1
.471
总统计量
18.690
7
.009
步骤 3
变量
age
1.725
1
.189
race
5.216
2
.074
race(1)
3.477
1
.062
race(2)
.605
1
.437
smoke
2.821
1
.093
ui
2.236
1
.135
ftv
.236
1
.627
总统计量
13.360
6
.038
对每一步骤没有被选入模型的自变量的比分检验结果表(其P值均>0.05)。
四、模型拟合效果与拟合优度检验
1. 模型效果的判断标准
(1)-2log(对数似然值)
越接近0,表明模型拟合效果越好。
或进一步计算Cox&Snell R方、Ngelkerke R方,来判断。
(2)模型预测正确率
(3)ROC曲线
使用模型预测概率绘制ROC曲线,可以帮助确定合理的预测概率分类点(预测概率大于多少时,判定为阳性结果)。操作步骤:
用“保存”将预测概率存为新变量,再利用其绘制出ROC曲线;考察图形特征,检验ROC曲线下面积是否为0.5;输出时选中“ROC曲线的坐标点”,输出各种预测概率界值时相应的灵敏度、1为特异度以便选择最优判断界值。
2. 拟合优度检验
(1)简约模型与饱和模型之前差别的似然比检验
简约模型:y = β0 +β1x1 + β2x2
饱和模型:y =β0 +β1x1 + β2x2 + β3 x1 x2
(2)Hosmer-Lemeshow检验
按模型预测概率的大小将所有样本10等分,再根据每一组中因变量各种取值的实测值与理论值计算Pearson卡方。通常用于自变量很多或自变量中包含连续型变量的情况。
【选项】窗口勾选“Hosmer-Lemeshow拟合度”即可计算该值。
注:(1)残差分析,【选项】窗口可以生成几种残差,常用的有:Standardized残差、Deviance残差。若残差绝对值大于2,提示该条记录可能是异常值。
(2)Logistic回归也要注意多重共线性问题。
展开阅读全文