DLNM(分布滞后非线性模型)

前言

最近一段时间在做流行病数据的分析,期间学习DLNM模型的过程中碰到了挺多问题百度搜不到,笔者通过慢慢读原文献、看代码解决了一部分,当然还是有一些没太搞懂hhh。DLNM模型是个比较新的模型,中文版本的介绍也比较少,所以想写一篇推文,做一下知识输出,这也是笔者第一篇关于专业知识的推文,欢迎大家点赞、评论、多多支持,文中言语不当之处还请多多指教,谢谢!

目录

  • 1. 分布滞后模型与自回归模型

  • 2. 分布滞后非线性模型

    • 2.1 DLNM的历史及应用场景

    • 2.2 DLNM模型结构

  • 3. ChicagoNMMAPS数据集介绍及可视化

  • 4. DLNM模型的R语言实现

  • 5. 待讨论的问题

1. 分布滞后模型与自回归模型

分布滞后线性模型最初由 Almon 于1965年提出,并应用于经济学研究。2000年,shcwartz 和 Braga 等人将该模型引入环境健康效应的定量化评估。其原理是用解释变量第t至t-s期的值来预测被解释变量的表现,其表达式如下:

与分布滞后模型不同的是,自回归模型的解释变量和被解释变量是同一个变量(不要弄混啦),其原理是用变量第t-1至t-q期的值来预测本期的表现,并假设它们为一线性关系,其表达式如下:

2. 分布滞后非线性模型

2.1 DLNM的历史及应用场景

过去,分布滞后线性模型(DLM)普遍应用于研究空气污染的健康效应,但由于该模型假设暴露-反应呈线性关系,而现实情况中很多暴露-反应关系(比如:温度-死亡)呈现U、V等非线性关系,导致分布滞后模型并不适用。针对上述问题,2006年 Armstrong 最早将分布滞后非线性模型(DLNM)提出并应用于流行病学当中。2010年 Gasparrin、 Armstong 等人进一步说明了如何利用交叉基(cross—basis)对解释变量进行特征变换,进而以广义线性模型和广义相加模型等传统模型的思想为基础,阐述了分布滞后非线性模型的理论。2012年 Gasparrin、 Armstong 等人介绍了如何将 DLNM 模型框架如何应用于生物医药领域的研究设计和队列研究,研究长期暴露于药物、治癌剂等环境下对健康的影响。2013年,Gasparrin 和 Armstong 继续拓展 DLNM 模型,提出了一种改进的方法来研究 DLNM 复杂的非线性和延迟关联,其中涉及将二维拟合简化到一维。2016年,Gasparrin 通过模拟比较了移动平均模型和分布滞后模型。2017年,Gasparrin、Armstong 等人将惩罚样条的理论引入了 DLNM 模型中。

2.2 DLNM模型理论

本文暂时只对DLNM的理论进行简单解释(笔者学识尚浅,在学习模型时感觉理论的学习非常依赖 R 语言中 DLNM 包的介绍,一边写程序一边读原文献会对学习模型有很大帮助),分布滞后非线性模型公式如下:

其中, 代表时间,, 是连接函数族, 为多种可选概率分布(gammma、Poission等),因变量 ,,,通常是整形变量(如每日死亡人数,每日患病人数等), 自变量 ,,, 通常是同期的空气污染物浓度、温度、相对湿度、药物剂量等环境因素, 表示其他混杂因素的线性效应,、 为相应的系数。 表示各种解释变量的交叉基函数,即对自变量与因变量的关系、滞后效应的分布分别选择合适的基函数,常用的基函数有正交函数、线性阈值函数和样条函数等,具体理论请参看文献。(笔者这部分看原文献没完全搞清楚,后续会继续研究)

虽然作者在原文献中说 DLNM 的代数理论非常复杂,但感觉复杂的部分实际上就在交叉基那里,整体的建模流程简单来说就两步:

  1. 利用交叉基进行特征转换,得到新的数据。

  2. 用广义线性模型对变换后的数据进行建模。

3. ChicagoNMMAPS数据集介绍及可视化

本文使用ChicagoNMMAPS数据集进行建模分析演示,该数据集包含1987-2000年芝加哥每日的死亡率、天气(温度、露点温度、相对湿度)和污染(PM10和臭氧)等情况。

  • date: Date in the period 1987-2000.

  • time: The sequence of observations

  • year: Year

  • month: Month (numeric)

  • doy: Day of the year

  • dow: Day of the week (factor)

  • death: Counts of all cause mortality excluding accident

  • cvd: Cardiovascular Deaths

  • resp: Respiratory Deaths

  • temp: Mean temperature (in Celsius degrees)

  • dptp: Dew point temperature

  • rhum: Mean relative humidity

  • pm10: PM10

  • o3: Ozone

4. DLNM模型的R语言实现

建模之前首先做一下数据清洗,这里笔者将离群值赋值为NA,然后使用mice包对缺失值进行了插补,这里可以参考知乎中的:“R中数据缺失值的处理--基于mice包”。

# 调用包
library(dlnm);library(ggplot2);library(mice);library(reshape2)

# 调用芝加哥数据
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xifenglie123321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值