在前期推送的内容中,我们介绍了构建多因素回归模型,探讨对结局指标有独立作用的影响因素,就好比侦探破案找出真凶的过程。我们作为研究人员,就像是一名侦探,通过统计学方法及专业知识,在众多的嫌疑人中一一排查,来一次『白夜追凶』,最终才能找出真正的凶手X。

相关阅读:嫌疑人X的献身:如何理解回归模型中的"调整"和"独立作用"

当然,要做一名好侦探,你一定要有一种可靠的直觉,能够准确划定嫌疑人的范围,这才是成功破案最为关键的一步,如果事先连嫌疑人都判断错了,那就只能让凶手逃之夭夭了。

同样,对于一个研究来说,我们通常会收集很多数据资料,但由于受到样本量、或者结局事件数量的限制,我们不可能把所有的变量都带入到多因素回归中进行分析。那么,在面对众多自变量需要进行分析时,到底如何来确定谁是可疑因素,哪些因素需要被纳入到嫌疑人的范围内,从而进入到多因素回归分析呢?今天就跟着小咖一起,教大家如何筛选多因素回归分析的候选变量。

研究实例

学习标准的统计方法,最直观便捷的一个途径就是从文献中去学习,看看在高分期刊上发表文章的大牛们都是怎么进行分析的。

我们首先来看一篇2011年发表在The New England Journal of Medicine (影响因子:72.4)的文章:《A Prospective Natural-History Study of Coronary Atherosclerosis》[1]。

我们先不管这篇文章都做了哪方面的研究,就单凭作者对于统计学方法的描述,小咖觉得已经足够膜拜的了。

关于如何筛选多因素回归分析的候选变量,作者原文中这样写道:

Baseline variables that were considered clinically relevant or that showed a univariate relationship with outcome were entered into multivariate Cox proportional-hazards regression model. Variables for inclusion were carefully chosen, given the number of events available, to ensure parsimony of the final model.

小咖觉得这句话写的实在是太经典了,有需要的小伙伴可以先把它收藏起来,作为一个模板以后用在自己的文章里。这句话很精炼地概括出了在多因素回归分析中进行变量筛选时需要满足的几个基本条件:

1. Clinical Relevant

作为对结局事件有影响的候选变量,首先从临床专业知识的角度考虑,它的作用一定是被人们可接受的,可以从某个生理机制或途径去进行合理的解释。我们常见的候选变量包括以下几类:

(1) 人口学资料:例如性别、年龄、学历、职业、身高、体重等

(2) 生活习惯:例如吸烟、饮酒、体育锻炼等

(3) 病史信息:例如家族史、既往史(高血压、糖尿病、心梗等)等

(4) 检查信息:例如血液指标(LDL-C、CRP)、其他检查项目等

(5) 治疗信息:例如用药、手术等

(6) 暴露/处理因素

针对以上很多候选变量无从下手时,我们可以参考既往发表的文献,总结出已公开发表报道过的对结局事件有独立作用的变量,将它们作为重点的候选变量以供备选。

2. Univariate relationship with outcome

第二个筛选变量的角度是从单因素分析的结果入手。我们在前几期推送的文章中,已经讨论过了传统单因素分析和单因素回归分析的关系,以及单因素分析和多因素分析的关系。

需要复习的同学可以戳这里:

  • 搞懂传统单因素分析和单因素回归分析的纠葛,有这篇文章就够了!
  • 单因素分析和多因素分析的结果不一致,怎么办?

其中提到单因素分析的结果可以作为我们多因素分析的一个参考,也就是说通过单因素分析的结果,可以帮助我们来判断哪些因素是对结局事件有影响的可疑因素,从而将其作为多因素分析的候选变量。

我们再来看一篇文章,2013年发表在JACC杂志(影响因子:19.9)上的文章《Predictors for Functionally Significant In-Stent Restenosis》[2]。

作者在统计方法中这样写道:

Candidate variables with a p value <0.2 on univariate analysis were included in multivariable model.

由于在单因素分析中,其结果之间的差异并不能很真实得反映出该因素对结局事件的效应,我们可以将单因素分析结果有统计学显著性的变量(P<0.05),作为候选变量的第一梯队。

当然,我们也可以适当地将纳入标准放宽到P<0.1,或者P<0.2,甚至有的研究放宽到P<0.25,这样可以有效地避免遗漏一些重要变量。虽然它们在单因素分析中无统计学显著性,但其真实的效应有可能被低估或者被掩盖,这样可以尽可能多地纳入可疑的混杂因素放入模型中进行调整。

3. Given the number of events available

当然,在多因素回归分析中纳入的变量并非越多越好,我们还要从模型的稳健程度去考虑。

