困扰多年的问题:如何筛选自变量建立多因素回归模型
"如何分析真实世界研究数据"系列第二篇
在开篇已经提过,回归分析是真实世界研究最重要的手段,其中目的是探讨多因素情况下,各个因素的独立效应。那么,困惑诸多分析者的问题是,无论是医院的电子病历、还是调查研究,均涉及到几十个甚至上百个研究因素(我们称之为自变量),如何筛选构建一个多因素回归模型呢?
一、为什么要筛选变量构建回归模型
比如,现在研究要评价结直肠癌患者生存的影响因素(后期来构建预测模型),与患者有关的因素包括患者的基本情况、患者病情、患者入院治疗、用药的各种特征、出院后行为、饮食、以及就诊特征,可能各因素都会影响生存结局。
生存结局因因素应该可以构建COX回归模型。构建COX回归模型时,是要同时把所有自变量(也就是原因变量)纳入回归方程吗?
当然不能,理由如下:
(1)这些因素作为自变量放在一起,各个变量的复杂的关系,比如共线性问题,会导致模型构建失败
(2)任何一个回归模型,基于有限样本量构建,样本量和纳入模型自变量息息相关,太多变量而样本量不够时,同样模型构建失败
(3)回归分析探讨影响因素,后期是为了构建预测模型,自变量个数也不能太多。为什么,预测模型是为了后期预测患者结局,需要采集模型所有的自变量的指标值,测定指标需要成本,自变量个数越多,则预测成本越高。
因此,必须筛选为数不多、合适的变量进入回归模型。总的来说,我用一个形容词来说回归模型构建的理念:“大道至简”。模型不要太复杂!
二、如何筛选自变量
筛选自变量的方式,估计很多做过回归分析的比较熟悉。首先单因素回归,然后P值<0.05的放入模型中,或者在此基础上,采用逐步回归法筛选自变量。这个99%懂回归分析人士的选择,本人以往接受的教育也如此。
但是现在告诉你们,这种方法已经不是主流的方法了!
《欧洲流行病学》杂志把筛选自变量的方法分为两类,一类是理论驱动方法,另外一类是数据驱动方法,先单因素再多因素或者逐步回归法是数据驱动的一类方法,但不是其中的最主流的方法。
具体来说,现在常见的筛选自变量方法有四种:
“Among those, 146 studies (50%) reported using prior knowledge or causal graphs for selecting variables, 34 (12%) used change in effect estimate methods, 26 (9%) used stepwise approaches, 16 (5%) employed univariate analyses, 5 (2%) used various other methods and 107 (37%) did not provide sufficient details to allow classification (more than one method could be employed in a single article)”
1)首选方法,是因果关系网络方法,更多的写法是有向无环图(Directed Acyclic Graph,DAG)方法,也就是理论驱动的方法。根据变量与变量的因果关系筛选进入回归模型的自变量。如果理论上不存在因果关系? 别进来!
2)其次是,效应改变法原理,这才是数据驱动的首选方法,自变量筛选中,根据自变量对研究结局影响是否足够大,来筛选自变量。比如当一个变量纳入回归模型后,对重要变量效应值的影响不到10%,那么就认为是多余,删掉!
3)排在第三的是逐步回归法,逐步回归可以处理多重共线性,也是不错的。
4) 第四才是先单因素后多因素的方法。
所以本人在这里希望能够通过本系列文章来革新当前构建回归模型的理念和方法。
三、我的建议:“严进宽出”
综合四大自变量筛选的方法,我认为可以采用"严进宽出" 的理念进行自变量筛选。
严进宽出(或者本人视频说的严进严纳)的方法基本理念是,即在纳入自变量的时候需要严格纳入,在排除自变量的时候,没有多大意义的别放在最终模型中来。其中严进采用理论驱动法,宽出采用数据驱动法。常见的组合是,在研究多个影响因素时,采用DAG+数+逐步回归法;在控制混杂时,采用DAG+效应改变法。
本篇就到此结束。下一篇我将介绍最难理解的DAG的方法。
“如何分析真实世界研究数据”系列: