Logistic 回归简明教程: 原理、SPSS操作、结果解读与报告撰写

health 661 0

观察性研究统计策略:初学logistic 回归


在医学科研、特别是观察性研究领域,无论是横截面调查、病例对照研究、还是队列研究,经常遇到分类的健康结局,包括二分类(如:生存与死亡、阳性与阴性、发病与未发病)或者多分类变量(如:疾病转归,治愈、无效、死亡;根据损伤程度分级的结局指标,如结核性胸腔积液胸膜粘连程度、视网膜出血程度、早产儿脑室缺血程度)以及一些可进行分类的生理生化、免疫指标等(如血压值、血镁值、血脂和胆固醇等)。当研究的健康终点是二分类变量时,线性回归分析往往无法进行(线性回归分析要求残差服从线性、正态性、独立性、方差齐性),此时可以考虑Logistic回归模型。


尤其是病例对照研究,它的结局全部为分类结局,很对Logistic胃口,同时病例对照研究往往要求计算的评价暴露因素影响程度的OR值(优势比),这一指标Logistic也能够计算得到。因此,病例对照研究设计与Logistic回归分析乃是天作之合。因此,本系列紧跟病例对照研究方法篇,介绍Logistic回归分析。


实例分析


例1:某医师基于某医院开展病例对照研究,探讨冠心病发病有关的影响因素,收集新发冠心病患者作为病例组,收集同期医院非循环系统疾病患者作为对照组,研究的暴露因素是病人的年龄age、性别sex、心电图检验是否异常ecg、高血压hyper、糖尿病diabetes。数据见casecontrol.sav。




1  统计分析策略


探讨影响因素研究,有基础统计学方法和高级分析方法(病例对照研究的基本统计分析策略);一般来说,基础统计学方法无法满足影响因素的研究,一般需要开展回归分析,且需要多因素回归分析。


线性回归常见包括线性回归、Logistic回归、Cox比例风险模型,三者分别用于定量数据、分类数据、带有结局的生存时间资料。


本案例是病例对照研究,该研究结局是分类变量资料。采用的方法是Logistic回归方法(病例对照研究的基本统计分析策略)。



2  logistic回归分析的基本原理


回归分析的主要功能是研究影响因素、开展预测。线性回归分析是通过构建线性函数,探讨影响与预测定量数据结局大小的因素。


如果结局是分类变量,回归分析主要分析影响阳性事件发生的因素,预测阳性事件的发生。在本文案例中,冠心病的发生是需要探讨的阳性事件。


影响与预测阳性事件发生,可以用概率P来表示。P值越大,阳性事件发生的可能越大。如果一个因素可以导致概率P增大,说明该因素是重要的影响因素或者预测因素。


借鉴线性回归的原理,我们希望建立起一个关于P的线性函数:


遗憾的是,P与x的关系并不符合线性回归分析所要求的线性关系前提条件(它们的关系是S型曲线的关系),因此方程无法成立。


之前推文介绍过,线性回归若线性条件不符合,可以对Y或者X进行转换,以满足线性回归的要求。因此,统计研究者对P进行了转换,称之为logit转换,或者logit(P):


于是,我们就建立了关于P与结局的转换线性关系,这一回归模型被称之为广义线性模型,其中logit(P)的转换模型叫做Logistic回归。


只从数据本身考虑的话,Logistic回归模型都是包括一个分类因变量及若干自变量(可以是分类变量,也可以是连续变量),反映了m个自变量对因变量的线性影响。无论对于病例对照研究还是队列研究,这种形式都是不变的。


基于上述公式,我们可基于多个自变量预测结局Y。上述公式可以转为以下关于P的更直接的公式:


比如有一名患者,女性、年龄57岁、心电图ST段重度异常、同时患有高血压和糖尿病,则可计算得到她患冠心病的概率为0.961。相反,如果另一名患者为女性、年龄49岁、心电图ST段轻度异常、同时糖尿病而无高血压,则她患冠心病的概率是0.262。


这一概率就是回归分析的预测值,预测值显然与实际值有差异(详细可以阅读文章线性回归时,你还不会做残差分析?来看基本教程!)。比如第一名患者实际值是1(发生冠心病),真实值与实际值之间的差异是0.039,这一差异便是前文介绍过的残差。同样,第二名患者实际值是0(未发生),残差是-0.262。


好的模型,残差越小越好,残差均方越小越好。因此,logistic回归模型中,残差也是非常重要的评价指标。



3  Logistic OR值计算


Logistic回归核心的功能之一是研究影响因素,它用于评价暴露因素影响程度的指标是OR值。


关于OR值,我在前文有详细的介绍(病例对照研究的基本统计分析策略)。观察性研究无论是横截面调查、病例对照研究或者队列研究,经常需要借助OR值暴露因素效应值,实际上实验性研究也经常使用该指标来评价干预措施的疗效。OR值指的是,优势比/比数比(odds ratio,OR)。优势(odds)是指二分类事件中一类事件相对于其对立事件的优势。病例组中优势是暴露者数/非暴露数,对照组中暴露数/非暴露数。



Logistic回归分析,实际上也是关于优势的回归模型。诸位稍微思考思考可以放发现a/(a+c)、b/(b+d)便是P,c/(a+c), d/(b+d)是1-P。a/(a+c) 除以c/(a+c)  即P/1-P,即阳性事件的优势。因此,可以得到以下的公式:



现在如果要探讨性别的影响,男性与女性的差异,可以从两个角度来分析讨:第一,计算回归系数β1,说明性别变量X对Y的影响;第二,计算OR值,两者是等同的,男性相对女性的影响回归系数b值等于ln(OR)值。

简而述之:

OR值大于1,提示暴露因素是阳性事件发生的促进因素;

OR值小于1,提示暴露因素是阳性事件发生的阻碍因素;

OR值等于1,提示暴露因素对阳性事件的发生无影响。


相对来说,OR值比b值在解释对结局的影响上更有意义,它能够说明结局Y风险增加的程度。比如OR=2,大致可以说明暴露因素增加发生阳性结局1倍的概率(千万注意,此处只能说大致、左右,原因后续再论)


医学研究中,风险大小估计是重要的内容。由于能够巧妙地计算OR值,Logistic回归在医学领域大受欢迎,特别是病例对照研究。



4  Logistic回归分析类型


依据研究设计不同,可分为非条件Logistic回归模型和条件Llogistic回归模型。非条件Logistic回归用于成组设计的观察性研究,而条件Logistic 回归一般用于匹配设计研究。


依据因变量类型(水平数量),又可分为二分类Logistic回归模型和多分类Logistic回归模型;二分类Logistic回归也称二元Logistic回归(SPSS软件的叫法)


此外,根据多分类因变量是否有序,又可以分为多分类有序logistic回归模型和多分类无序logistic回归模型。

Logistic回归模型分类(本图来源于“医学统计分析学习公众号)


本研究是基础教程,多分类、配对Logistic回归不再学习范围之内,我就介绍最基本的二分类非Logistic回归分析。本例所采用的方法便是多因素非条件Logistic回归分析。


SPSS操作


1  Logistic回归入口


分析--回归--二元Logistic回归



2  Logistic回归分析界面


①因变量:放入“是否患有冠心病(ca)”

②协变量:即自变量,放入年龄、性别、心电图表现、糖尿病、高血压

③保存:可分别计算除预测值(即P值)和残差,残差包括原始残差和标准化残差。


④选项:可计算霍斯黙-莱梅肖拟合优度(Hosmer-Lemesho,H-L检验)(①)、OR值的95%CI置信区间(②)



3  Logistic回归分析结果及其解读



Logistic回归得到诸多结果,初学者仅需要重点关注以下几个表格。


首先提供的是Omnibus Tests of model Coefficients :指的是对模型的总的全局检验,为似然比检验。

结果里面的三行分别指的是:步骤(step)统计量是每一步与前一步的似然比检验结果,块(block)是指将block n与block n-1 相比的似然比检验结果,模型(model) 一行输出了Logistic回归模型中所有参数是否均为0的似然比检验结果,这是总体评价的关键检验。P<0.05表示本次拟合的模型中,纳入的变量中,至少有一个变量的or值有统计学意义,即模型总体有意义。<>


其次,Logistic 回归提供模型拟合优度(Goodness of Fit)评价。所谓拟合优度,指的是模型构建的效果如何,与真实情况或者理想情况相比,差距有多大。线性回归分析一般采用R^2来反映拟合优度的效果。logistic回归拟合优度包括两类:从量评价拟合优度和从质提供拟合优度效果


量化评价拟合优度效果。Logistic回归分析提供类似于R^2的,考克斯-斯奈尔R方(Cox & Snell R^2)和内戈尔科R方(Nagelkerke R^2)。不过,这两种R^2有时被称为伪R^2,在Logistic回归中意义不大(与线性回归中的不同),可以不予关注。-2对似然值(-2 log likelihood,-2LL))是模型评价重要的指标,该值越小越好,可以用于不同模型评价效果。


质性评价拟合优度效果。霍斯黙-莱梅肖拟合优度检验(Hosmer-Lemesho,H-L检验)可以用于评价模型是否充分利用了现有的信息最大化地拟合了模型、解释了模型的变异。该研究若P>0.05,则可说明模型拟合优度效果较好,若P<0.05,则说明可以模型构建效果欠佳。<>


本例P=0.485,说明模型拟合优度情况良好。


最后为核心分析的结果:Logistic回归分析分别回归系数b值、b值的标准误、Wald 卡方值(瓦尔德)、自由度、P值(显著性)、OR值(Exp B)及其置信区间。


其中,Wald 卡方值(瓦尔德)和P值是对回归系数b值的假设检验。P<0.05,>


Exp B即OR值,与回归系数的关系是e^b值。OR值置信区间与P值的关系是:当P<0.05,则置信区间不包括1;当P>0.05,则置信区间包括1。


特别要提醒诸位的是:OR值大于1,是否就是危险因素?OR值小于1是否就是保护因素呢?这种说法是非常的武断。


首先,对OR值不能再采用危险还是保护的说法,危险、保护做法往往针对不良的阳性事件结局,用词倾向性太严重。在临床上或者更多领域,更中性、更容易理解的是用促进或者阻碍的说法来反映。


OR值大于1,提示暴露因素是阳性事件发生的促进因素;

OR值小于1,提示暴露因素是阳性事件发生的阻碍因素;

OR值等于1,提示暴露因素对阳性事件的发生无影响。


其次,要理解OR值必须得非常清晰地明确,暴露因素的对照组是谁?阳性事件又是谁。


SPSS统计结果表给不了太多信息。比如性别,它只告诉我们性别对阳性事件发生有影响。但是到底男性风险大还是女性风险大?OR=6.24到底针对谁呢?


要读懂统计结果表,读懂OR值,必须明确:

(1)何为阳性事件,我们可能想当然认为阳性事件必然是冠心病发生;然而在SPSS分析中,阳性事件指的是数据库结局变量赋值较大的结局。在本例中,若是否有冠心病(ca)变量,如果(冠心病是0,未发生冠心病是1),那么未发生冠心病的是阳性事件。


是不是听起来特别别扭?我想要研究的是发生冠心病的风险呀!怎么办? 那就请诸位在构建数据库时,将所指认的阳性事件给予更高的赋值,高于阴性事件。对于二分类的结局,最好用0、1表示(0代表阴性事件,1代表阳性事件),保证你理念中的阳性事件与SPSS的阳性事件定义的统一,不容易出错。


(2)要明确自变量,谁为对照?

对于定量数据,比如年龄,b值代表x每增加一个单位,结局改变的量;OR值更有意义,OR代表,x增加一个单位,比如年龄增加一岁,阳性事件出现的概率将大约增加(OR-1)倍;对于年龄,比如年龄增加一岁,平均风险将增加0.091倍,这意味着,年龄越大,冠心病风险越高。


对于二分类定性数据,OR值也代表x增加一个单位,结局改变的量。比如性别,x增加一个单位,风险增加大约5.24倍。那么,如何理解此处“增加一个单位”的意思呢? 实际上指的是数据库性别变量赋值增加一个单位吗(性别变量从0增加1),风险增加大约5.24倍(不过不像年龄,性别变量x只能增加1次)。


很多时候,如此解释还别扭,我们更倾向寻找对照作为支点,进行比较分析。性别从0到1,那就是性别变量赋值为1和赋值为0的相比,风险增加5.24。0是什么?0是女性,而1是男性,那意味着是男性与女性相比,风险大概增加5.24倍。


SPSS统计分析在二分类自变量的影响时,默认是以自变量赋值较低作为对照,探讨赋值较大者能否相对能否增加阳性事件概率。


对于等级资料,其解释与定量数据无异,也就是X每加一个等级,比如年龄增加一岁,阳性事件出现的概率将增加(OR-1)倍左右;比如对于心电图异常情况变量,意味着心电图异常情况平均每增加一个等级,冠心病的风险将增加2.406倍左右。


此外,高血压变量在数据库中赋值为0=无高血压,1=有高血压,意味着对照组是无高血压,有高血压的病人与之相比,风险增加9.814倍左右。糖尿病无统计学意义。


总之,OR值是探讨SPSS数据库中自变量赋值较大者,对SPSS数据库中阳性事件的影响。如果不注意这一点,只看OR值就论是否危险因素,可能会得到了相反的结论。


最后,由于在本文SPSS操作中,勾选了计算预测值和残差,数据库给出了两个新的变量,分别是PRE_1(预测值)和RES_1(残差) ,两组相加,刚好是ca“冠心病”。


统计结果的撰写


规范文字1:纳入年龄、心电图和性别等构建多因素Logistic回归方程。结果发现:心电图异常对冠心病的影响具有统计学意义(OR=3.40,95%CI 1.81-6.37, P<<>0.001);年龄对冠心病的影响具有统计学意义(OR=1.09, 95%CI 1.03-1.15, P=0.001);性别对冠心病的影响具有统计学意义(OR=6.24,95%CI 2.50-15.56, P<0.001);高血压状况对对冠心病的影响具有统计学意义(OR=10.81,95%CI 4.15-28.20, P<0.001<>)。


规范文字2:纳入年龄、心电图和性别等构建多因素Logistic回归方程。结果发现:心电图异常等级增加将增加冠心病的风险,具有统计学意义(OR=3.40,95%CI 1.81-6.37, P<<>0.001);年龄越大冠心病风险越高,具有统计学意义(OR=1.09, 95%CI 1.03-1.15, P=0.001);相对女性,男性增加冠心病发生的风险,差异具有统计学意义(OR=6.24,95%CI 2.50-15.56, P<0.001);高血压增加冠心病的风险,差异具有统计学意义(OR=10.81,95%CI 4.15-28.20, P<0.001)。<>


特别提醒:Logistic回归OR值不能代表风险增加的准确倍数,因此文字描述,切勿说相对女性,男性增加冠心病风险5.24倍的说法。


规范表格:

特别注意


1. Logistic回归应用的前提条件是什么?


线性回归分析需要诸多条件,主要便是LINE(线性、独立性、方差齐性、正态性);Logistic回归也有应用条件,主要是线性和独立性两点(下文初学者可以跳过)


Logistic要求自变量与logit(P)线性关系成立。线性条件可以根据以下公式看出:既然要构建多项式方程,logit(P)和各个x之间都要求存在着线性关系。

不过,Logistic线性条件主要针对定量自变量或者等级自变量,对二分类或者无序多分类数据没有要求。


线性条件不成立怎么办?可以对x进行转换,比如指数、对数转换,或者对x进行分组再哑变量设置分析。


下文的关于线性条件的例子来自于《中华流行病学杂志》2019年第8期的文章:冯国双.观察性研究中的logistic回归分析思路[J].中华流行病学杂志,2019,40(8):1006-1009


举例: 某研究分析老年人高血压(二分类变量,是或否)的危险因素,研究因素包括gender、age、ox-LDL、Adiponectin、ox-LDL IgG和ox-LDL IgM共6个指标。其中gender为二分类变量,其余变量均为连续变量。如果把6个自变量直接纳入统计软件分析,所得结果见表 1。

表 1 统计软件直接给出的高血压影响因素分析结果


可以看出,6个变量均差异无统计学意义。然而对数据重新分析后发现,并不是这些变量对结局均无影响,只是未能发现它们之间的真实关系而已。经仔细观察,发现age和ox-LDL IgM对结局的影响是有统计学意义的,但不是线性影响,而是二次项关系(表 2)。

表 2 高血压影响因素重新分析后的结果


如何利用SPSS进行线性条件的诊断?一般情况下分为2步:第一步,计算残差;第二步,绘制残差与目标自变量的散点图


首先计算残差;由于在SPSS分析中,勾选了计算预测值和残差,数据库给出两个新的变量,分别是PRE_1(预测值)和RES_1(残差) ,两组相加,刚好是ca“冠心病”。



接着制散点图(X轴是年龄,Y轴是残差)。


结果解读:如果线性条件成立,残差应该分布在0值周围,并不会随着年龄的改变而发生有规律的变化。本案例分析表明结局变量与年龄的线性前提条件成立。


Logistic回归分析要求独立性。所谓的独立性,即阳性事件的发生,在其它空间、时间、人群(除纳入模型的自变量之外)中是随机分布的;反过来说,不独立的数据,则意味着阳性事件的发生存在着统计模型无法解释的聚集性。


比如,传染病的发病,可能在同一地区内部,存在着聚集性;在家庭成员内部存在着聚集性。传染病的聚集性,Logistic回归分析无法解释;家庭成员的遗传病聚集性,Logistic回归分析也可能无法解释。此时,Logistic 回归的结果相对来说不可靠!


如何结局数据不独立的问题?常见的办法,就是将引起聚集性的变量纳入回归模型中。比如,引发家庭聚集性的指标有两类:第一,家庭变量;家庭是原因变量,影响研究对象发生阳性事件的概率,同个家庭内部具有聚集性(同一个家庭成员都发生阳性事件,是因为他们有相同的原因:家庭);第二类,遗传学性指标。比如基因突变的变量;家庭成员均有共同的基因,因此,造成同一家庭成员都出现阳性结局。在统计分析时,只要将家庭变量或者基因突变变量作为自变量同时纳入模型,便可以消除聚集性问题。


如果没有采集到造成聚集性的原因变量,还能构建Logistic吗? 一般影响不大,但总是造成些许偏倚,结论不太可靠。


比如某一个学校发生了新冠肺炎,想研究新冠肺炎的影响因素,潜在影响因素包括性别、年龄、年级、有无慢性病、平时有无带口罩、勤洗手等因素,此时开展Logistic回归分析,结果是不可靠的。因为新冠肺炎患者可能存在着寝室的聚集性,因此回归分析模型应该纳入寝室变量构建回归模型;然而,由于寝室数量较多,寝室变量是无序多分类变量(分类数十几或者几十个),传统的Logistic回归分析无法应对,一般采用的是随机效应Logistic模型,比如多水平Logistic回归分析、广义线性混合模型等来处理。


比如,2016年发表在《中华疾病控制杂志》的文章。



文章背景在解释为什么采用随机效应logistic回归分析,说了这么一句:


随机效应模型的具体建模如下,有兴趣者可以瞅一瞅


那么如何鉴定阳性事件是否存在着聚集性呢?目前来看,似乎没有好的软件分析的方法,也未见相应的文献(如果有,请朋友告知我一声)。一般主要还是从理论上判断,所研究的数据没有在时间、空间和人群中存在着聚集性的问题。如果存在着,那么想办法纳入引起聚集性的变量进入回归模型。


来源:医学论文与统计分析


声明:本站内容除标明“原创”、“独家整理”外,均来自于网络公开信息收集,仅供学习使用,本站少数附件需自愿赞助后才可下载,该费用并不是直接用于购买附件,而是作为公益赞助自愿支持本站服务器及网站运维,请您知晓。如涉嫌侵犯您的合法权益,请联系vip@health.net.cn告知我们,我们将在第一时间撤销文章并表达歉意,期待我们共同促进医学行业信息交流和发展,感谢您的支持。 立刻扫码加微信群


  • 评论列表

留言评论