![]()
系列简介
这是我们一系列原创技术贴,从易到难,每天学习一点。所有内容均为疾控数据分析、科研论文相关,或者说很多和现在的热门监测预警相关,所以我们这个系列就叫“监测预警基础”。
之前很多老师反馈这种小专题的形式特别好,可以一口气彻底学透一种方法,好的,我们又来了!
这次是分布滞后非线性模型,我们初步计划用8小节左右的内容讲通它的前世今生,以及如何使用。所以我们这个小专题的名字就叫做《八小篇搞懂DLNM》
今天是第3小篇——要学DLNM,比如了解其2大组件,DLM 模型与样条函数。
上一篇我们讲透了 GLM 与 GAM:GLM 是计数数据建模的基础,但只能拟合线性关系;GAM 加入平滑函数解决了非线性问题,却始终没法系统、完整地分析多日滞后效应。
想要同时搞定 “非线性 + 滞后效应”,我们还需要两块关键拼图:一块是专门破解滞后效应的分布滞后线性模型(DLM),另一块是实现非线性拟合的核心工具 —— 样条函数。今天我们就把这两个组件拆解得明明白白,公式配逐符号解读,搞懂它们,DLNM 的核心原理就通了一大半。
![]()
1. 为什么单天滞后分析不够用?
在 DLM 出现之前,研究滞后效应的做法非常 “粗糙”:要么只单独分析当天(lag0)、滞后 1 天(lag1)、滞后 7 天(lag7)等几个孤立时间点,只能看到零散的效应,没法还原完整的变化过程;要么把滞后 0 天到滞后 14 天的暴露全部塞进模型,但相邻日期的温度、湿度高度相关,会引发严重的多重共线性 ——模型根本分不清发病变化到底是哪一天的暴露导致的,结果波动极大、完全不可靠。
而疾控的真实场景里,滞后效应是一个连续的过程:比如高温对死亡的影响,通常滞后 2~3 天达到峰值,之后逐渐减弱,甚至后期还会出现 “收割效应”;寒潮对流感发病的影响,可能在 3~7 天持续走高。我们需要的是一整条完整的 “滞后效应曲线”,而不是几个孤立的点。
分布滞后线性模型(Distributed Lag Linear Model, DLM)就是为解决这个问题诞生的。
2. DLM 的核心思想:把效应 “分布” 在整个滞后期
DLM 的核心逻辑可以用一句话概括:它不再用一个单一的系数描述暴露的效应,而是将健康效应 “分布” 到一段连续的滞后时间里,给每一个滞后天数都对应一个效应系数,最终呈现出一条随时间变化的滞后效应曲线。
在此基础上,我们还能把所有滞后天数的效应累加,得到整个滞后期的累积总效应—— 这是评估暴露健康负担最核心的指标之一。
3. DLM 的标准公式与逐符号解读
疾控场景下,我们依然基于泊松分布的时间序列框架,DLM 的标准形式如下:
![]()
实际建模时,我们并不会直接把十几天的滞后项全部放进模型(依然会有共线性问题),而是对滞后维度的系数也施加 “平滑约束”(比如用多项式或样条),让相邻滞后天数的效应平缓变化。这既解决了共线性,又能得到平滑的滞后曲线,是分布滞后模型的精髓。
4. DLM 的优势与核心局限
核心优势在于
第一,可以完整刻画从滞后 0 天到最大滞后期的连续效应变化,精准识别效应峰值出现的时间、持续时长。 第二,能够计算整个滞后期的累积总效应,更全面地评估暴露的健康负担。 第三,模型框架依然基于 GLM,逻辑清晰,结果解读直观。
致命短板在于它本质上还是线性模型公式里的时间的系数是固定值,意味着 “暴露每升高 1 个单位,风险的变化比例是固定的”。和 GLM 一样,它默认低温升高 1℃和高温再升高 1℃,带来的风险变化幅度完全相同 —— 这显然不符合真实的 U 型、J 型暴露 - 反应关系。也就是说DLM 完美解决了滞后效应的分析问题,但依然跳不出线性假设的束缚。![]()
搞懂了滞后维度的工具,我们再来看非线性维度的核心 ——样条函数。它是 GAM 能拟合曲线的秘诀,也是 DLNM 实现非线性的基础。
1. 从 “分段直线” 到 “平滑曲线”:样条是怎么来的?
想要拟合非线性关系,最朴素的想法是分段回归比如把温度分成低温、中温、高温三段,每段单独拟合一条直线。但这种方法有个硬伤:两段直线在节点处是 “硬转折”,非常生硬,既不符合真实的生物机制,也容易受节点位置的影响。
样条函数就是对分段回归的升级:它同样是 “分段拟合”,但每一段用的是多项式曲线(最常用三次多项式),并且在分段的节点处保证曲线光滑连接(一阶、二阶导数连续)。大白话讲:就像用几根柔软的木条,在节点处固定拼接,最终得到一条顺滑、连续的曲线,既能灵活贴合数据的真实走势,又不会出现生硬的折角。
2. 样条函数的三个核心概念
不用深究复杂的数学推导,疾控研究者只要搞懂三个核心概念,就能用好样条:
第一、节点(Knots)曲线分段的分界点。节点数量决定了曲线的分段数:节点越多,曲线越灵活,越能捕捉细微的波动;但节点过多容易过度拟合,把随机噪声当成真实规律。疾控研究中,温度这类核心暴露的样条通常设置 3~5 个节点即可。
第二、自由度(df)可以理解为曲线的 “弯曲能力”,和节点数直接相关。自由度越小,曲线越接近直线;自由度越大,曲线越灵活。这是我们调参最常接触的参数:温度的暴露 - 反应曲线通常取 4~6 个自由度,滞后维度的样条通常取 3~4 个自由度。
第三、三次样条最常用的样条类型,每一段都是三次多项式,能保证节点处曲线平滑、没有折角,足够适配绝大多数公共卫生研究的非线性关系。
3.疾控研究最常用的两类样条
第一是自然样条(Natural Spline, ns),是在普通三次样条的基础上,对两端边界施加了线性约束,避免曲线在暴露水平的两端剧烈波动、出现不符合常识的结果。这是环境健康、传染病气象研究中最常用的样条,非常适合拟合温度、污染物的暴露 - 反应关系。
第二是B 样条(Basis Spline, bs),也就是基函数样条,灵活性更强,边界表现更丰富。在 DLNM 中,暴露维度和滞后维度的交叉基,通常都基于 B 样条构建。
![]()
讲到这里,一个非常清晰的 “互补局面” 就摆在眼前:
DLM能完美刻画滞后维度的效应分布,却只能分析线性的暴露 - 反应关系。样条函数能精准拟合暴露维度的非线性曲线,却没法系统处理多日滞后效应
既然两者各有所长,一个非常自然的思路就诞生了:能不能把两者结合起来 —— 在暴露维度用样条搞定非线性,在滞后维度用分布滞后思路搞定时间效应?
这正是分布滞后非线性模型(DLNM)的核心设计思想:它通过交叉基函数(Cross-basis),把暴露维度的样条基和滞后维度的滞后基进行交叉组合,同时在两个维度上进行平滑拟合,最终构建出一个 “暴露水平 - 滞后天数 - 发病风险” 的三维效应曲面。
下一篇,我们就正式走进 DLNM 的核心,拆解交叉基函数的逻辑,把 DLNM 的完整原理彻底讲透。
![]()
![]()
编辑:普通疾控人 | 审核:诗酒趁年华
文章来源 | 原创
说明 | 转载只为分享,如有侵权联系删除
©版权声明 | 部分信息和图片来自公开网络
转载请注明
再次转载请注明出处
![]()
科普健康 | 宣传疾控
本号为多位疾控机构从业者运营
重点关注国内外健康事件
致力于疾控科普
在做好科普服务大众的同时
做好疾控机构的宣传
让更多的人了解疾控,拥抱健康
欢迎加「小编」微信(cdcjkr126com)
本文具体说明
本文为原创内容,文章为个人理解所学,不涉及疫情信息及内部保密数据,发表的目的为自我总结及给有需求的人士学习使用。如有不妥之处,欢迎联系小编修改、删除。
更多精彩视频,尽在“CDC疾控人”视频号
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.