网易首页 > 网易号 > 正文 申请入驻

监测预警基础57-八小篇搞懂DLNM之6:来吧,直接R实操!

0
分享至


系列简介

这是我们一系列原创技术贴,从易到难,每天学习一点。所有内容均为疾控数据分析、科研论文相关,或者说很多和现在的热门监测预警相关,所以我们这个系列就叫“监测预警基础”。

之前很多老师反馈这种小专题的形式特别好,可以一口气彻底学透一种方法,好的,我们又来了!

这次是分布滞后非线性模型,我们初步计划用8小节左右的内容讲通它的前世今生,以及如何使用。所以我们这个小专题的名字就叫做《八小篇搞懂DLNM》

今天是第6小篇——开始R语言实操!

前面5篇我们把 DLNM 的原理、前置知识、应用场景全部讲透了。很多同行最期待的就是实操环节:道理都懂了,到底怎么用 R 把模型跑起来?

今天我们就从零开始,用模拟的疾控标准时间序列数据,带你走完从数据准备、预处理到模型拟合的完整流程。所有代码都附带逐行注释,复制粘贴就能直接运行,零基础也能跟着跑通第一个 DLNM 模型。

我们以日平均气温对传染病日发病数的影响为案例,这是疾控最经典的应用场景。全程基于泊松分布框架,和我们之前讲的 GLM/GAM 逻辑完全一致,学习门槛很低。


DLNM 的核心分析依赖dlnm包,它由 DLNM 方法的提出者 Gasparrini 团队开发,是目前最权威、最通用的实现工具。再搭配几个数据处理、样条分析的基础包即可。

运行以下代码完成安装与加载:

library(lubridate)


DLNM 分析的是时间序列数据每一行代表一天,每一列是一个变量。疾控场景下最基础的数据结构,必须包含以下 4 类信息:


为了让大家不用找数据就能直接练习,我们先生成一份模拟的 3 年日数据,特征完全贴合真实疾控数据:温度有季节波动,发病数与温度呈 U 型关系,同时存在季节趋势与星期效应。

)

下面让气温的影响分布在滞后 0~14 天,并假设滞后 5 天左右影响最强。

temp_lag <- as.numeric(temp_lag_mat %*% lag_weight)

再生成每日发病数。这里假设气温与发病风险呈 U 型关系,20℃左右风险最低。

head(dat)

运行完成后,用head(dat)查看前 6 行,就能得到一份标准的分析数据集。

和 GLM、GAM 一样,DLNM 也必须控制时间序列中的混杂因素,最核心的是长期趋势与季节波动星期效应。我们需要先生成对应的变量。

  )

变量作用解释:time:配合自然样条函数ns(),用来控制长期趋势和季节波动,这是时间序列研究的标准操作。我们通常设置每年 6~8 个自由度,3 年数据总自由度取 21 左右。dow:控制一周内的报告差异,比如周一报告数往往偏高,周末偏低。必须转为分类变量放入模型。


交叉基函数是 DLNM 的灵魂,对应我们第四篇讲的核心原理:同时在暴露维度和滞后维度构造样条基,再交叉组合。

dlnm包中用crossbasis()函数实现,这是整个分析最核心的一行代码。

)

参数逐一说清
  1. x = dat$temp:我们要研究的核心暴露因素,这里是日平均气温。

  2. lag = 14:设定最大滞后天数为 14 天,也就是我们认为温度的影响最多持续 14 天。这个值要根据疾病特征设定,传染病通常 7~14 天,死亡 / 慢病通常 14~21 天。

  3. argvar(暴露维度):
  4. fun = "ns":使用自然样条拟合暴露 - 反应关系,捕捉非线性;
  • df = 4:暴露维度设置 4 个自由度,既能拟合 U 型 / J 型曲线,又不会过度波动,是疾控研究的常用设置。
  1. arglag(滞后维度):
  • fun = "ns":同样用自然样条对滞后效应进行平滑约束,解决相邻滞后天数的共线性问题;
  • df = 3:滞后维度通常自由度更低,保证滞后曲线平滑,3~4 个自由度是常规选择。

运行完这行代码,cb就是我们构造好的交叉基变量,接下来直接放进模型即可。


DLNM 本质上还是 GLM 框架,所以我们直接用基础的glm()函数拟合,和我们第二篇讲的泊松 GLM 语法几乎完全一样 ——唯一的区别,就是把普通的温度线性项,换成了我们刚构造好的交叉基cb

summary(model)

