sas逻辑回归course.shufe.edu.cn/tjrj/ppt/8.pdf4 logistic回归分析...
TRANSCRIPT
SAS逻辑回归
上海财经大学统计与管理学院
目录
逻辑回归理论知识
案例一:心理问题研究
案例二:红细胞沉降率
案例三:DIY
目录
逻辑回归理论知识
案例一:心理问题研究
案例二:红细胞沉降率
案例三:DIY
4
Logistic回归分析
在属性数据分析中,我们讨论了关联分析(相关分析),它是 估计属性(连续)变量间的关联(相关)程度,并检验其显著性.
在回归分析或方差分析中,我们用一些变量(自变量)说明或预测因变量的变化.
5
Logistic回归分析
连续的
属性的
线 性
回归分析
响应变量 分析方法
回归分析
Logistic
因变量 或响应变量
属性的或 连续的
Logistic回归是用于说明或预测属性的因变 量的回归,不论自变量是连续的或属性的
6
Logistic回归分析
Logistic回归分析要解决的问题,类似于普通回归所要解决的很广的
一类问题。比如在医药行业中,因变量𝑌 = 0表示正常情况,而
𝑌 = 𝑖 (𝑖 = 1,… , 𝐾)表示用药后的不同反映。显然𝑌的取值与药的用量𝑥1,
性别𝑥2,年龄𝑥3,体重𝑥4,血压𝑥5 等等有关。这里因变量𝑌是属性 (定性)变量,
自变量有属性的也有定量的,我们的目的仍是建立因变量𝑌与自变量之间
的相依关系。
再例如节目是否受欢迎,产品是否被接受,信用卡是否被欺诈等等都是
属性变量。描述这一特性发生与否的统计特征是它发生的可能性大小,
即概率。这一可能性本身也受其他因素的影响。因而也希望用一些自变
量来说明和预测所关心的特性发生的可能性大小。当𝑌是连续变量时,可
用方差分析和回归分析处理;当𝑌是属性变量时,则用Logistic回归分析
处理。
8
解决这一问题的常用做法是对概率𝑝作一变换𝑓(𝑝),变换𝑓的目的是将变量的取值范围由(0,1)变到整个数轴(-∞,∞),这时𝑓(𝑝)可以表示为自变量𝑥1, 𝑥2, …的线性函数了。在统计中一个常用的变换就是以下的Logit变换:
𝐿𝑜𝑔𝑖𝑡 𝑝 = 𝐿𝑜𝑔(𝑝
1 − 𝑝)
Logistic回归分析
9
Logit 函数 :𝑌 = 𝐿𝑜𝑔𝑖𝑡(𝑝) 的图形如下(随𝑝由0变到1,𝑌的值由-∞单调上升到∞) :
Logistic回归分析
10
当p在(0,1)中变化时,logit(p)就在(-∞,∞)中变化。利用logit变换可将属性变量取某个值的概率p的logit变换表示为自变量的线性函数,即 𝐿𝑜𝑔𝑖𝑡 𝑝 =𝛽0 + 𝛽1𝑥1 +⋯+ 𝛽𝑚𝑥𝑚 (5.1) 或等价地
𝑝 =exp (𝛽0+𝛽1𝑥1+⋯+𝛽𝑚𝑥𝑚)
1+exp (𝛽0+𝛽1𝑥1+⋯+𝛽𝑚𝑥𝑚)(5.2)
𝐿𝑜𝑔𝑖𝑡 𝑝 = 𝐿𝑜𝑔(𝑝
1 − 𝑝)
Logistic回归分析
11
模型(5.2)称为Logistic回归模型.其中最简单的情况是只含一个自变量:Logistic回归函数的一般形式为 𝐿𝑜𝑔𝑖𝑡 𝑝 =𝛽0 + 𝛽1𝑥1或
𝑝 =exp (𝛽0 + 𝛽1𝑥1)
1 + exp (𝛽0 + 𝛽1𝑥1)
Logistic回归分析
12
一般地,拟合回归模型时,是要建立属性变量(因变量)取某种状态的概率𝑝𝑖关于自变量的关系式.自变量若也是属性的变量,应先把它数量化.比如自变量𝑥取𝑘种不同的状态,引入𝑘 − 1个标识变量𝑧𝑖(𝑖 = 1,… , 𝑘 − 1)作为自变量.其中 𝑧𝑖 = 1 , 当𝑥取第𝑖种状态, 𝑧𝑖 = 0 , 其它. (𝑖 = 1,… , 𝑘 − 1).
对于Logistic回归模型,观测到的并不是𝑝𝑖本身的值,而是在自
变量的各种不同取值时所关心的属性变量出现的某一状态(结
果),或者经多次观测得到的各种状态发生的频率.拟合的任务
是对频率建立它依赖于自变量的关系式.
特别是两值Logistic回归问题(即属性变量表示某事件发生或
不发生),这时拟合的任务就是建立这事件发生的概率依赖于
自变量的关系式.
Logistic回归分析
13
响应变量
Yes No
二值的两个类别
Logistic回归类型
二值的
列名的
有序的
三个或
多个类别
列名的
有序的
Logistic回归分析
14
在Logistic回归中,衡量模型拟合好坏的指标除了各种与似然函数联系的综合指标外,一个常用的做法是计算预测的和实际的观测中的一致对与不一致对的比例. 两值Logistic回归的因变量𝑌可取值为0或1,而拟合的Logistic回归式𝑙𝑜𝑔𝑖𝑡(𝑝) = 𝑏0+ 𝑏1𝑥是用以预测𝑌 = 1的概率𝑝的.对每个实际观测(𝑌𝑖, 𝑋𝑖) ,用拟合的回归式都可以计算得到:
𝑝𝑖 =exp 𝑏0 + 𝑏1𝑥𝑖
1 + exp 𝑏0 + 𝑏1𝑥𝑖
Logistic回归分析 预测概率和观测响应的关联性
15
Logistic回归分析 预测概率和观测响应的关联性
对于实际和预测的数据 (𝑌𝑖 , 𝑝𝑖 ),考虑数据对 (𝑌𝑖 , 𝑝𝑖 )(𝑌𝑗 , 𝑝𝑗 ).
对于Yi≠Yj的数据对规定: 若(𝑌𝑖 -𝑌𝑗)(𝑝𝑖 − 𝑝𝑗 )>0称数据对是一致的;
若(𝑌𝑖 -𝑌𝑗)(𝑝𝑖 − 𝑝𝑗 )<0 称数据对是不一致的;
若(𝑌𝑖 -𝑌𝑗)(𝑝𝑖 − 𝑝𝑗 )=0称数据对平分的.
对所有𝑌𝑖 ≠ 𝑌𝑗的数据对(𝑌𝑖 , 𝑝𝑖 )(𝑌𝑗 , 𝑝𝑗 ),统计其一致对,不
一致对的总数及所占的比例。这也是衡量拟合的Logistic回归是否反映实际数据趋势的一种方法。
16
此例在‚预测概率和观测响应关联表‛中给出了利用数据对中预测和实际预测趋向一致与不一致的统计及导出的统计量值.因为原始记录中有162个PURCHASE=1,269个为0。所以可配成162×269=43578个对。其中30.1%用拟合的回归模型预测时其趋势是与实际结果一致的.而19.5%是不一致的,其余为平分的. Somers'D等4个统计量是与一致对个数有联系的秩相关指标,指标值越高的模型越有较高的预测能力。
Logistic回归分析 预测概率和观测响应的关联性
17
优势比 • 优势比表示,事件在一个组别,相对于另一个组别,更有可能发生的
机会
• 女性比男性更有多少可能性花费100美元以上购买商品
“是”在Group A出现的概率 = 20/80 (0.25) “否”在Group A出现的概率 = 60/80 (0.75)
结果
是 否
Group A 20 60
Group B 10 90
合计
80
100
合计 30 150 180
18
优势比
Group A的Odds
“是”在Group A出现的概
率
“否”在Group A出现的概率 0.25 0.75 =
0.33
Group A的Odds Group B的Odds
0.33 0.11 = 3
19
由Logistic 回归模型计算优势比
• Logistic 回归模型:
• 优势比(女性相对于男性):
0malesodds
e
10femalesodds
e
10 e
0e
优势比= = 1e
gender)log(ˆlogit 10 oddsp
20
Odds Ratio Estimates Point 95% Wald Effect Estimate Confidence Limits gender Female vs Male 1.549 1.040 2.305
Profile Likelihood Confidence Interval for Adjusted Odds Ratios Effect Unit Estimate 95% Confidence Limits gender 1.0000 1.549 1.043 2.312
21
Odds Ratio Estimates Point 95% Wald Effect Estimate Confidence Limits age 1.020 0.985 1.056
Profile Likelihood Confidence Interval for Adjusted Odds Ratios Effect Unit Estimate 95% Confidence Limits Age 1.0000 1.020 0.985 1.056
22
Logistic回归模型的优势比应用
例 8.1(续)房地产商希望能估计出一个家庭年收入为 9 万元的客户其签订意向后最终买房
与不买房的可能性大小之比值;以及一个家庭年收入为 9 万元的客户其签订意向后最终买房
的赔率(odds)是年收入为 8 万元客户的多少倍。
解:由例 8.1 中所得的模型(8.15)得
ˆ
ln( )ˆ1
0.886 0.156x ,
因此
ˆ
ˆ1
exp 0.886 0.156x , (8.21)
23
将0 9x x 代入上式,得一个家庭年收入为 9 万元的客户其签订意向后最终买房与不买房
的可能性大小之比值为
odds(年收入 9 万)= 0
0
ˆ
ˆ1
0exp 0.886 0.156x
exp 0.886 0.156 9 =1.6787。
这说明一个家庭年收入为 9 万元的客户其签订意向后最终买房的可能性是不买房的约
1.68 倍。
Logistic回归模型的优势比应用
24
另外,由(8.21)式还可得
OR(年收入 9 万,年收入 8 万)
exp 0.886 0.156 9
exp 0.886 0.156 8
exp 0.156 (9 8) =1.1688
所以一个家庭年收入为9万元的客户其签订意向后最终买房的赔率是年收入为8万元客
户的约 1.17 倍。
Logistic回归模型的优势比应用
25
Logistic回归分析
例1--用 编程方法完成多元Logistic回归 在SAS/STAT软件中的LOGISTIC过程专用于完成Logistic回归分析的。它的用法与REG过程类似的,基本用法如下:
proc logistic data=数据集名
descend order =... ;
model 因变量名 = 自变量名列;
run;
Logistic回归过程对因变量的第一水平的频率拟合logistic回归,选项descending 和 order 就是规定各水平排序的方式. 缺省是按升序排序。 order = data internalformatted 其中data代表按照数据出现顺序分类,formatted按照定义格式名的顺序分类,internal对组内原数据值进行类似sort的排序
26
Logistic回归分析
例1--用 编程方法完成多元Logistic回归
title 'sas0801.sas‘;
data temp;
set saslib.sales;
highinc=(income='High');
gen=(gender='Male');
run;
proc logistic data=temp descend;
model purchase = age gen highinc /
selection=stepwise;
Run;
(ch08_01.sas)
注:缺省时因变量的值是按从小到大排序,为了拟合因变量取1时的概率,必须加上选项DESCEND.
27
Logistic回归分析
例2: 数据集Ingots记录了在不同加热时间Heat和热处理时间Soak下重复进行的N次铸件试验中,没有轧制好的个数R.试对没有轧制好的铸件比例拟合线性模型.
title2 'Introductory Example';
data ingots;
input heat soak r n @@;
cards;
7 1.0 0 10 14 1.0 0 31 27 1.0 1 56 51 1.0 3 13
7 1.7 0 17 14 1.7 0 43 27 1.7 4 44 51 1.7 0 1
7 2.2 0 7 14 2.2 2 33 27 2.2 0 21 51 2.2 0 1
7 2.8 0 12 14 2.8 0 31 27 2.8 1 22 51 4.0 0 1
7 4.0 0 9 14 4.0 0 19 27 4.0 1 16
;
run;
(ch08_02.sas)
28
Logistic回归分析
proc logistic data = ingots;
model r/n = heat soak;
output out=outp p=pr;
run;
proc print data=outp;
run;
quit; (ch08_02.sas)
以上OUTPUT语句生成的输出数据集OUTP中包含概率: 𝑝 = 𝑃{铸件没有轧制好}的估计值.
29
Logistic回归分析
拟合的模型为: Logit(p)=-5.5592+0.082 Heat
不显著
30
Logistic回归分析
此例在‚预测概率和观测响应关联表‛中给出了利用数据对中预测和实际预测趋向一致与不一致的统计及导出的统计量值。现在一致对占的比例为64.3%,不一致对占的比例为18.4%. Somers‘D等4个统计量是与一致对个数有联系的秩相关指标,其指标值越高表示模型越有较高的预测能力.
31
Logistic回归分析 用 编程方法完成两值因变量的Logistic回归
proc logistic data = 数据集名; model 频数变量名/全部响应数变量名= 自变量名列; run;
以上是对两值因变量,模型语句的另一种用法的一般 形式:其某属性发生的频率也可用r/n这种形式的数据给出,分别指明(在自变量的某个数值下)频数和全部响应数的变量名.
逻辑回归 案例一:心理健康调查研究
• 问题和数据描述
心理健康调查研究
• 方法介绍
Logistic回归
• SAS分析
reg过程 简单线性回归
logistic过程 logistic回归
gplot过程 作图
数据描述
• 数据描述
问卷的得分、性别与‘caseness’之间的关系
数据集:ghq
变量:
ghq- 0-10 问卷的得分
sex- F,M
caseness- 不健康 和 健康
• 问题提出
简单线性回归与Logistic回归拟合哪个更好?
变量ghq、sex对caseness是否有显著性作用?
数据描述
图:ghq数据集
Logistic模型
简单线性回归:𝐸 𝑦 = 𝛽0 + 𝛽1𝑥1 + 𝛽2𝑥2 +⋯+ 𝛽𝑝𝑥𝑝
其中有两个问题需要解决: 1.因变量的取值范围为0到1,而简单线性回归的线性 预测值可以取任意值从负无穷到正无穷; 2.因变量不服从正态分布,而付出Bernoulli分布。
Logistic回归:logit(𝜋) = log𝜋
1−𝜋= 𝛽0 + 𝛽1𝑥1 +⋯+ 𝛽𝑝𝑥𝑝
将因变量做logistic变换,模型就变成简单线性回归模型。
求𝜋可以代入𝜋 𝛽′𝑥𝑖 =exp 𝛽′𝑥𝑖
1+exp 𝛽′𝑥𝑖 求得
数据录入和整理 data ghq;/* Chapter 8 */
infile ‘ghq.dat’ expandtabs;
input ghq sex $ cases noncases;
total=cases + noncases;
prcase=cases/total;
run;
proc gplot data=ghq;
plot prcase * ghq;
run;
proc reg data=ghq;
model prcase=ghq;
output out=rout p=rpred;
run;
proc logistic data=ghq;
model cases/total=ghq;
output out=lout p=lpred;
Run;
注:整理数据构建新的变量total、prcase;
注:对变量prcase与变量ghq画图;
注:reg :因变量prcase对自变量ghq做简单线性回归。将输出结果放在数据集rout中,预测变量名改为rpred;
注:Logistic:因变量prcase对自变量ghq做简单线性回归。将输出结果放在数据集lout中,预测变量名改为Ipred;
注:逻辑回归中model语法两种形式:
events/trials;
二元变量.
(ch08_03.sas)
prcase*ghq图形
拟合效果检验
data lrout;
set rout;
set lout;
proc sort data=lrout;
by ghq;
symbol1 i=join v=none l=1 c=red;
symbol2 i=join v=none l=2 c=blue;
symbol3 v=circle c=green;
proc gplot data=lrout;
plot (rpred lpred prcase)*ghq/overlay;
run;
注:数据集lrout包括了数据集 rout和数据集lout中所有的变量; 注:sort将数据集按照变量ghq从小到大排序;v=circle表示画圆;overlay表示将三张图形画在同一张图中。
(ch08_03.sas)
拟合效果图
注:从图形中可以看出Logistic回归的拟合效果更好
传统回归预测值大于1,与实际不符
添加变量sex后的Logistic回归
proc logistic data=ghq;
class sex;
model cases/total
=sex ghq;
run;
注:sex是分类变量;
注:Likelihood Ratio、Score、
Ward检验的p值都小于0.0001
模型通过检验.
(ch08_03.sas)
Logistic回归分析结果
注:变量sex、ghq的p值都小于0.05,说明变量sex、ghq对‘caseness’的作用是显著的。 注:exp(0.468*2)=2.55
逻辑回归 案例二:红细胞沉降率
数据描述: 纤维素蛋白原数量,𝛾球蛋白数量与红细胞沉降率之间的关系 数据集:plasma fibrinogen—纤维素蛋白原数量 gamma--𝛾球蛋白数量 esr—红细胞是否发生沉降,用0,1表示。 问题提出 变量fibrinogen、gamma对esr是否有显著作用? 变量fibrinogen与gamma的交互作用对esr的作用是否显著?
数据描述
data plasma;
Infile ’d:\plasma.dat’;
Input fibrinogen gamma esr;
run;
proc logistic data=plasma desc ;
model esr=fibrinogen gamma
fibrinogen*gamma
/selection=backward;
run;
注:selection=forward、backward、stepwise分别代表向前、向后、逐步回归选变量. 注:desc将esr降序,即二元变量的1值作为第一水平分类,进行响应事件控制,否则sas默认为对0建模。
(ch08_04.sas)
向后逐步回归结果
第一步:将变量fibrinogen与gamma的交互作用剔除; 第二步:将变量gamma剔除; 剩下变量fibrinogen的p值小于0.05,作用是显著的.
Logistic回归分析
proc logistic data=plasma desc;
model esr=fibrinogen;
output out=lout p=lpred;
proc sort data=lout;
by fibrinogen;
symbol1 i=none v=circle;
symbol2 i=join v=none;
proc gplot data=lout;
plot (esr lpred)*fibrinogen/overlay;
run;
注:用逐步向后回归选出的变量fibrinogen建立logistic回归 注:将数据集lout按照变量 fibrinogen的大小排好顺序 注:gplot画出实际的点与拟合曲线
(ch08_04.sas)
拟合效果图
逻辑回归 案例三:DIY
• 数据描述
上一年,原本家里需要请一些维修工人干的事情,是否被他们自己做了?
数据集:diy
变量:
work- skilled 、unskilled、office 三个水平
tenure- rent、own 两个水平
type- flat、house 两个水平
agegrp- 1 2 3 三个水平
• 问题提出
变量work、tenure、type、agegrp对被调查者回答yes or no有显著性作用?
数据描述
数据录入及整理
data diy;
infile ‘diy.dat’ expandtabs;
input y1-y6 / n1-n6;
length work $9.;
work=‘Skilled’;
if _n_ >2 then work=‘Unskilled’;
if _n_ >4 then work=‘Office’;
if _n_ in (1,3,5) then tenure=‘rent’;
else tenure=‘own’;
array yall{6} y1-y6; array nall{6} n1-n6;
do i=1 to 6;
if i>3 then type=‘house’;
注:$9.表明变量work的字符长度为9; 注:_n_表示第n行; 注:array表示数组yall的元素为y1到y6;
(ch08_05.sas)
数据录入及整理
else type=‘flat’;
agegrp=1;
if i in (2,5) then agegrp=2;
if i in (3,6) then agegrp=3;
yes=yall{i};
no=nall{i};
total=yes + no;
prdiy=yes/total;
output;
end;
drop i y1—n6;
run;
注:此处的循环主要是针对每行的元素操作,也即当i为第一、四条元素时agegrp=1; 注:drop将变量i和y1至n6删除;
(ch08_05.sas)
tabulate建立表格及Logistic回归
proc tabulate data=diy order=data f=6.2;
class work tenure type agegrp;
var prdiy;
table work*tenure all,
(type*agegrp all)*prdiy*mean;
run;
proc logistic data=diy;
class work tenure type agegrp/param=ref ref=first;
model yes/total=work tenure type agegrp
/selection=backward;
run;
注:param=ref ref=first变量的类别按照其自然顺序排列,第一水平组为对照组;
注:采用向后逐步回归进行变量选元.
(ch08_05.sas)
Tabulate制作的表格
向后逐步选元结果分析
注:经过向后逐
步选元变量type
被剔除.剩余的变
量work、tenure、
agegrp的效果是
显著的。
向后逐步选元结果分析
注:变量work的水平
Skilled与office之间的
优势比为1.357;
注:变量tenure的对照组
为own,变量agegrp的
对照组为1;