最近我们被客户要求撰写关于DLNM的研究报告,包括一些图形和统计输出。
视频:R语言中的分布滞后非线性模型(DLNM)
R语言中的分布滞后非线性模型(DLNM)与发病率,死亡率和空气污染示例
前言
本文说明了R语言中实现分布滞后线性和非线性模型(DLM和DLNM)的建模。首先,本文描述了除时间序列数据之外的DLM / DLNM的一般化方法,在Gasparrini [2014]中有更详细的描述。本文中包含的结果并不代表科学发现,而仅出于说明目的进行报告。
数据
主要通过两个示例来说明软件的应用,使用药物数据作为数据对象。数据集分别包含一项关于药物的假设试验和嵌套病例对照研究的模拟数据,两者均包括随时间变化的暴露量度。
让我们看一下数据框的前2个观察样本:
> head(data, 2)
id out sex day1 day8. day15. day22.
1 1 46 M 0 0 40 37
2 2 50 F 0 47 55 0
数据集包含来自一项试验的数据,记录了200名随机受试者,每名受试者随机接受四周中两周的药物剂量,每天的剂量每周变化。每周7天间隔报告一次暴露水平。数据集还包含有关在第28天测量的结果和受试者性别的信息。嵌套的第二个数据包括针对300个癌症病例和300个按年龄匹配的对照的每个记录。前2个观察结果是:
> head(nested)
id case age riskset exp15 exp20 exp25 exp30 exp35 exp40 exp45 exp50 exp55
1 1 1 81 240 5 84 34 45 128 81 14 52 11
2 2 1 69 129 11 8 25 6 8 12 19 60 16
exp60
1 16
2 10
变量病例定义病例/对照状态,而其他变量报告受试者的年龄和他/她所属的风险。随时间变化的职业暴露档案存储在变量exp15–exp60中,对应于15至19岁,20至24岁等最高65岁的平均年暴露量。
暴露历史矩阵
扩展的DLNM框架与标准DLNM框架之间的主要区别是暴露历史矩阵的定义,即对n个观测值的滞后`经历的一系列暴露。根据研究设计和随时间变化的暴露信息,需要以不同的方式将这个n×(L −'0 + 1)矩阵组合在一起。
在第一个示例中,我为数据框药物中的试验数据建立了暴露历史记录矩阵。
每个受试者的接触曲线用于重建接触历史矩阵。在这种情况下,滞后0的暴露量对应于对所有受试者测量结局的第28天的暴露量。其余的暴露历史记录可追溯到滞后27,对应于第一天的暴露。代码,用于将按周存储的暴露资料扩展为每日暴露历史记录的矩阵:每个受试者的接触曲线用于重建接触历史矩阵。
> drug[1:3,1:14]
lag0 lag1 lag2 lag3 lag4 lag5 lag6 lag7 lag8 lag9 lag10 lag11 lag12 lag13
1 37 37 37 37 37 37 37 40 40 40 40 40 40 40
2 0 0 0 0 0 0 0 55 55 55 55 55 55 55
上面针对前三