我们把公式拆解开,和第二篇的 GLM 公式一一对应,你会发现逻辑完全一致:
  • cases ~:结局变量是日发病数,对应公式里的病例数。
  • cb:交叉基项,是模型的核心,替代了原来的单一温度变量,对应公式里的cb第二项
  • ns(time, df = 7*3):时间的自然样条,每年 7 个自由度,3 年共 21 个,用来控制长期趋势和季节波动
  • factor(dow):星期效应分类变量,控制每周内的报告波动
  • family = poisson(link = "log"):指定泊松分布、对数联系函数,和标准泊松 GLM 完全一致

运行summary(model)后,你会看到一长串系数 —— 这些就是交叉基各个基变量对应的系数。但不用慌,我们不需要手动解读这些系数,后续用专门的函数就能提取出我们关心的相对危险度、置信区间。


模型跑通了,我们先提取一个最直观的结果:整个 14 天滞后期内的累积效应。比如我们以 20℃为参照,看看 28℃的累积发病风险是多少。

用crosspred()函数进行预测:

)

例如,提取 28℃相对于 20℃的 14 天累积 RR:

)

如果输出结果为:

28.0   1.25   1.10    1.42

可以解释为:与 20℃相比,28℃暴露后 14 天内的累积发病风险升高 25%,且差异有统计学意义。如果 95%CI 跨过 1,例如 0.95~1.30,则不能认为差异有统计学意义。


1. 三维图:看“气温—滞后—发病风险”的整体形状

)

三维图中,横轴是气温,纵轴是滞后天数,竖轴是 RR。曲面越高,说明该气温在对应滞后天的发病风险越高。

2. 等高线图:定位高风险组合

)

3. 累积效应图:看 14 天总风险

abline(v = 20, lty = 3, col = "grey60")

实际分析时,只需要把模拟数据替换成自己的监测数据,保证至少包含以下 4 列:

日期   发病数  日平均气温  日降水量

到这里,你就完成了一个完整的 DLNM 实操流程:数据准备、交叉基构建、模型拟合、RR 提取,以及三维图、等高线图和累积效应图绘制。



编辑:普通疾控人 | 审核:诗酒趁年华

文章来源 | 原创

说明 | 转载只为分享,如有侵权联系删除

©版权声明 | 部分信息和图片来自公开网络

转载请注明

再次转载请注明出处


科普健康 | 宣传疾控

本号为多位疾控机构从业者运营

重点关注国内外健康事件

致力于疾控科普

在做好科普服务大众的同时

做好疾控机构的宣传

让更多的人了解疾控,拥抱健康

欢迎加「小编」微信(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.

相关推荐
热点推荐
中央气象台:今晚到明晚,海南岛、新疆、内蒙古、黑龙江、甘肃、四川、贵州、云南、台湾岛等地有小到中雨,海南岛中东部有暴雨或大暴雨

中央气象台:今晚到明晚,海南岛、新疆、内蒙古、黑龙江、甘肃、四川、贵州、云南、台湾岛等地有小到中雨,海南岛中东部有暴雨或大暴雨

蓬勃新闻
2026-10-07 17:54:32
国庆高速数据彻底打脸!油电大势已定,再也回不去了

国庆高速数据彻底打脸!油电大势已定,再也回不去了

华庭讲美食
2026-10-06 02:59:29
热苏斯:我读了C罗的声明,现在我要和往常一样去足协工作

热苏斯:我读了C罗的声明,现在我要和往常一样去足协工作

懂球帝
2026-10-07 17:37:19
张之臻上海大师赛1-2遭马哈奇逆转止步首轮,周杰伦昆凌、许昕姚彦夫妇到现场观赛

张之臻上海大师赛1-2遭马哈奇逆转止步首轮,周杰伦昆凌、许昕姚彦夫妇到现场观赛

大风新闻
2026-10-07 18:58:08
染红后微笑离场!前国脚怒批韦世豪:不顾集体利益 惯犯 永远改不了

染红后微笑离场!前国脚怒批韦世豪:不顾集体利益 惯犯 永远改不了

风过乡
2026-10-07 08:23:48
俄罗斯鼠疫信息被指不透明,免签国人员要小心了,鼠疫属于甲类传染病,新冠还是乙类传染病,比新冠要严重很多,肺鼠疫未治疗死亡100%

俄罗斯鼠疫信息被指不透明,免签国人员要小心了,鼠疫属于甲类传染病,新冠还是乙类传染病,比新冠要严重很多,肺鼠疫未治疗死亡100%

村里的月光
2026-10-07 15:16:19
俄媒:俄鼠疫感染区医院暴发瘟疫,出现第二例死亡病例

俄媒:俄鼠疫感染区医院暴发瘟疫,出现第二例死亡病例

阿尔卑斯瞭望
2026-10-07 14:05:52
被记者拦车采访,葡萄牙主帅热苏斯回应C罗长文声明:我没什么可说的;葡媒:热苏斯团队已提前知晓C罗声明,且认为内容可以接受

被记者拦车采访,葡萄牙主帅热苏斯回应C罗长文声明:我没什么可说的;葡媒:热苏斯团队已提前知晓C罗声明,且认为内容可以接受

大风新闻
2026-10-07 14:06:14
据说,每天有3万人退场

据说,每天有3万人退场

一条要飞跃的咸鱼
2026-10-07 08:49:43
大结局!东航“最霸气”乘客欧某某,这次终于踢到铁板了,真容曝光,全网社死

大结局!东航“最霸气”乘客欧某某,这次终于踢到铁板了,真容曝光,全网社死

静若梨花
2026-10-06 14:15:09
闹大了!网红解密川剧变脸账号消失,变脸是国家二级机密?网友:封号或另有原因

闹大了!网红解密川剧变脸账号消失,变脸是国家二级机密?网友:封号或另有原因

火山詩话
2026-10-07 07:44:10
诺贝尔化学奖揭晓,两位化学家共同获奖

诺贝尔化学奖揭晓,两位化学家共同获奖

澎湃新闻
2026-10-07 18:14:07
全程堵死!10月6日返程大崩溃,高速寸步难行,网友:堵到绝望

全程堵死!10月6日返程大崩溃,高速寸步难行,网友:堵到绝望

杰丝聊古今
2026-10-07 12:36:54
“根本不想让他们来!”亚运会结束后,组委会主席言论引发争议

“根本不想让他们来!”亚运会结束后,组委会主席言论引发争议

全景体育V
2026-10-07 08:24:04
祁连县把泼天的流量接成了脏水

祁连县把泼天的流量接成了脏水

陈宜之
2026-10-07 16:26:38
独自飞往仰光后杳无音信,26岁白俄模特被网上兼职诱骗至缅甸杀害,5名招募者因人口拐卖获刑21年

独自飞往仰光后杳无音信,26岁白俄模特被网上兼职诱骗至缅甸杀害,5名招募者因人口拐卖获刑21年

扬子晚报
2026-10-06 20:24:16
吴奇隆因举旗被取消活动,网友质疑其立场,吴奇隆:不赚钱也这样

吴奇隆因举旗被取消活动,网友质疑其立场,吴奇隆:不赚钱也这样

蜜桔娱乐
2026-10-07 09:55:52
地雷风波升级,金与正发声:野兽都不能进进出出

地雷风波升级,金与正发声:野兽都不能进进出出

中国新闻周刊
2026-10-07 16:43:44
很严峻!这5个行业,工资都发不下来了!

很严峻!这5个行业,工资都发不下来了!

职场资深秘书
2026-10-07 17:36:30
中国民航进入萎缩期?国庆旅游火爆,民航客流却连跌3天,机票低至200元

中国民航进入萎缩期?国庆旅游火爆,民航客流却连跌3天,机票低至200元

三言四拍
2026-10-06 20:43:40
2026-10-07 20:00:49
CDC疾控人 incentive-icons
CDC疾控人
关注疾控,科普健康
250文章数 8关注度
往期回顾 全部

科技要闻

诺贝尔化学奖揭晓,两位科学家摘得大奖

头条要闻

男子带妻子和10岁娃爬山走野路 用手机照亮半夜没走出

头条要闻

男子带妻子和10岁娃爬山走野路 用手机照亮半夜没走出

体育要闻

从骑马舞到开口全中文 德约在北京不止七冠

娱乐要闻

蔡康永风波再升级!这次谁也救不了他

财经要闻

谷歌签下科技史上最大核能协议

汽车要闻

智能化再提升 2027款东风标致、东风雪铁龙新车更人性化了

态度原创

手机
旅游
家居
房产
公开课

手机要闻

还得是苹果!iPhone Duo 强制 APP 适配,不适配直接下架,安卓办不到

旅游要闻

【图集】甲秀楼游人如织 文明相伴景更美

家居要闻

2026建博会(广州) 公装联探展交流活动

房产要闻

保利大爆发,冲到榜一!海南楼市前三季度,热销榜出炉!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版