R语言对数线性模型loglm函数_R语言分布滞后线性和非线性模型(DLM和DLNM)建模...

论坛 期权论坛     
选择匿名的用户   2021-5-23 01:39   440   0
<div>
<h2> 原文链接:</h2>
http://tecdat.cn/?p&#61;18700tecdat.cn
<h2>前言</h2>
<p>本文说明了R语言中实现分布滞后线性和非线性模型(DLM和DLNM)的建模。首先,本文描述了除时间序列数据之外的DLM / DLNM的一般化方法,在Gasparrini [2014]中有更详细的描述。本文中包含的结果并不代表科学发现,而仅出于说明目的进行报告。</p>
<h2>数据</h2>
<p>主要通过两个示例来说明软件的应用,使用药物数据作为数据对象。数据集分别包含一项关于药物的假设试验和嵌套病例对照研究的模拟数据,两者均包括随时间变化的暴露量度。</p>
<p>让我们看一下数据框的前2个观察样本:</p>
<ol><li><br>&gt; head(data, 2)</li><li><br>id out sex day1 day8. day15. day22.</li><li><br>1 1 46 M 0 0 40 37</li><li><br>2 2 50 F 0 47 55 0</li></ol>
<p>数据集包含来自一项试验的数据,记录了200名随机受试者,每名受试者随机接受四周中两周的药物剂量,每天的剂量每周变化。每周7天间隔报告一次暴露水平。数据集还包含有关在第28天测量的结果和受试者性别的信息。嵌套的第二个数据包括针对300个癌症病例和300个按年龄匹配的对照的每个记录。前2个观察结果是:</p>
<ol><li><br>&gt; head(nested)</li><li><br>id case age riskset exp15 exp20 exp25 exp30 exp35 exp40 exp45 exp50 exp55</li><li><br>1 1 1 81 240 5 84 34 45 128 81 14 52 11</li><li><br>2 2 1 69 129 11 8 25 6 8 12 19 60 16</li><li></li><li><br>exp60</li><li><br>1 16</li><li><br>2 10</li></ol>
<p>变量病例定义病例/对照状态,而其他变量报告受试者的年龄和他/她所属的风险。随时间变化的职业暴露档案存储在变量exp15–exp60中,对应于15至19岁,20至24岁等最高65岁的平均年暴露量。</p>
<h3>暴露历史矩阵</h3>
<p>扩展的DLNM框架与标准DLNM框架之间的主要区别是暴露历史矩阵的定义,即对n个观测值的滞后&#96;经历的一系列暴露。根据研究设计和随时间变化的暴露信息,需要以不同的方式将这个n×(L &#39;0 &#43; 1)矩阵组合在一起。</p>
<p>在第一个示例中,我为数据框药物中的试验数据建立了暴露历史记录矩阵。</p>
<p>每个受试者的接触曲线用于重建接触历史矩阵。在这种情况下,滞后0的暴露量对应于对所有受试者测量结局的第28天的暴露量。其余的暴露历史记录可追溯到滞后27,对应于第一天的暴露。代码,用于将按周存储的暴露资料扩展为每日暴露历史记录的矩阵:每个受试者的接触曲线用于重建接触历史矩阵。</p>
<ol><li></li><li><br>&gt; drug[1:3,1:14]</li><li><br>lag0 lag1 lag2 lag3 lag4 lag5 lag6 lag7 lag8 lag9 lag10 lag11 lag12 lag13</li><li><br>1 37 37 37 37 37 37 37 40 40 40 40 40 40 40</li><li><br>2 0 0 0 0 0 0 0 55 55 55 55 55 55 55</li></ol>
<p>上面针对前三个主题报告了滞后0-13的接触历史。前七个滞后(0–6)对应于上周的暴露,而滞后7–13对应于第三周,依此类推。在第二个示例中,我使用以5年为间隔的暴露量分布图来嵌套数据框的暴露量历史矩阵。这些数据被扩展为滞后3–40的暴露历史矩阵,滞后单位等于一年。但是,在这种情况下,由于每个对象在不同的年龄进行采样,因此计算更加复杂。具体地,从受检者的年龄开始沿着暴露曲线向后计算暴露历史。此步骤需要一些额外的计算和数据处理。可以得出给定时间的暴露曲线的暴露历史,</p>
<ol><li><br>&gt; nest &lt;- t(apply(nested, 1, function(sub) exphi(repc(0,0,0,sub5:14]),</li><li></li><li></li><li><br>&gt; nest[1:3,1:11]</li><li><br>lag3 lag4 lag5 lag6 lag7 lag8 lag9 lag10 lag11 lag12 lag13</li><li><br>1 0 0 0 0 0 0 0 0 0 0 0</li><li><br>2 0 10 10 10 10 10 16 16 16 16 16</li></ol>
<p>上面针对前三个主题报告了滞后0–10的暴露历史。假设第一个对象在81岁时进行采样,则经历了在滞后0处介于80和81之间,在滞后1处介于79和80之间的暴露,依此类推。由于他/她的上一次暴露年龄为65岁,因此将滞后10的暴露历史记录设置为0。在69岁时进行采样的第二个对象的滞后3的暴露历史记录设置为0,对应于暴露事件在66。</p>
<p>这些接触历史与之前显示的接触概况和年龄一致。在这种情况下,使用相同的暴露状况,在每个受试者贡献不同风险集时计算每个受试者的多次暴露历史。通常,此矩阵的计算取决于研究设计,暴露信息,滞后单位和所需的近似水平。</p>
<h3>时间序列以外的应用</h3>
<h3>一个简单的DLM</h3>
<p>在第一个示例中,我将dlnm应用于数据集药物,分析了药物日剂量与未指定健康结果之间的时间依赖性。第一步是函数的定义:</p>
<div class="blockcode">
  <pre class="blockcode"><code>crossbasis(drug, lag&#61
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP