DAG方法与自变量筛选 【9天实用统计学公益训练营Day3-3】
关注公众号的朋友都知道,郑老师我之前连续4年开设了“30天学会医学统计学”,从理论到实操,一步一步教会大家统计学、SPSS课程。
2026年,我们对这门课程进行全新升级!课程时间大幅度缩短,内容大幅度提升!
我称为:9天实用医学统计学公益训练营。
课程介绍:“9天实用医学统计学”公益训练营即将启动,更高效、更高级的统计课
本课程是浙江中医药大学医学统计学教研室的公益、免费公开视频课!不是骗人入坑收费的广告。本课程公益视频课定期开课,欢迎您参与学习。
欢迎报名
本公众号“医学论文与统计分析”,后台回复“报名”,加入微信学习群吧。
Day 3-3 DAG方法与回归自变量筛选
回归建模对于混杂因素或者潜在混杂因素的挑选有一定的方法。上一节讲的是先做差异性再挑选,这种策略叫先单后多,是数据驱动型的自变量筛选。
这种自变量筛选是有必要的,因为我们回归建模不能有太多的自变量。
现在我们重点讲一下更加科学的方法,自变量筛选要结合DAG的方法。
DAG是一种方法,也是一种理念,一种思维方式。简明扼要地提一下现在比较流行的DAG方法,对我们今后的研究肯定有帮助。
√变量筛选策略的变化趋势
近20年来,回归建模的方法发生了很大的改变。
我在跟踪流行病学杂志、四大医学流行病学期刊时,看到了一个典型的趋势。
一篇发表在著名的《美国流行病学杂志》上的文章连续跟踪了很多年,专门讨论流行病学中变量的选择问题。它的题目就点明了回归建模转变的方向:现在变量的选择,不再强调数据驱动了。
这篇文章把自变量的筛选策略分成了两种。
第一种是理论驱动,一般是先验知识法加上DAG方法。
第二种是数据驱动,就是我们之前讲过的先单后多、逐步回归法,还有效应改变法。
不过现在效应改变法用得也不多了。后面我们讲预测模型的时候,还会讲一个lasso法,lasso法也属于数据驱动法。
这篇文章跟踪了2008年到2019年这十年间的数据变化,它发现了变量筛选的一个明显趋势:大多数文章利用先验知识来确定纳入回归的变量,数据驱动的非常少——原文用的是"very little"。
再看因果图的使用:2008年基本上没有文章用因果图,到了2019年,这个比例已经达到了13%。因果图就是我们刚才讲的DAG这个工具。
也就是说,现在我们挑选潜在混杂因素,更多的是通过专业知识来挑选相应的自变量。这些潜在混杂因素,有时候我们也叫它协变量。
√DAG的基本概念
DAG最早在1980年,图灵奖得主朱迪亚·珀尔(Judea Pearl) 提出了结构因果模型 (SCM)。
他说我们这个世界是由一系列稳定自主的因果机制构成的,有一个因果结构网络,能够用数学的语言去描述这个机制。
这个结构因果模型的数学图形语言就叫有向无环图,有方向的、没有回路的图形。
DAG是带有箭头、没有回路的图形,箭头表示因果的方向,每个节点表示一个变量,每条箭头表示因果机制。
比如说示意图中吸烟和肺癌的关系,吸烟改变基因突变,造成肺癌。
年龄作为混杂因素,对吸烟有影响,对肺癌有影响。
另外还有一个叫碰撞变量,当吸烟影响肺功能、肺癌也影响肺功能,肺功能就是碰撞变量。
因果图就是把变量之间的因果关系通过图形展示出来。
DAG的核心价值是迫使研究者基于自己的领域知识,明确地提出变量之间的因果假设,要基于专业知识提出,而不是基于数据驱动。
它帮助我们识别混杂因素、中介变量和碰撞变量等等。
混杂因素、中介变量和碰撞变量不可能是用数据来产生的,数据只显示有关系,但到底是混杂还是中介,你没法用数据判定。
首先你要用自己的专业知识来实现混杂因素的识别。
DAG的实例分析
我们来举例介绍一下DAG的方法。
比如说,研究癌症患者手术方式与预后的关系,重点关注手术方式和最终结局。
我们首先画出一个有向无环图,也就是DAG。从年龄、性别出发,一直到最后的结局,中间有各种变量:入院前吸烟情况、有无转移、手术方式,还有术后化疗,最后是结果。
那画这个图干什么呢?目的是:当我们用回归方法来控制混杂偏倚的时候,要知道该挑哪些变量放到模型里。
传统上我们怎么做?先单后多。
很多人会犯一个误区——把分组比较中有差异的变量,统统都放到模型里面去。比如手术方式不同,那这两组之间哪些变量有差异,就把它们都控制住。
这样做其实是不对的。
为什么呢?因为不是所有有差异的变量都是混杂因素。
有些变量可能是中介变量——也就是手术方式通过它来影响结局的,这种变量不能控制,控制了反而会掩盖真实效应。还有些变量可能是碰撞偏倚变量,控制后会引入新的偏倚。
所以,DAG就是帮我们从因果结构上判断:到底该控制谁,不该控制谁。这比单纯看“有没有差异”要科学得多。
√四种协变量的区分
关于协变量,需要澄清一下。
我们常说的“协变量”,广义上指对研究结局产生重要影响的变量。一般文章里主要指混杂因素,比如年龄、性别。
但从DAG视角看,协变量远不止混杂因素,还包括中介变量、碰撞变量等相关变量。
下面结合“手术方式与预后关系”的DAG图,逐一说明。
· 中介变量
比如术后是否化疗。手术方式既可以直接影响生存结局,也可以通过“术后化疗”这个中间环节间接影响。
术后化疗是中介变量,不是混杂因素。
中介变量不应该纳入回归模型,否则会掩盖真实的直接效应。
· 混杂变量
比如年龄和肿瘤分期。年龄影响手术方式的选择,也影响生存结局;分期同样既影响手术方式,又影响结局。
混杂变量是需要纳入模型控制的。
· 相关变量
比如吸烟。吸烟与手术方式没有直接的因果关系,但两者同时受年龄影响(年龄影响吸烟习惯,也影响手术决策),因此吸烟与手术方式是相关的。
在DAG中虽然没有箭头直接连接,但这种相关也满足混杂条件的,吸烟也是需要控制的混杂因素。
· 碰撞变量
碰撞变量是指一个变量同时受到暴露和结局的影响(即两个箭头同时指向它,也即是图中的S,E → S ← O)。
它既不是混杂也不是中介,绝对不能纳入模型,否则会打开一条本不存在的“后门路径”,扭曲因果推断。
总结一下,协变量不只有混杂因素,还有中介变量、碰撞变量等。如果不加区分,把中介变量或碰撞变量错误地纳入回归模型,不但无法控制混杂,反而会引入新的偏差,导致结果错误。
这听起来有点复杂,但确实非常重要。
√DAG的绘制
现在DAG的绘图网站已经非常成熟了,最权威、最实用的网站是DAGitty,5分钟就能学会。
实际上,DAG就是画箭头,画箭头是要靠专业知识去连的。
√DAG结合回归建模的四个步骤
DAG结合回归建模一般有四个步骤。
第一,收集文献
掌握暴露、结局和其他协变量之间的关系,除了已测变量,也包括未测指标、未测混杂,都要包括在内。
第二,基于理论结合研究设计方案去绘制DAG
理论知识有了,还得探讨研究方案,因为有些变量之间的关系是双向的。
比如老年人慢性病生命质量影响因素,社交活动对老年人生命质量有促进影响,但是在横截面调查里面,关系可能是反的,是生命质量影响了社交活动,身体差了就不愿意社交。
所以设计DAG的时候一定要想清楚,在具体的场景下因果关系应该是怎样的。
比如吸烟会导致肺功能变差,但是在一定场景下,肺功能差的人反而戒烟了,不吸烟与肺功能差反而有关系。
所以在具体的研究场景中思考两个变量的关系谁因谁果,因果关系特别是双向因果关系并不是恒定的,不能随便画。
第三,选择合适的统计方法建模,挑选潜在混杂因素作为协变量纳入模型
建模策略有三种:多模型策略、数据驱动策略、倾向得分策略。
第四,敏感性分析
看不同的建模策略、不同的统计技术结果是不是相似,相似的结果就稳健。
√DAG+多模型控制策略
在具体的建模策略上,多模型策略是结合DAG工具,挑选存在的潜在混杂因素,同时构建多个合格模型,每个模型包括不同数量的潜在混杂因素。
一般会构建多个模型,基于专业知识和文献逐步增加协变量,一开始没有协变量,然后包括人口学的,再包括社会经济的、生活行为方式的、疾病特征的等等。
多模型策略也是一种敏感性分析,看看结果是否稳健。这种先验知识法最好结合DAG方法,现在越来越多的杂志认可。
√DAG+数据驱动控制策略
还有一种传统的数据驱动策略,就是先单后多,先做差异性,有差异的协变量(条件一,P<0.05)纳入模型开展多因素回归(条件二,P值也<0.05))。
根据模型自变量数量和样本量来决定策略,样本量越大自变量个数可以越多,样本量越小自变量个数就得越少。
策略一是第一条件和第二条件同时满足,P值小于0.05,这是最苛刻的;
策略二是第一条件或第二条件任意一个满足,P值小于0.05就纳入;
策略三是全变量纳入,不挑选。
需要提醒大家的是,我们之前都没讲过DAG,现在讲DAG和先验知识法,就是要提醒大家,在做差异性、将分组不均衡的因素纳入模型的时候,一定要留意它是不是潜在混杂因素,不要把中介变量或碰撞变量纳入模型。
不是所有分组有差异的变量都可以纳入模型,那是以前傻瓜式的做法。
案例:新冠康复者的影响因素研究
举个例子,2021年8月27日,中国中日友好医院曹彬教授联合首都医科大学等研究人员在国际顶级期刊《柳叶刀》上在线发表了题为" 1-year outcomes in hospital survivors with COVID-19:a longitudinal cohort study "的研究论文
该研究对2020 年 1 月 7 日至 5 月 29 日期间从金银潭医院出院的 COVID-19 幸存者进行了一项双向队列研究。
针对疲劳或肌肉无力、焦虑或抑郁、弥散功能障碍三个结局指标,作者开展了影响因素研究。
暴露因素:包括age, sex, cigarette smoking, education, comorbidity, corticosteroids, antivirals, and intravenous immunoglobulin、disease severity 。
统计学方法:logistic回归
如果按照传统的影响因素分析,把所有变量放在一起做个回归模型就可以了。
但学了先验知识法和DAG工具后会发现,研究不同变量时,混杂和中介是不同的。
√当暴露因素是疾病严重程度(disease severity)时,年龄、性别、吸烟状态、教育程度、并发症、皮质类固醇、抗病毒治疗、静脉注射免疫球蛋白都是潜在混杂变量,所以回归分析的时候都一同纳入。
√当分析教育和吸烟程度与结局的关系时,并发症、疾病严重程度不能纳入模型,因为它们可能是中介变量。
√当分析年龄与结局的关系时,性别、吸烟状态、教育程度能放了,因为其它变量可能是中介变量。
√当分析并发症与结局的关系时,疾病严重程度不能纳入模型,因为它可能是中介变量。
所以无论探讨哪一个影响因素,一定要明确哪些是混杂、哪些是中介,这样建模才是科学的,才真正做到了因果推断。否则把所有变量放进去分析一遍,结果不可靠。
本章总结
关于因果推断中的回归建模,有几个关键点需要记住:
第一,混杂与中介并非一成不变的。
混杂因素和中介变量都会干扰暴露与结局的关联性,但处理方式不同:
混杂因素应该纳入模型
中介变量一般不纳入模型
这句话听进去了,本章节你就理解了大半。
第二,统计建模时,不关注模型好不好看。
我们一般不太注重模型建得漂不漂亮——不关注AUC面积有多大、R平方有多大,也不考虑模型的总体效果。只关注一件事:有没有控制好混杂。
而且,因果推断中需要控制的协变量个数,通常比传统的影响因素分析更严格。
第三,先验知识法结合DAG工具,应该成为挑选混杂因素的主要手段。
特别是要注意:不能纳入中介变量。
第四,控制混杂的回归模型,不要用逐步回归法。
我不是说回归不能用逐步法,而是在“控制混杂”这个目标下,不要用。我们允许没有意义的协变量留在模型里,不用画蛇添足。
至于逐步回归法,后面讲预测模型的时候,做组合优化就用得着了。
本章节讲的是理论内容,一共分三个层级。大家如果有更多疑问,可以在公众号“医学论文统计分析”后台回复2003,我们会持续更新答疑帖——很多人在问的问题,我们都会汇总起来统一答复。
最后提醒:要学习本推文的完全对应的课程视频,请发送关键词“报名”至公众号,加入高校公益免费课程群来学习吧。
关于郑老师团队及公众号
全国较大的医学统计服务平台,专注于医学生、医护工作者学术研究统计支持
郑老师团队可以提供诸多统计支持:
各式统计课程、临床试验设计
构建预测模型与真实世界研究
“双库”保发表训练营、医学数据库挖掘
详情联系助教小董咨询(微信号aq566665)
