第十一章分类资料的回归分析 Regression菜单详解(下) (医学统计之星:张文彤) 在很久很久以前,地球上还是一个阴森恐怖的黑暗时代,大地上恐龙横行, 我们的老祖先一一类人猿惊恐的睁大了双眼,围坐在仅剩的火堆旁,担心着无边 的黑暗中不知何时会出现的妖魔鬼怪,没有电视可看,没有网可上 我是疯了,还是在说梦话?都不是,类人猿自然不会有机会和恐龙同时代, 只不过是我开机准备写这一部分的时候,心里忽然想到,在10年前,国内的统 计学应用上还是卡方检验横行,分层的MH卡方简直就是超级武器,在流行病学 中称王称霸,更有那些1:M的配对卡方,N:M的配对卡方,含失访数据的N:M 配对卡方之类的,简直象恐龙一般,搞得我头都大了。其实恐龙我还能讲出十多 种来,可上面这些东西我现在还没彻底弄明白,好在社会进步迅速,没等这些恐 龙完全统制地球, Logistic模型就已经飞速进化到了现代人的阶段,各种各样 的 Logistic模型不断地在蚕食着恐龙爷爷们的领地,也许还象贪吃的人类一样 贪婪的享用着恐龙的身体。好,这是好事,这里不能讲动物保护,现在我们就远 离那些恐龙,来看看现代白领的生活方式 特别声明:我上面的话并非有贬低流行病学的意思,实际上我一直都在做流 行病学,我这样写只是想说明近些年来统计方法的普及速度之快而己。 山据我一位学数学的师兄讲, Logistic模型和卡方在原理上是不一样的,在公 式推演上也不可能划等号,只是一般来说两者的检验结果会非常接近而己,多数 情况下可忽略其不同 §10.3 Binary logistic过程 所谓 Logistic模型,或者说 Logistic回归模型,就是人们想为两分类的应 变量作一个回归方程出来,可概率的取值在0~1之间,回归方程的应变量取值可 是在实数集中,直接做会出现0^1范围之外的不可能结果,因此就有人耍小聪明, 将率做了一个 Logit变换,这样取值区间就变成了整个实数集,作出来的结果就 不会有问题了,从而该方法就被叫做了 Logistic回归 随着模型的发展, Logistic家族也变得人丁兴旺起来,除了最早的两分类 Logistic外,还有配对 Logistic模型,多分类 Logistic模型、随机效应的 Logistic模型等。由于SPSS的能力所限,对话框只能完成其中的两分类和多分 类模型,下面我们就介绍一下最重要和最基本的两分类模型
第十一章 分类资料的回归分析 ――Regression 菜单详解(下) (医学统计之星:张文彤) 在很久很久以前,地球上还是一个阴森恐怖的黑暗时代,大地上恐龙横行, 我们的老祖先--类人猿惊恐的睁大了双眼,围坐在仅剩的火堆旁,担心着无边 的黑暗中不知何时会出现的妖魔鬼怪,没有电视可看,没有网可上... 我是疯了,还是在说梦话?都不是,类人猿自然不会有机会和恐龙同时代, 只不过是我开机准备写这一部分的时候,心里忽然想到,在 10 年前,国内的统 计学应用上还是卡方检验横行,分层的 M-H 卡方简直就是超级武器,在流行病学 中称王称霸,更有那些 1:M 的配对卡方,N:M 的配对卡方,含失访数据的 N:M 配对卡方之类的,简直象恐龙一般,搞得我头都大了。其实恐龙我还能讲出十多 种来,可上面这些东西我现在还没彻底弄明白,好在社会进步迅速,没等这些恐 龙完全统制地球,Logistic 模型就已经飞速进化到了现代人的阶段,各种各样 的 Logistic 模型不断地在蚕食着恐龙爷爷们的领地,也许还象贪吃的人类一样 贪婪的享用着恐龙的身体。好,这是好事,这里不能讲动物保护,现在我们就远 离那些恐龙,来看看现代白领的生活方式。 特别声明:我上面的话并非有贬低流行病学的意思,实际上我一直都在做流 行病学,我这样写只是想说明近些年来统计方法的普及速度之快而已。 据我一位学数学的师兄讲,Logistic 模型和卡方在原理上是不一样的,在公 式推演上也不可能划等号,只是一般来说两者的检验结果会非常接近而已,多数 情况下可忽略其不同。 §10.3 Binary Logistic 过程 所谓 Logistic 模型,或者说 Logistic 回归模型,就是人们想为两分类的应 变量作一个回归方程出来,可概率的取值在 0~1 之间,回归方程的应变量取值可 是在实数集中,直接做会出现 0~1 范围之外的不可能结果,因此就有人耍小聪明, 将率做了一个 Logit 变换,这样取值区间就变成了整个实数集,作出来的结果就 不会有问题了,从而该方法就被叫做了 Logistic 回归。 随着模型的发展,Logistic 家族也变得人丁兴旺起来,除了最早的两分类 Logistic 外,还有配对 Logistic 模型,多分类 Logistic 模型、随机效应的 Logistic 模型等。由于 SPSS 的能力所限,对话框只能完成其中的两分类和多分 类模型,下面我们就介绍一下最重要和最基本的两分类模型
10.3.1界面详解与实例 例11.1某研究人员在探讨肾细胞癌转移的有关临床病理因素研究中,收集 了一批行根治性肾切除术患者的肾癌标本资料,现从中抽取26例资料作为示例 进行 logistic回归分析(本例来自《卫生统计学》第四版第11章)。 i:标本序号 ●xl:确诊时患者的年龄(岁 x2:肾细胞癌血管内皮生长因子(VEGF),其阳性表述由低到高共3个等 x3:肾细胞癌组织内微血管数(MVC) x4:肾癌细胞核组织学分级,由低到高共4级 x5:肾细胞癌分期,由低到高共4期 y:肾细胞癌转移情况(有转移y=1;无转移y=0)。 3 43.4 57.2 23456789 61 190 51113411212231111 y00011 10 1234567 36 14 70 22123311113321131311322321 80 94.4 68.6 132.8 94.6 47.8 31.6 66.2 138.6 3 114 40.2 177.2 42124321312441232322442324 51.6 00000010010100110100 124 127.2 24 124.8 1344333 128
10.3.1 界面详解与实例 例 11.1 某研究人员在探讨肾细胞癌转移的有关临床病理因素研究中,收集 了一批行根治性肾切除术患者的肾癌标本资料,现从中抽取 26 例资料作为示例 进行 logistic 回归分析(本例来自《卫生统计学》第四版第 11 章)。 • i: 标本序号 • x1:确诊时患者的年龄(岁) • x2:肾细胞癌血管内皮生长因子(VEGF),其阳性表述由低到高共 3 个等 级 • x3:肾细胞癌组织内微血管数(MVC) • x4:肾癌细胞核组织学分级,由低到高共 4 级 • x5:肾细胞癌分期,由低到高共 4 期 • y: 肾细胞癌转移情况(有转移 y=1; 无转移 y=0)。 i x1 x2 x3 x4 x5 y 1 59 2 43.4 2 1 0 2 36 1 57.2 1 1 0 3 61 2 190 2 1 0 4 58 3 128 4 3 1 5 55 3 80 3 4 1 6 61 1 94.4 2 1 0 7 38 1 76 1 1 0 8 42 1 240 3 2 0 9 50 1 74 1 1 0 10 58 3 68.6 2 2 0 11 68 3 132.8 4 2 0 12 25 2 94.6 4 3 1 13 52 1 56 1 1 0 14 31 1 47.8 2 1 0 15 36 3 31.6 3 1 1 16 42 1 66.2 2 1 0 17 14 3 138.6 3 3 1 18 32 1 114 2 3 0 19 35 1 40.2 2 1 0 20 70 3 177.2 4 3 1 21 65 2 51.6 4 4 1 22 45 2 124 2 4 0 23 68 3 127.2 3 3 1 24 31 2 124.8 2 3 0 25 58 1 128 4 3 0
6031498431 在菜单上选择 Analyze=》 Regression=》 Binary logistic.,系统弹出 Logistic回归对话框如下 Dependent OK 参×4 Previous Block 1 of 1 Next Reset Covariates: Cancel Help >a b Method: Enter Select > Categorical Save Options 左侧是候选变量框,右上角是应变量框,选入二分类的应变量,下方的 Covariates框是用于选入自变量的,只不过这里按国外的习惯被称为了协变量。 两框中间的是 BLOCK系列按扭,我在上一课已经讲过了,不再重复。中下部 的>a*b>框是用于选入交互作用的,和其他的对话框不太相同(我也不知道为什 么SPSS偏在这里做得不同),下方的 Method列表框用于选择变量进入方法,有 进入法、前进法和后退法三大类,三类之下又有细分。最下面的四个按钮比较重 要,请大家听我慢慢道来: o Select>钮:用于限定一个筛选条件,只有满足该条件的记录才会 被纳入分析,单击它后对话框会展开让你填入相应的条件。不过我觉得该 功能纯属多余,和专门的 Select对话框的功能重复了。 o Categorical钮:如果你的自变量是多分类的(如血型等),你必须 要将它用哑变量的方式来分析,那么就要用该按钮将该变量指定为分类变 量,如果有必要,可用里面的选择按钮进行详细的定义,如以哪个取值作 为基础水平,各水平间比较的方法是什么等。当然,如果你弄不明白,不 改也可以,默认的是以最大取值为基础水平,用 Deviance做比较
26 60 3 149.8 4 3 1 在菜单上选择 Analyze==》Regression==》Binary Logistic...,系统弹出 Logistic 回归对话框如下: 左侧是候选变量框,右上角是应变量框,选入二分类的应变量,下方的 Covariates 框是用于选入自变量的,只不过这里按国外的习惯被称为了协变量。 两框中间的是 BLOCK 系列按扭,我在上一课已经讲过了,不再重复。中下部 的>a*b>框是用于选入交互作用的,和其他的对话框不太相同(我也不知道为什 么 SPSS 偏在这里做得不同),下方的 Method 列表框用于选择变量进入方法,有 进入法、前进法和后退法三大类,三类之下又有细分。最下面的四个按钮比较重 要,请大家听我慢慢道来: o Select>>钮:用于限定一个筛选条件,只有满足该条件的记录才会 被纳入分析,单击它后对话框会展开让你填入相应的条件。不过我觉得该 功能纯属多余,和专门的 Select 对话框的功能重复了。 o Categorical 钮:如果你的自变量是多分类的(如血型等),你必须 要将它用哑变量的方式来分析,那么就要用该按钮将该变量指定为分类变 量,如果有必要,可用里面的选择按钮进行详细的定义,如以哪个取值作 为基础水平,各水平间比较的方法是什么等。当然,如果你弄不明白,不 改也可以,默认的是以最大取值为基础水平,用 Deviance 做比较
Covariates: Categorical Covariates Continue Cancel Help 静×5 ge Contrast Contrast: Indicator Reference Cato C Last C Fi Save钮:将中间结果存储起来供以后分析,共有预测值、影响强度 因子和残差三大类 Predicted values Residuals Continue Probabilitic 厂 Unstandardized Group membership Logit Cancel 厂 Studentized Influence Help 厂 Standardize 厂 Cook's 厂 Deviance 厂 Leverage values 厂 DfBeta(s Options钮:这一部分非常重要,但又常常被忽视,在这里我们可以 对模型作精确定义,还可以选择模型预测情况的描述方式,如 Statistics and plots中的 Classification plots就是非常重要的模型预测工具, Correlations of estimates则是重要的模型诊断工具, Iteration history可以看到迭代的具体情况,从而得知你的模型是否在迭代时存在 病态,下方则可以确定进入和排除的概率标准,这在逐步回归中是非常有 用的
o Save 钮:将中间结果存储起来供以后分析,共有预测值、影响强度 因子和残差三大类。 o Options 钮:这一部分非常重要,但又常常被忽视,在这里我们可以 对模型作精确定义,还可以选择模型预测情况的描述方式,如 Statistics and Plots 中的 Classification plots 就是非常重要的模型预测工具, Correlations of estimates 则是重要的模型诊断工具,Iteration history 可以看到迭代的具体情况,从而得知你的模型是否在迭代时存在 病态,下方则可以确定进入和排除的概率标准,这在逐步回归中是非常有 用的
Logistic Regression: Options Statistics and Plots Continue Classification plots Correlations of estimates Hosmer-Lemeshow goodness-of-fit Iteration history Cancel Casewise listing of residuals CI for exp(B):95 % Help G Outliers outside std,dev C All cases play C At each step C At last step Probability for Stepwise Classification cutoff: Entry: Remoyal:.10 Maximum Iterations: 20 v Include constant in model 好,根据我们的目的,应变量为Y,而X1X5为自变量,具体的分析操作如 下 1. Analyze==》 Regression==》 Binary logistic 2. Dependent框:选入Y 3. Covariates框:选入x1x5 4.OK钮:单击 10.3.2结果解释 Logistic Regression Case Processing Summary Selected Cases Included in Analysis 1000 Missing Cases 1000 Unselected Cases a Mwe ItE h enect see cbs maui tbe tr te ttl imber ofcaset 上表为记录处理情况汇总,即有多少例记录被纳入了下面的分析,可见此处 因不存在缺失值,26条记录均纳入了分析
好,根据我们的目的,应变量为 Y,而 X1~X5 为自变量,具体的分析操作如 下: 1. Analyze==》Regression==》Binary Logistic... 2. Dependent 框:选入 Y 3. Covariates 框:选入 x1~x5 4. OK 钮:单击 10.3.2 结果解释 Logistic Regression 上表为记录处理情况汇总,即有多少例记录被纳入了下面的分析,可见此处 因不存在缺失值,26 条记录均纳入了分析
Original Value Internal value 上表为应变量分类情况列表,没什么好解释的 Block 0: Beginning Block Classification Tablea. b Predicted centage Correct 1000 Overall Percenta 654 a constit nccd h te nok l 此处已经开始了拟合, Block0拟合的是只有常数的无效模型,上表为分类 预测表,可见在17例观察值为0的记录中,共有17例被预测为0,9例1也都 被预测为0,总预测准确率为65.4%,这是不纳入任何解释变量时的预测准确率, 相当于比较基线。 Variables in the equation Stepo Constant 2380 上表为 Block0时的变量系数,可见常数的系数值为-0.636 Variables not in the equation 13.170 Overall statistics 17737
上表为应变量分类情况列表,没什么好解释的。 Block 0: Beginning Block 此处已经开始了拟合,Block 0 拟合的是只有常数的无效模型,上表为分类 预测表,可见在 17 例观察值为 0 的记录中,共有 17 例被预测为 0,9 例 1 也都 被预测为 0,总预测准确率为 65.4%,这是不纳入任何解释变量时的预测准确率, 相当于比较基线。 上表为 Block 0 时的变量系数,可见常数的系数值为-0.636
上表为在 Block0处尚未纳入分析方程的侯选变量,所作的检验表示如果分 别将他们纳入方程,则方程的改变是否会有显著意义(根据所用统计量的不同, 可能是拟合优度, Deviance值等)。可见如果将X2系列的哑变量纳入方程, 方程的改变是有显著意义的,X4和X5也是如此,由于 Stepwise方法是一个 个的进入变量,下一步将会先纳入P值最小的变量X2,然后再重新计算该表, 再做选择 Block 1: Method= Forward Stepwise( Conditional) Omnibus Tests of Model coefficient Step 2 6178 此处开始了 Block1的拟合,根据我们的设定,采用的方法为 Forward(我 们只设定了一个 Block,所以后面不会再有 Block2了)。上表为全局检验,对 每一步都作了Step、 Block和Mode的检验,可见6个检验都是有意义的 Cox Snell Nagelkerke R 此处为模型概况汇总,可见从STE1到STEP2, DEVINCE从18降到11,两种 决定系数也都有上升
上表为在 Block 0 处尚未纳入分析方程的侯选变量,所作的检验表示如果分 别将他们纳入方程,则方程的改变是否会有显著意义(根据所用统计量的不同, 可能是拟合优度,Deviance 值等)。可见如果将 X2 系列的哑变量纳入方程,则 方程的改变是有显著意义的,X4 和 X5 也是如此,由于 Stepwise 方法是一个一 个的进入变量,下一步将会先纳入 P 值最小的变量 X2,然后再重新计算该表, 再做选择。 Block 1: Method = Forward Stepwise (Conditional) 此处开始了 Block 1 的拟合,根据我们的设定,采用的方法为 Forward(我 们只设定了一个 Block,所以后面不会再有 Block 2 了)。上表为全局检验,对 每一步都作了 Step、Block 和 Model 的检验,可见 6 个检验都是有意义的。 此处为模型概况汇总,可见从 STEP1 到 STEP2,DEVINCE 从 18 降到 11,两种 决定系数也都有上升
Classification Tablea 100 Overall percentage 846 Step 2 Y 100 此处为每一步的预测情况汇总,可见准确率由 Block0的65%上升到了84%, 最后达到96%,效果不错,最终只出现了一例错判。 variables in the Equation Wald Ste 12978 Consta Step 2x2 2413 1.196 2096 1.088 3.713 8.136 5.40 164 023 a, Varkbk eit redo tp 1:. b. Varbbk r eit redo stp2: X 上表为方程中变量检验情况列表,分别给出了Step1和Step2的拟合情况。 注意X4的P值略大于0.05,但仍然是可以接受的,因为这里用到的是排除标准 (默认为0.1),该变量可以留在方程中。以Step2中的X2为例,可见其系数 为2.413,OR值为11 Model评 Ter m Removed d Model Log hange in-2 Sig. of the 7739 17476 Step 2 X2 a Based oi oodibDial parameter ettnatt 上表为假设将这些变量单独移出方程,则方程的改变有无统计学意义,可见 都是有统计学意义的,因此他们应当保留在方程中
此处为每一步的预测情况汇总,可见准确率由 Block 0 的 65%上升到了 84%, 最后达到 96%,效果不错,最终只出现了一例错判。 上表为方程中变量检验情况列表,分别给出了 Step 1 和 Step 2 的拟合情况。 注意 X4 的 P 值略大于 0.05,但仍然是可以接受的,因为这里用到的是排除标准 (默认为 0.1),该变量可以留在方程中。以 Step 2 中的 X2 为例,可见其系数 为 2.413,OR 值为 11。 上表为假设将这些变量单独移出方程,则方程的改变有无统计学意义,可见 都是有统计学意义的,因此他们应当保留在方程中
Variables not in the Equation Score ariable Overall Statistics Step 2 Variables Overall sta 最后这个表格说明的是在每一步中,尚未进入方程的变量如果再进入现有方 程,则方程的改变有无统计学意义。可见在Step1时,X4还应该引入,而在Step 2时,其它变量是否引入都无关了。 10.3.3模型的进一步优化与简单诊断 10.3.3.1模型的进一步优化 前面我们将X1X5直接引入了方程,实际上,其中X2、X4、X5这三个自变量 为多分类变量,我们并无证据认为它们之间个各等级的OR值是成倍上升的, 格来说,这里应当采用哑变量来分析,即需要用 Categorical钮将他们定义为分 类变量。但本次分析不能这样做,原因是这里总例数只有26例,如果引入哑变 量模型会使得每个等级的记录数非常少,从而分析结果将极为奇怪,无法正常解 释,但为了说明哑变量模型的用法,下面我将演示它是如何做的,毕竟不是每个 例子都只有26例。 Logistic Regression: Define Categorical Variables Covariates: Categorical Covariates Continue X2(Indicator) 4(ndicator) Cancel <5(Indicator Help Change Contrast Contrast: Indicator Change Reference Category: Last First
最后这个表格说明的是在每一步中,尚未进入方程的变量如果再进入现有方 程,则方程的改变有无统计学意义。可见在 Step 1 时,X4 还应该引入,而在 Step 2 时,其它变量是否引入都无关了。 10.3.3 模型的进一步优化与简单诊断 10.3.3.1 模型的进一步优化 前面我们将 X1~X5 直接引入了方程,实际上,其中 X2、X4、X5 这三个自变量 为多分类变量,我们并无证据认为它们之间个各等级的 OR 值是成倍上升的,严 格来说,这里应当采用哑变量来分析,即需要用 Categorical 钮将他们定义为分 类变量。但本次分析不能这样做,原因是这里总例数只有 26 例,如果引入哑变 量模型会使得每个等级的记录数非常少,从而分析结果将极为奇怪,无法正常解 释,但为了说明哑变量模型的用法,下面我将演示它是如何做的,毕竟不是每个 例子都只有 26 例
默认情况下定义分类变量非常容易,做到如上图所示就可以了,此时分析结 果中的改变如下 Categorical Variables Codings P arameter coding 100 000 100 1000 200 上表为自变量中多分类变量的哑变量取值情况代码表。左侧为原变量名及取 值,右侧为相应的哑变量名及编码情况:以X5为例,表中可见X5=4时,即取值 最髙的情况被作为了基线水平,这是多分类变量生成哑变量的默认情况。而X5(1) 代表的是X5=1的情况(X5为1时取1,否则取0),X5(2)代表的是X5=2的情 况,依此类推。同时注意到许多等级值有几个记录,显然后面的分析结果不会太 好 相应的,分析结果中也以哑变量在进行分析,如下所示: Variables in the Equation Wald 12.119 35412 008 000 X402) 12.119 43) 470 1396 113 1.199 10 -22332 266456 10.117 92,744 24765520 9863072647 42) 23014 10665 179.250 95342839318 b.wa建 eseieredo:p2x2
默认情况下定义分类变量非常容易,做到如上图所示就可以了,此时分析结 果中的改变如下: 上表为自变量中多分类变量的哑变量取值情况代码表。左侧为原变量名及取 值,右侧为相应的哑变量名及编码情况:以 X5 为例,表中可见 X5=4 时,即取值 最高的情况被作为了基线水平,这是多分类变量生成哑变量的默认情况。而 X5(1) 代表的是 X5=1 的情况(X5 为 1 时取 1,否则取 0),X5(2)代表的是 X5=2 的情 况,依此类推。同时注意到许多等级值有几个记录,显然后面的分析结果不会太 好。 相应的,分析结果中也以哑变量在进行分析,如下所示: