本文内容来自《中华流行病学杂志》2019年第40卷第8期,作者为冯国双教授,原题目为《观察性研究中的logistic回归分析思路》。将这篇文章分享给医咖会的伙伴们,希望大家能从领域大咖的见解中有所收获,指导医学研究之路。
(感谢冯国双教授的授权)

观察性研究在研究设计中占有非常重要的地位,实际应用中比较常见的是病例对照研究和队列研究。尽管其应用广泛,但在数据分析中却存在不少问题。在分析时往往只考虑数据本身,而未能结合研究类型,从而导致结果的偏倚。甚至在已发表的文章中,也存在一些不严谨用语。

本文从观察性研究的类型出发,基于不同研究类型的研究目的,以logistic回归分析为例,探讨观察性研究的不同分析思路,希望为医学科研工作者提供一定的参考和借鉴。

logistic回归

假定有m个自变量X1,X2,…,Xm,logistic回归模型的基本形式可表达为:

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

部分研究在数据分析时,忽略了前期的设计思路,只是简单地把因变量和所有自变量纳入统计软件中相应位置,点击运行直接给出结果。从数据上来看,病例对照研究和队列研究的数据形式完全一样,软件操作过程也并无不同,都是指定因变量和自变量,然后给出参数估计值及统计检验结果。

统计软件无法判断研究者采用的是病例对照研究还是队列研究,也并不清楚作者的主要研究目的是什么,只是对指定的变量进行参数估计。而统计分析的思路需要根据研究目的和研究类型而定,对于病例对照研究或队列研究而言,它们的分析思路显然不同。一味依靠统计软件,不仅容易出现一些错误分析思路,也会导致错误的分析结果。

病例对照研究中的logistic回归

从数据分析的角度来看,病例对照研究大致有两大类目的:一是探索危险因素,二是验证危险因素。

1、以探索危险因素为目的的分析思路:

危险因素的探索常见于临床研究中,通常用于研究初期,此时研究者并不清楚哪些因素可能会影响结局的发生,因此先进行初步探索。根据专业知识和经验收集一些可能的指标,然后从中寻找可能对结局影响较大的因素。

例如,探索儿童打鼾的危险因素,研究者并无太多的前期基础,只是为了发现可能与儿童打鼾有关的因素,这种情况下会根据文献报道、专业经验等收集一些可能有关的指标,并从中找出与儿童打鼾有关的部分因素。

危险因素探索的文章中,最常见的表述错误是“校正其他混杂因素”后,发现共K个变量对结局有影响。混杂因素是相对主要研究因素而言,而危险因素探索的研究中,并无明确的主要研究因素,所有变量都是待研究的因素,目的是从这些变量中找出哪些有影响。此类研究中,“校正其他混杂因素”是一种不严谨的表达方式。

对于这种分析思路,需要有一定的分析经验和技巧。实际分析中,需要考虑几个问题:

① 线性问题:由于logistic回归本质上仍属于“线性模型”,因此一定要确认自变量与因变量(logit P)之间是否存在线性关系,如果不是,需要考虑进行相应的变换,否则可能会产生错误结果。

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

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

② 共线性问题:共线性即自变量之间存在高度相关,从而导致结果不可靠 [1]。共线性是大多数回归模型都需要考虑的一个问题,一旦发现该问题,需要采取不同措施来解决。常见的解决方案包括删除某一自变量、主成分分析、Lasso回归等。

例2:某研究分析乳腺增生的危险因素,自变量同时包括妊娠次数(三分类变量,用1、2、3表示相应次数)和流产次数(三分类变量,用0、1、2表示相应次数)。在单因素分析中妊娠次数差异有统计学意义(2 vs. 1,P=0.026;3 vs. 1,P=0.035),然而多因素分析中则差异无统计学意义(P值分别为0.635、0.594)。分析原因发现,主要是由于妊娠次数和流产次数有较强的共线性,二者相关系数高达0.55,从而导致妊娠次数变得无统计学意义。解决方案采用了删除法,删除妊娠次数变量,保留了流产次数变量。

③ 单因素和多因素的问题:目前危险因素筛选的一种分析思路:先进行单因素分析,将单因素分析中差异有统计学意义(P<0.05)的变量再纳入多因素分析,选出最终有统计学意义的变量作为危险因素。然而这一思路并非十分可靠,有些情况下可能会出现单因素分析无统计学意义而多因素分析有统计学意义的情况,此时就容易漏掉某些重要的因素。

例3:某研究分析两个血清学指标(分别用阳性和阴性表示)对胃癌的影响,数据结果见表 3。

该数据采用单因素分析的话,可以发现 x1 差异无统计学意义(P=0.114),而在多因素分析中却变得有统计学意义(P=0.018)。如果只将单因素分析中有统计学意义的变量纳入多因素分析的话,就会漏掉x1变量。

为什么会出现这种情况,主要是因为 x1 和 x2 之间存在负相关,而 x1、x2 与结局之间均为正相关。因此,数据分析过程中,不要盲目套用所谓的“分析套路”,而应结合实际情况具体问题具体分析。

总之,在筛选危险因素时,建议不要仅将单因素分析有统计学意义的变量纳入多因素分析,一定要厘清变量之间的关系,否则容易遗漏重要的变量或纳入无意义的变量。

2、以验证危险因素为目的的分析思路:

验证危险因素,说明研究者在研究开始时已经有明确的主要研究因素,主要目的是为了验证该因素是不是真正的影响因素。基于这种目的,研究者在设计时会突出主要因素,但同时也会收集其他可能的混杂因素。

例如,探索肺癌与吸烟的关系,吸烟是主要研究因素,因此问卷调查中会详细设置各种与吸烟有关的问题。考虑到其他因素可能也会影响肺癌发生,因此调查时也会加入其他有关因素的调查,但这些因素不是研究者关心的,只是为了校正这些因素,以便真正明确吸烟与肺癌的关系。

因此,对于这种研究目的关键的问题是,如何控制混杂因素,以便真正明确主要研究因素与结局的关系。混杂因素在流行病学中已有详细定义[2],不再赘述。

从数据分析的角度来看,要判断一个因素是否为混杂因素,可以从两个方面来考虑:

第一,分析该因素是否对结局有较大影响,通常可采用χ2检验或单因素logistic回归来实现;

第二,分析该因素在主要研究因素中的分布情况,通常采用χ2检验来实现。

例4:某研究分析性别与幽门螺杆菌(Hp)的关系,现在考虑吸烟是否为影响二者关系的混杂因素。具体数据见表 4。

首先分析吸烟对结局的影响,采用χ2检验或单因素logistic回归不难发现,吸烟人群与不吸烟人群相比,Hp阳性的风险更高(OR=1.84,95%CI:1.44~2.35)。其次分析吸烟在性别中的分布,χ2检验结果显示,男性和女性中吸烟的比例差异有统计学意义(χ2=396.97,P<0.001),男性的吸烟比例远高于女性。

由此看出,以性别作为主要分析变量,在分析性别与Hp感染时,吸烟可能是影响二者关系的混杂因素,必须加以校正。校正前结果显示,性别对Hp的影响有统计学意义,男性有更高的Hp阳性风险(OR=1.62,95%CI:1.26~2.07);校正后发现,性别对Hp的影响无统计学意义(OR=1.26,95%CI:0.94~1.68)。

因此,对于以验证危险因素为目的的logistic回归分析,分析思路主要是明确哪些因素可能是混杂因素并加以校正,以发现主要研究因素与结局的真实关系。

建议尽量避免的两种思路

①把所有变量都进行校正。除非样本量足够大,否则这种方式不可取。因为纳入的自变量越多,所消耗的自由度越大,用于估计主要研究因素的样本量相对越小,结果的精确度也越低。

②采用逐步回归筛选变量。作为主要研究变量,一定要保留在模型中,同时要纳入混杂因素。逐步回归筛选适用于探索危险因素,不适用于验证危险因素。

队列研究中的logistic回归

队列研究绝大多数都是为了验证某一危险因素,这是由研究性质决定的。因为队列研究在一开始就需要指定暴露和非暴露,也就相当于确定了主要研究因素。因此,从数据分析角度来讲,队列研究主要是为了排除混杂因素,与前文介绍的思路并无不同。但队列研究在时间顺序上可以证明研究因素发生在前,结局发生在后,因此其验证能力更强。

由于队列研究有明确的时间先后顺序,此时在说明主要研究因素与结局的关联强度时,可采用RR(risk ratio)而非OR(odds ratio)。队列研究中,当结局发生率很低时(<10%),OR是RR的一个很好的替代指标,此时用logistic回归可直接求得OR值,用来说明暴露的危险度。但如果结局发生率不是很低,OR与RR差别较大,此时用OR来说明危险度可能会有一定的偏倚 [3]。

例5:某研究分析Hp感染与胃黏膜病变进展的关系,观察数据见表 5。

本研究如果计算OR值,则OR=2.44(95%CI:1.05~5.70),如果计算RR值,则RR=1.77(95%CI:1.01~3.12)。由于病变进展的发生率较高,两个指标差别较大。

队列研究中RR值的计算通常可采用对数二项分布回归(log-binomial regression)。通常需要借助软件实现,如SAS的proc genmod过程[4]。

小结

本文介绍了病例对照研究和队列研究中logistic回归分析的不同思路,以及常见的一些应用错误。然而本文的思路并不仅限于logistic回归分析,完全可以推广到其他广义线性模型。

例如,队列研究的观察结局如果是计数资料,则可考虑Poisson回归或负二项回归,此时仍需考虑混杂因素的校正问题。因此,本文思路对各种常见的回归模型均有一定借鉴意义,至于模型的选择主要取决于研究结局类型及其分布。

在各种常见的回归分析中,一定要分清研究类型及其目的,到底是探索危险因素还是验证危险因素。危险因素的筛选过程较为复杂,需要考虑较多问题,包括变量筛选方式等;验证危险因素相对较为简单,不需要考虑变量筛选,但要明确混杂因素并加以校正。

一定要避免“把数据完全交给软件”这种分析方式,软件主要用来解决计算问题,分析思路必须由研究者来确定。统计分析不是简单的参数估计,而应结合研究类型,明确研究思路,才能给出合理的结果。

利益冲突:所有作者均声明不存在利益冲突

参考文献:
1.Mennard S. Applied logistic regression analysis[M]. Newbury Park, California: SAGE Publications, Inc, 2001.
2.徐飙. 流行病学原理[M]. 上海: 复旦大学出版社, 2007.
Xu B. Epidemic theory[M]. Shanghai: Fudan University Press, 2007.
3.Stokes ME, Davis CS, Koch GG. Categorical data analysis using the SASsystem[M]. 2nd ed. Cary, NC: John Willy & Sons, Inc, 2000.
4.冯国双, 刘德平. 医学研究中的logistic回归分析及SAS实现[M]. 2版. 北京: 北京大学医学出版社,, 2015.
Feng GS, Liu DP. Logistic regression analysis and SAS application in medical research[M]. 2nd ed. Beijing: Peking University Medical Press, 2015.

扫码关注“医咖会”公众号,及时获取最新统计教程!

多元有序logistic回归分析_一文详述:观察性研究中的logistic回归分析思路相关推荐

  1. 多元有序logistic回归_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1:multinominal logistic regression install.packages("nnet" ...

  2. 5弹出阴影遮罩_千文详述Cocos Creator弹出式对话框实现技术,着实硬核

    正文 在Cocos Creator游戏开发中,经常需要使用到弹出式对话框,下面我们就一起来封装下自己的弹出式对话框. 一.弹出式对话框原理解析 1:对话框的结构: 1. `根节点 -->`2. ...

  3. odoo pivot中去掉求和_一文读懂深度学习中的卷积运算与图像处理

    华为人工智能认证讲师 袁梦 在人工智能深度学习技术中,有一个很重要的概念就是卷积神经网络 CNN(Convolutional Neural Networks).卷积神经网络被广泛地运用到计算机视觉中, ...

  4. xgboost简单介绍_好文干货|全面理解项目中最主流的集成算法XGBoost 和 LightGBM

    点击上方"智能与算法之路",选择"星标"公众号 第一时间获取价值内容 本文主要介绍基于 Boosting 框架的主流集成算法,包括 XGBoost 和 Ligh ...

  5. elasticsearch删除索引_一文带您了解 Elasticsearch 中,如何进行索引管理(图文教程)

    在 Elasticsearch 中,索引是一个非常重要的概念,它是具有相同结构的文档集合.类比关系型数据库,比如 Mysql, 你可以把它对标看成和库同级别的概念. 今天小哈将带着大家了解, 在 El ...

  6. 魏文王问扁鹊的注释_魏文王问扁鹊中扁鹊说的话给我们的启示是什么

    展开全部 从社会效益和执法成本上说,事后控制不如事中控62616964757a686964616fe4b893e5b19e31333436316239制,事中控制不如事前控制,这就是所谓的" ...

  7. mysql 获取距离当前最新的记录_一文带你了解 MySQL 中的各种锁机制!

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! MySQL中的锁机制,按粒度分为行级锁,页级锁,表级锁,其中按用法还分为共享锁和排他锁. 行级锁 ...

  8. c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...

    推荐: 从面试到入职到离职,我在B站工作的30天时光 爱了爱了,Alibaba顶级MySQL调优手册到手,加薪妥了 爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了 本文 ...

  9. python统计字符在文件中出现的次数_一文搞定统计字符串中某字符出现的频次

    下面是统计字符串中某字符出现的次数的方法 方法1: 这个方法相当简单,零基础自学编程,代码写成这样能满足需求,但它逐个逐个计数,比较笨拙.rlt = {} for i in content: if i ...

最新文章

  1. 转:Facebook是如何发布代码的
  2. 微信、移动端css布局的那些坑
  3. 论如何寻找万一的川财证券开户渠道
  4. SAP R3 Create Client: T-code:SCC4
  5. js判断一个数组是否包含一个指定的值
  6. matlab计算截断误差,Matlab相位截断误差仿真综述.doc
  7. python学习实例(7)
  8. Linux基础命令---accept打印机控制
  9. soapui生成java客户端_用soapUI生成客户端代码
  10. 操作系统习题集(部分)
  11. fh 幅频特性曲线怎么画fl_开环幅相频率特性曲线和对数相频特性曲线的完整画法...
  12. python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
  13. asp.net电费管理系统
  14. springboot内存占用过高问题排查 - jvm内存使用分析
  15. Skiller V3
  16. 用计算机亩换算成平方,亩换算(平方米换算亩计算器)
  17. 新媒体运营:23种免费获取流量的运营套路 ,你知道几种? 黎想
  18. 游戏服务器主程白皮书-概述
  19. 如何从根本上克制自己在电脑上刷B站,专注学习(hosts文件)
  20. Wordpress 的删除和重新安装

热门文章

  1. 算法训练 6-1 递归求二项式系数值
  2. bzoj4380[POI2015]Myjnie dp
  3. BZOJ 2242: [SDOI2011]计算器 [快速幂 BSGS]
  4. hdu_2089 不要62
  5. 基于easyX的颜色侵略小游戏
  6. Java学习笔记8-1——汇编语言入门
  7. 使用 IPsec 与组策略隔离服务器和域-第 7 章 IPsec 疑难解答
  8. wifi 信道_说了这么久的信道和频宽,这回总算能弄明白啦
  9. java 精灵线程_Java线程的状态分析
  10. 3578. 最大中位数