我们前期推送的这篇文章:

  • 说到控制混杂因素,怎么能不提多因素分析!咋筛选变量进入多因素回归

文中已经提到控制混杂因素的个数主要取决于发生结局事件的多少,控制的混杂因素越多,所需要的结局事件的例数就越多。对于多重线性回归模型,样本量应至少为10-15的自变量个数,而对于logistic回归和Cox回归,结局事件则应至少为15-20倍的自变量个数。

也就是说,如果你打算做多重线性回归,想要在模型中纳入10个变量,那就要求样本量至少为100-150个;如果你准备做logistic或Cox回归,想要在模型中纳入10个变量,那么要求所需要的结局事件至少为150-200个。

需要注意的是,这里指的是结局事件的数量,而不是总的样本量,总样本量当然还要远远多于结局事件的数量。

分析步骤

好了,我们来总结一下这种变量筛选方法的分析套路:

第一步:单因素分析,对研究对象的基线资料进行比较;

第二步:筛选变量,需要考虑上述几点:

(1) 统计学有显著性,P<0.05,但此时P值已经并不十分重要,可以将P值放宽到0.1甚至0.2;

(2) 统计学上无显著性,但有临床意义,或者前期文献报道过有意义的变量;

(3) 结合自己的样本量或结局事件的数量,确定适宜的候选变量数量。

第三步:多因素回归分析,对模型参数进行解释。

结合我们前期推送的文章《说到控制混杂因素,怎么能不提多因素分析!》,对于观察性研究,我们常常要通过构建多因素回归模型,控制混杂因素的影响,从而探索暴露/处理因素的独立效应。

今天的内容我们就具体介绍了如何在多因素分析中进行变量筛选,这是我们最常用到的简单易行的方法,相信大家在平时自己分析数据的时候也会多多少少用到这种方法。但上述方法在筛选变量的时候,最主要的还是要看单因素分析的P值,由P值来主导自变量的去留。

不过如果组间各因素在基线状态下较为均衡,单因素分析结果并无显著差异,那么仅从单因素分析的P值并不能给我们提供太多的信息。而且近几年来统计学家们也呼吁大家不要太过于看重P值的地位,仔细想一想那些P>0.2的变量,它们就真的与结局事件无关了么?

所以,如果你以为筛选变量就这么简单,那就小看统计学的魅力了。对于在多因素回归分析中进行变量筛选的进阶方法,我们会在下期内容中继续向大家进行介绍。

相信许多小伙伴们在做多因素回归时候总是看文献的做法,先进行一次单因素回归,然后将单因素回归的有意义的指标纳入多因素回归中,简直就是无脑纳入,只要有意义,全部纳入,而无异议的看都不看就直接扔了,其实这样是不对的,但是这对于你发表论文可能没什么影响,因为很多审稿人根本就不知道多因素回归,(包括多因素logistics回归以及多因素cox回归)的具体定义,也不知道其纳入方法,外国人更是傻傻分不清楚了,但是说归说,我们还是要从本质去学习,了解什么是真理,什么是目的,目的是需要手段去实现的,但是真理才是永恒的。这里重要的一点是单纯纳入单因素分析中有意义的指标进入多因素分析,结果是不靠谱的,因为你很可能将重要的影响因素排除在外!!
举个例子
 
这里显然在单因素回归中(此处为单因素logistics回归)年龄是无意义的,但是地球人用脚趾头想想都能知道血脂的异常跟年龄是显著有关的啊,
这里先别着急将年龄从血脂异常候选影响因素中删去,我们再来看看多因素Logistic回归分析结果。SPSS软件的多因素Logistic回归结果显示,55-岁组血脂异常的患病风险是<45岁组的2.093倍。之所以会出现这种现象,是因为在做单因素分析时,往往无法识别混杂因素的存在,而混杂因素很可能会干扰我们关注的变量与结局之间的关系。
 
请仔细看这里的解释,55-岁组血脂异常的患病风险是<45岁组的2.093倍(我们并没有说45-55岁之间的人怎么怎么样,因为他p值没意义,so这里的描述要追求真理的情况下,显然需要更加细化的描述,就跟前面蓝字一样的描述,如果你傻傻分不清,论文是初级选手,或者不想写那么细化的论文,想简单点,请参照下图将年龄划出去就行
 
就是这里,不要将年龄这个变量纳入分类变量,那么就能显示出你想要的结果)
所以,如果多因素Logistic回归分析时,只纳入单因素分析有统计学意义的自变量,则有时候某些影响因素就没有机会进入多因素模型(比如栗子中的年龄,而年龄确实对血脂异常有影响)。

因此,采用单因素分析进行影响因素的筛选时,应注意适当调整检验水平(P<0.05并不是万能的,影响因素的探索性分析可以适当放开检验水准,比如设定为α=0.10 or 0.15),并结合临床专业(变量与结局之间的关系临床上是否讲得通),选择纳入多因素分析的变量,不要一味地舍弃单因素分析无统计学意义的自变量,要避免漏掉重要的影响因素

逐步回归是否能是万能的呢?
多因素回归分析的变量选择包括很多方法,大家可能用的最多的是逐步回归。为啥逐步回归这么人见人爱呢?小伙伴一定会说方便可靠啊!SPSS软件拖拖拽拽,勾选一下,结果就发出来了,又不用动脑,计算机又不会犯错,多好!事实上没那么简单!

SPSS软件中多因素Logistic逐步回归分析提供了条件参数估计似然比检验(Conditional)、最大偏似然估计似然比检验(LR)、Wald检验3种模型假设检验方法,和向前选择法(Forward)、向后剔除法(Backward两种变量进出方法,一共组合成6种逐步回归变量选择方法

这里是进入的箭头,步进概率那就是纳入与剔除的p值大小。我用的是spss21中文版,所以跟别人的可能有些不一样
似然比检验因为考虑了整个模型的拟合情况,所以结果比较可靠;Wald检验没有考虑各因素的综合作用,一旦自变量之间存在共线性,结果就不可靠。所以似然比检验成为首选
另外,SPSS软件逐步回归中默认在选入变量的显著水准为0.05,剔除变量的显著性水准为0.10,即所谓的“严进宽出”。一般来说,当两个检验水准接近时效率最高,如需修改,切记进入检验水准<剔除检验水准,以防“死循环”!
2.那是不是设置好逐步回归,直接看结果就好了,其实不然!逐步回归主要是选择那些偏保守的预测变量(通常是在考虑其他变量的基础上),这样做的优势是快速和简单。然而,仅仅依赖统计学方法并不能帮助我们选择最好的模型,因为它也无法告诉我们那些重要变量组合信息(逐步回归只会给出你一个变量组合,这是最优的组合吗?)。

一个更好的方法是使用LASSO(LeastAbsolute Shrinkage and Selection Operator)法来构建模型,这种方法一方面惩罚回归系数的绝对值大小进而实现选择变量(Selection),另一方面降低极端变量的权重(Shrinkage)。

当然,LASSO法对于很多人来说很复杂、搞不懂。我们再来看一个笨办法——拟合所有不同变量组合的模型,记录每种模型的拟合优度(goodness of fit,GOF),然后绘制GOF图。GOF的评价方法有很多,比较常见的是AIC(Akaike Information Criterion)和BIC(Bayesian Information Criterion)。AIC和BIC比较相似,这里我们主要以AIC为例。
AIC是一个相对测量指标,主要用于模型的相互比较,数值越低越好。作者在这篇综述中考虑年龄,收缩压、总胆固醇、高密度脂蛋白、糖尿病、现在吸烟、BMI共7个变量纳入到风险评分中。因此,将会有128个不同变量组合的模型(不考虑交互的前提下)

图展示了GOF图,使用的是Cox回归模型。预测变量的任何组合中,很明显年龄是最强的因素,包括年龄的模型是最好的,包括BMI但不包括年龄的模型一般是最糟糕的。因此,最好的多因素模型是不包含BMI的其他所有变量的模型。然而,需要明确的是BMI仍然是一个重要的预测因素,比如说,BMI测量比较方便,但是血脂却不方便测量,我们可以考虑用BMI替代血脂
从图2不难看出,GOF图有一个明显的缺点——制作太耗费时间,这才7个变量就有128种组合,如果更多变量呢?相信很多小伙伴头都要大了,但是不可否认,目前我们的研究中变量相对还较少,借助统计软件,GOF图还是比较实用
3. 除了上述的两个方面外,还需要考虑变量之间是否存在交互。如果交互确实存在,那么变量的交互项也需要纳入到预测模型中。当然还有一个比较简单的解决方案,就是分层拟合预测模型。举个栗子,ASSIGN评分对于不同性别就有独立的风险评分()。
总之,变量筛选需要结合临床专业判断和统计学方法,才能选出最好的模型!

注:本文中用的图有一部分是logistics回归,一部分我有点偷懒,所以用了原有数据的cox回归,其实两个回归之间的差别就是最终你观测的变量cox回归是时间连续变量,而logistics回归是二分类变量或者多分类变量罢了。原理都一样

咋筛选变量进入多因素回归 纳入变量 变量选择 类似机器学习的特征选择 cox回归分析cox多因素相关推荐

  1. R语言定量方法:回归,虚拟变量和交互项,假设检验:F 检验、AIC 和 BIC分析学生成绩数据带自测题

    最近我们被客户要求撰写关于学生成绩的研究报告,包括一些图形和统计输出. 回归假设 省略变量偏差 如果真实模型包括X 1 和X 2 ,但我们忘记了X 2,那么 - 在某些情况下 - 对X的估计将会有偏差 ...

  2. 时间序列与因素回归的区别

    浅谈时间序列与因素回归 这篇想谈谈时间序列和因素回归的关系,什么时候两个可以相互替代,什么时候不能相互替代. 什么是时间序列?时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列 ...

  3. R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择分类心肌梗塞数据模型案例...

    全文下载链接:http://tecdat.cn/?p=21444 在本文中,逻辑logistic回归是研究中常用的方法,可以进行影响因素筛选.概率预测.分类等,例如医学研究中高通里测序技术得到的数据给 ...

  4. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  5. R 回归 虚拟变量na_互助问答第85期:虚拟变量和空间面板回归问题

    问题一:设置虚拟变量如何做工具变量处理 使用tobit模型回归时,被解释变量为连续变量,解释变量为分类变量,因研究重点需要将分类变量具体分析,因此将解释变量虚拟变量处理,回归时命令为tobit y i ...

  6. python 工具变量回归_stata工具变量法一例:使用2SLS进行ivreg2估计及其检验

    作为OLS回归不符合假定的问题,还包括解释变量与随机扰动项不相关.如果出现了违反该假设的问题,就需要找一个和解释变量高度相关的.同时和随机扰动项不相关的变量,作为工具变量进行回归.工具变量通常采用二阶 ...

  7. 如何在SPSS中设置逻辑回归的哑变量

    哑变量,是一个人为设定的变量,通常取值为0到N,以职业分类来说,0代表学生,1代表工人,2代表老师等等,哑变量就是通过这种取值方式,以此来反映某个变量的不同属性. 哑变量的设置在各个回归模型中都非常重 ...

  8. 什么是回归问题和分类问题?机器学习知识点

    回归问题和分类问题是机器学习中两种最常见的预测问题类型. 什么是回归问题和分类问题? 回归问题是指给定输入变量(特征)和一个连续的输出变量(标签),建立一个函数来预测输出变量的值.换句话说,回归问题的 ...

  9. 离散型变量的编码方式——one-hot与哑变量(dummy variable)

    我们在用模型去解决机器学习问题的时候,要提前进行"特征工程".而特征工程中很重要的就是对特征的预处理. 当你使用的是logistic回归这样的模型的时候,模型要求所有特征都应该是数 ...

最新文章

  1. 065_html视频
  2. 详解使用fastboot为Android刷入原厂镜像
  3. 超图软件试用许可操作步骤_软件中的操作步骤
  4. Taro+react开发(32) Please use the ‘new‘ operator, this DOM object constructor cannot be called as a fu
  5. 当前目标 1614868689
  6. Ngrok tunnel本地映射公网使用方案
  7. 浅谈在基本数据包装类中使用'=='与equals的区别
  8. ssh GSSAPIAuthentication 参数
  9. 更新 mac 系统,clion 不能用
  10. 整理最全规范之Git仓库管理规范,Java开发规范,最全Java命名规范,数据库开发设计规范,接口设计规范
  11. python12岁以内身高随年龄的变化曲线图_2019年最新出炉身高标准表,家有1~12岁的男娃女娃快来看看啦!...
  12. 一文教你看懂POS单上的商户编号
  13. YYCMS5.0影视系统/源码全开源无授权/影视站全自动采集
  14. Java和c的一些不同(一)
  15. ROS:AUSU Xtion Pro Live OPENNI2
  16. Rancher 2.x 搭建及管理 Kubernetes 集群
  17. vivos9设置定时开关机方法分享
  18. 部分ARCGIS菜单翻译——初练
  19. Microsoft Excel 2000/2003修复工具
  20. 如何用NAS打造私有协同办公系统?

热门文章

  1. linux igmp 属于那层协议,igmp协议属于哪一层
  2. Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
  3. SQL存储过程与函数
  4. 为什么选一款适合自己的蓝牙耳机这么难?高性价比低延迟蓝牙耳机推荐
  5. 点到线段直线的距离, 直线与直线的关系 直线与线段的关系
  6. 地图处理之基本使用汇总
  7. 卡耐基《人性的弱点》精华总结
  8. 怎么把qlv格式转换成mp4添加到编辑软件中
  9. 怎么在jq中添加html样式,jquery怎么添加css样式
  10. 音乐播放器的滚动歌词的实现