-
26. Logistic
回归
(一)
Logistic
回归
一、原理
二元或多元线性回归的因变量都是连续型变量,
若因变量是分类
变量(例如:患病与不患病;不重要、重要、非常重要)
,就需要用<
/p>
Logistic
回归。
Logistic
回归分析可以从统计意义上估计出在其它自变量固定不
p>
变的情况下,每个自变量对因变量取某个值的概率的数值影响大小。
Logistic
回归模型有“条件”与“非条件”之分,前者
适用于配
对病例对照资料的分析,后者适用于队列研究或非配对的病例
< br>-
对照
研究成组资料的分析。
对于二分类因变量,
y=
1
表示事件发生;
y=
0
表
示事件不发生。
事件发生的条件概率
P{
y
=1 |
x
i
}
与
x
i
之间是
非线性关系,通常是
单调的,即随着
x
i
的增加
/
减少,
P{
y
=1 |
x
i
}
也
增加
/
减少。
Logistic
函数
F(
x
)=
,图形如下图所示:
1
/
32
该函数值域在
(0,1)
之间,
x
趋于
-
∞时,
F(
x
)
趋于
0
;
x
趋于
+
∞时,
F(
p>
x
)
趋于
1.
正好适合描述概率
P{
y
=1 |
x
i
}.
例如,某因素
x
导致患病与
否:
x
在某一水平段内变化时,对患病概率的影响较大;而在
x
较低
或较高时对患病概率影响都不大。
记事件发生的条件概率
P{
y
=1 |
x
i
} =
p
i
,则
p
i
=
记事件不发生的条件概率为
=
1-
p
i
=
则在条件
x
i
下,事件发生概率与事件不发生概率之比为
=
称为事件的发生比,简记为
odds.
对
odds
取自然对数得到
上式左边(对数发生比)记为
Logit(y),
称为
y
的
Logit
p>
变换。可见变
2
/
32
换之后的
Logit(y)
p>
就可以用线性回归,计算出回归系数
α
和<
/p>
β
值。
若分类
因变量
y
与多个自变量
x
i
有关,则变换后
Logit(y)
可由多
元线性回归:
p
p>
logit(
p
)
?
ln(
)
?
?
?
?
1
x<
/p>
1
?
p
?
1
?
k
x
k
或
p
(
p>
y
?
1|
x
1
,
二、回归参数的解释
1.
三个名词
,
x
k
)
< br>?
1
1
?
e
?
(
?
?
?
1
x
1
p>
?
?
k
x
k
)
发生比(
odds
)
=
=
例如,事件发生概率为
0.6
,不发生
概率为
0.4
,则发生比为
1.5
p>
(发
生比
>1
,表
示事件更可能发生)
。
发生比率(<
/p>
OR
)
=
=
=
=
即主对角线乘积
/
副对角线乘积,也称为交叉积比率,优势比。例如,
说明:大于
1
(小于
1
)的发生比率,表明事件发生的可能性会提高
(降低)
,或自变量对事件概率有正(负)的作用;发生比率为
1
表
示变量对事件概率无作用。
3
/
32
相对风险(
RR
)
=
=
用来
进行两组概率之间的比较。当
p
1
=
p
2
时,相对风险为
< br>1
,表明两
组在事件发生方面没有差别。
2.
连续型自变量回归参数的解释
截距
α
:
基准发生比的对数,即当
Logistic
回归模型中没有任
何自变量时
(除常量外,所有自变量都取
0
值)所产生的发生比。
由于理解发生比,比理解对数发生比更容易,故将
Logistic
回归
模型改写为:
odds =
=
>1
(
<1
)
,
即
x
k
每增加一个单位值时发生比
=1,
那么
x
k<
/p>
不论怎样变化发生比
若
β
k
>0
(
β
< br>k
<0
)
,则
< br>会相应增加(减少)
;若
β
k<
/p>
=0
,则
都不会变化。
< br>
反映了自变量
x
k
增加一个单位时发生比所变化的倍数,即
(
x
p>
k
+1)
时的发生比与原发生比
【
(
x
k
)
时】
之比。
自变量
x
k
每变化一个单
位,
发生比率的变化率为
注:由于
p>
β
k
是自变量
x<
/p>
k
的偏系数估计,故
称为调整发生比率<
/p>
(
AOR
)的估计。实际中,往往更关心
的不是自变量变化
1
个单位,
而是变化
一段水平
b-a
个单位,例如年龄每增加
5
岁,此时调整发生
比率为
4
/
32
AOR =
3.
二分类自变量回归参数的解释
p>
二分类变量,例如性别,取值可以用
0
或<
/p>
1
编码,也称为标志变
量或虚拟变量。<
/p>
若
x
k
为取值
0
或
1
的二分类变量,则有
p
i
ln(
)
x
k
?
1
?
?
?
?
1
x<
/p>
1
?
1
?
p
i
ln(
p
i
)
x
k
?
0
?
?
?
?
1
x
1
?
1
?
p
i
?
?
k<
/p>
?
1
?
?
k
?
0
两式作差得
p
i
p
i
?
k
?
ln(
)
x
k
?
1
?
ln(
)
x
k
?
0
?
ln(odds)
x
k
?
1
vs
x
k
?
0
1
?
p
i
< br>1
?
p
i
可见
β
k
就是在控制其它变量条件下
,
x
k
=1
与
x
k
=0
的对
数发生比的差;
也即是发生比率的对数,即调整发生比率的估计可表示为
=
(odds)
x
k
?
1
vs
x
k<
/p>
?
0
注意,发生比率是
,而不是两者概率比
4.
多分类变量的处理与回归参数的解释
当分类自变量多于两个类别时,
需要建立一组虚拟变量来代表类
型的归属性质。若一个分类变量包括
m
个类别,则可以产生
p>
m
个相
应的虚拟变量,但建模需要的虚拟变
量的数目为
m-1.
省略的那个类
别作为参照类。
5
/
32
例如,
年龄是有序变量,
按年龄段分为四个类别:
x
<40
,
40
≤
x
<50
,
50
≤
x
<60,
x
≥
60.
设置
3
个虚拟变量
Age1
表示
40
≤
x
<50
p>
(属于该年龄段则
Age1=1
,否则
p>
Age1=0
)
;
Age2
表示
50
≤
< br>x
<60
(属于该年龄段则
Ag
e2=1
,
否则
Age2=0
)
;
Age3
表示<
/p>
x
≥
60
(属于
该年龄段则
Age3=1
,
否则
Age3=0
)
;另一个不指定虚拟变量的<
/p>
x
<40
作为参照类(
< br>Age1
,
Age2
,
Age3
都为
0
;哪一
类作为参照类是随意的,取决于偏好或解
释的方便)
。
则模型为
p
ln(
)
?
?
?
?
1
Age
1
?
?
2
Age
2
?
?
3
Age
3
1
?
p
同二分类变量时一样,
β
1
代
表
40
≤
x
<
50
与参照类(
Age0:
x
<40
)在
因变量上的差别,故
β
1
=
ln(odds)
Age1 vs Age0
且
40
≤
x
< br><50
对
x
< br><40
的发生比率为
.
注:<
/p>
(
1
)
名义变量
直接就是分类变量;
连续变量也可以改为分类
变量,例如考试成
绩按分数段分为高、中、低三档。
(
2
)
另外,
也可采用效应变量编码,<
/p>
三种取值:
-1,
0(
参照类
), 1.
(
3
)用
SAS
中
CLASS
语句指定分类变量,可以自动进行
效应
6
/
32
< br>编码,作为一组变量纳入模型,并对每一类别单独做显著性检验。
5.
用概率解释自变量的作用
(1) <
/p>
对事件发生概率的偏作用,可用
Logit
函数求该自变量的偏
导数来刻画:
?
P
{
y
?<
/p>
1|
x
k
}
p>
?
?
k
p
(
p
?
1)
?
x
k
其中
p
为事件发生概率。对于二元
Logistic
回归,
p
=0.
5
时,斜率最
陡,此时
x=-
α/β
,
称为中位有效水平。
(2)
利用得到的
Logistic
回归方程,可以
预测概率:
?
x
?
?
k
k
k
e
odds
?
?
p
?
?
x
?
?
?
p>
?
?
k
k
k
1
?
odds
1
?
e
?
?
?
有预测概率就可以计算某自变量值发生离散变
化时,
预测概率的离散
变化:
P
{
y
?
1|
x
,
x
k
?
x
k
< br>}
?
P
{
y
?
1|
x
,
x
k
}
三、标准化系数
通常在线性回归模型
中的连续型自变量是以不同尺度度量的,
这
就使得某自变量中一
个单位的变化并不等价于另一自变量上一个单
位的变化。
因此,
要使用标准化系数
(使得因变量的作用具有可比性)
。
标准化系数表示自变量的一个标准差的变化所
导致的因变量上
以其标准差为单位度量的变化。有两种标准化的方法:
< br>
(
1
)先回归再标准化;
p>
(
2
)先标准化
x
,
y
再回归
;
7
/
32
注:对于分类变量,例如性别
、民族等,变量的标准化是没有意义
的。但其尺度标准要一致,比如
0,1,2,3
都变成
1,2,3,4.
四、偏相关
偏相关,用来刻画在控制其他变量下,某自变量对
Logistic
< br>回归
的贡献(依赖于其它变量)
。偏相关系数计算公式如
下:
Wald
?
2
?
2d.f.
r
?
?
?
2LL
0
其中,
d.f.
为自由度,分母为
-2
倍的截距模型(只有截距
)的对数似
然值。
五、回归参数的估计
p>
Logistic
回归参数的估计通常采用最大似然法,
其基本思想是先
建立似然函数与对数似然函数,
再
通过使对数似然函数最大求解相应
的参数值,所得到的估计值称为参数的最大似然估计值
。
假设有
N
个案例构成的总体,
Y
1
,
…
,
Y
N
.
从中
随机抽取
n
个案
例作为样本,观测值标
注为
y
1
,
…
, y
n
.
设
p
i
=P(
y
i
=1 |
x
i
)
为给定
x
i
的条
件下得到结果
y
i
=1
的条件概率,而在
同样条件下得到结果为
y
i
=0
的
条件概率为
P(
y
i
=0 |
x
i
)=1-
p
i
.
于是,得到一个观测值的概率为
P
(
y
i
)
?
p
i
y<
/p>
i
(1
?
p
p>
i
)
1
?
y
i
其中,
y
i
=1
或
y
i
=0.
当
y
i
=1
时,
P(
y
i
)=
p
i
=
P(
y
i
=1 |
x
i
).
由于各项观测相互独立,
故它们的联合分布可表示为各边际分布
的乘积:
8
/
32
L
(
?
)
?
?<
/p>
p
i
y
i
(1
?
p
i
)
1
?
y
i
i
?
< br>1
n
称为
n
个观测的似然函数。
对于
Logistic
回归,
p
i
?
e
?
?
?
x
i
/
(1
?
e
?
?
?
x
i
)
. <
/p>
根据最大似然原理,估计参数
α
和
β
使得似然函数
L(
θ
)
最大,令
ln[
L
(
?
)]
?
?
[
y
i
(
?
?<
/p>
?
x
i
)
?
ln(1
?
e
p>
?
?
?
x
i
)]
i
?
1
n
称为对数似然函数
,也即让
ln[L(
θ
)]
最大。令
?
ln[
p>
L
(
?
)]
n
e
?
?
?
x
i
?
?
[
y
i
?
]
?
0
?
?
?
x
p>
i
?
?
1
?
e
i
?
1
?
ln[
L
(
?
)]
n
e
?
?
?
x
i
?
?
[
y
i
?
]<
/p>
x
i
?
0
?
?
?
x
i
?
?
1
?
e
i
?
1
采用牛顿迭代法解出
α
和
β
的估计值。
六、假设检验
1.
似然比检验
< br>H
0
:
β
1
=
β
2
=
…
=
β
p
p>
=0
统计量
2
?
LR
?
?<
/p>
2(ln
L
0
?
ln
L
1
)<
/p>
?
?
2ln
L<
/p>
0
?
(
?
2ln
L
1
)
服从自由度为变量个数该变量
(从
L
0
到
L
1
)
的卡方分布。
若
P
值
<0.05,
则拒绝原假设。
2.
比分检验
以未包含某个或几个变量的
模型为基础,
保留模型中参数的估计
值,
并假设新增加的参数为零,
计算似然函数的一价偏导数
(也称
“有
效比分”
)
及信息距阵,
两者相乘便得比分检验的统计量
S.
样本量较
9
/
32
大时,
S
近似服从自由度为待检验因素个数的
?
2
分布。
3.
Wald
检验
即广义的
T
检验,统计量为
?
p>
/
SE
]
2
W
?
Z
2
?
[
?
?
k
?
k
?
的标准误。
H
0
:
β
k
=0
< br>为真时,
Z
为标准正态分布,
W
其中
SE
?
?
为
?
k
k
p>
服从自由度为
1
的渐近
?
2
分布。
?
?
Z
?
SE
?
?
?
?
1.96SE
.
β
< br>k
的
95%
置信区间估计为:<
/p>
?
?
?
k
?
k
?
?
k
k
发生比率的
1-
p>
α
置信区间为:
e
?
?
Z
?
p>
SE
?
?
k
?
/2
?
k
.
注:上述三种方法中,似然比检验最可靠,比分检验一般与它相
p>
一致,但两者均要求较大的计算量;而
Wald
检验未考虑各因素间的
综合作用,
在因素间有共线性时结果
不如其它两者可靠。
为计算方便,
通常向前选取变量用似然比或
比分检验,而向后剔除变量常用
Wald
检验。
七、模型的评价——拟合优度检验
检查模型估计与实际数据的符合情况。
检验统计量:
1.
剩余差
D;
2.
皮尔逊
χ
2
若统计量的
P
值>
0.05
,则认为模型拟合较好。
(二)
PROC
LOGISTIC
过程步
10
/
32
基本语法:
PROC LOGISTIC data =
数据集
<
可选项
>
;
CLASS
分类变量
;
FREQ
频数变量
;
<
br>可选项
权重变量
;>
效应名
=
效应类型
(
变量列表
可选项
>);>
MODEL
因变量
<
(
变量选项
) >
=
自变量列表
>;
变量列表
;>
’label’
分类变量名
线性组合系数表
;>
<
’label’
> variable < /
options >
;>
OR
)
=6.
000
.
预测概率和观测响应的关联
一致部分所占百分比
50.4
Somers D
0.420
0.714
0.210
0.710
不一致部分所占百分比
8.4
Gamma
结值百分比
对
41.2
Tau-a
3808
c
例
2
研究性别、疾病的严重程度对疾病疗效的影响,得数据如下:
15
/
32
拟合回归方程为
Logit(p)
=
α
+
β
1
Sex
+
β
2
Degree.
代码:
data
effects2;
input
sex degree effect
count @@;
cards
;
0 0 1 21 0 0 0 6 0 1 1 9 0 1 0 9
1 0 1 8 1 0 0 10 1 1 1 4 1 1 0 11
;
run
;
proc
logistic
data
= effects2
DESCENDING
;
freq
count;
model
effect = sex degree /
scale
=none
aggregate
;
*
模
型的拟合优度检验
;
output
out
=predict
pred
=prob;
*outpu
t
语句设置输出结果
,
这
里结果存在
predict
数据中,预测值为
prob;
run
;
proc
print
data
=predict;
run
;
*
考虑两个自变量的交互作用
;
proc
logistic
data
= effects2
DESCENDING
;
freq
count;
model
effect = sex degree
sex*degree;
run
;
运行结果:
响应概况
有序
effect
总频数
值
1
1
42
16
/
32