第十一章分类资料的回归分析 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 5 43.4 111 23456789 61 190 y00011 80 94.4 38 10 68.6 341121223 132.8 1234567 94.6 47.8 l11 36 31.6 66.2 14 22123311113321131311322321 138.6 114 40.2 70 177.2 42124321312441232322442324 51.6 00000010010100110100 124 133134433 127.2 24 124.8 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 Help 厂 Standardize 厂co 厂 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 Display 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 Percentage Correct 1000 Overall Percenta 654 a constit nccd h te nok l b, The citale k 500 此处已经开始了拟合, 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 此处为模型概况汇总,可见从 STEPL到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 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 hange in-2 Change 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 的情 况,依此类推。同时注意到许多等级值有几个记录,显然后面的分析结果不会太 好。 相应的,分析结果中也以哑变量在进行分析,如下所示: