当前位置: 首页 > news >正文

R语言NIMBLE、Stan和INLA贝叶斯平滑及条件空间模型死亡率数据分析:提升疾病风险估计准确性...

全文链接:https://tecdat.cn/?p=40365

在环境流行病学研究中,理解空间数据的特性以及如何通过合适的模型分析疾病的空间分布是至关重要的。本文主要介绍了不同类型的空间数据、空间格点过程的理论,并引入了疾病映射以及对空间风险进行平滑处理的模型。通过这些内容,读者可以深入了解如何通过借用相邻区域的信息来改进风险估计,以及如何运用经验贝叶斯或全贝叶斯方法进行平滑处理等关键问题点击文末“阅读原文”获取完整代码、数据、文档)。

不同模型下的疾病风险分析

经验贝叶斯和贝叶斯平滑在COPD死亡率分析中的应用

以2010年慢性阻塞性肺疾病(COPD)住院情况为例,对该疾病的发病风险进行分析。有Nl=324Nl=324个地方行政区,每个行政区都有观察到的病例数YlYl和预期病例数ElEl,l=1,...,324l=1,...,324。预期病例数是通过将整体的年龄 - 性别特定发病率应用到每个地区的年龄 - 性别人口结构上,采用间接标准化方法计算得出的。
为了进行经验贝叶斯平滑。以下是相应的R代码:

# 观察数据
Y\_obs <- obs\_data$Y2010
# 偏移量
E\_offset <- exp\_data$E2010
RR\_vals <- eBayes(Y\_obs, E_offset)
plot(RR\_vals$SMR, RR\_vals$RR, xlim = c(0, 2


从平滑结果可以看出,较低和较高的标准化死亡率比(SMRs)都向总体平均值μμ靠近,在这个例子中μ=exp(−0.0309)=0.9696。由于这些地区相对较大且人口众多,平滑效果相对有限。在这个例子中,αα估计值为14.6。
对于全贝叶斯分析,可以使用NIMBLE。

a ~ dgamma(1, 1)beta0 ~ dnorm(0, 10)
})
# 观察数据
y\_obs <- obs\_data$Y2010
# 偏移量
E\_offset <- exp\_data$E2010
N <- length(y_obs)
# 常数列表
constants_list <- list(N = N,E = E_offset
)

通过检查所有可用样本中的最小值来检验有效样本量,以确保该最小值是可接受的。同时,还提供了一些参数链的轨迹图。运行上述代码后,会得到有效样本量和WAIC的相关信息。接下来,对后验分布的样本进行处理,并绘制一些参数的轨迹图:

# 绘制theta的轨迹图
for (i in 1:3)plot(mvSamples\[, c(paste("theta\[", i, "\]", sep = ""))\], bty = "n")




在检查链的收敛性后,可以绘制每个参数的后验均值和95%置信区间:

for (i in 1:N)segments(y\_obs\[i\], post\_fitted$\`95%CI\_low\`\[i\], y\_obs\[i\], post\_fitted$\`95%CI\_upp\`\[i\])
abline(a = 0, b = 1)

Stan模型分析

在Stan中实现相同的模型,首先需要加载必要的包并读取数据:

接下来,定义数据相关的对象并在Stan中运行模型:

# 观察数据
y\_obs <- obs\_data$Y2010
# 偏移量
E\_offset <- exp\_data$E2010
N <- length(y_obs)
# 数据列表
data_list <- list(N = length(y_obs),Y = y_obs,E = E_offset
)

检查一些参数的轨迹图、有效样本量,并获取一些参数的后验摘要:




点击标题查阅往期内容

图片

R语言贝叶斯INLA空间自相关、混合效应、季节空间模型、SPDE、时空分析野生动物数据可视化

outside_default.png

左右滑动查看更多

outside_default.png

01

图片

02

图片

03

图片

04

图片

最后,绘制θiθi和拟合值的后验摘要及其95%后验可信区间:

for (i in 1:N)segments(y\_obs\[i\], summary\_fit$\`5%\`\[i\], y\_obs\[i\], summary\_fit$\`95%\`\[i\])
abline(a = 0, b = 1)

条件空间模型分析
NIMBLE中的条件空间模型拟合

使用NIMBLE拟合具有空间随机效应的Poisson对数正态模型,空间随机效应来自ICAR模型。首先加载必要的包和数据:

# 绘制平均剥夺分数与2010年SMR的散点图ggplot(copd\_data\_df) + geom_point(aes(x = Average.Score, y = SMR2010)) +theme_classic() +【【【【【【【【【【【【【】


为了在Nimble中拟合ICAR模型,需要获取邻域矩阵WW。首先定义一个函数来计算每个区域的邻居数量:

# 定义计算邻居列表的函数
adjlist <- function(W, N) {adj <- 0for(i in 1:N) {for(j in 1:N) {if(W\[i, j\] == 1) {adj <- append(adj, j)}}}adj <- adj\[-1\]return(adj)
}

定义Nimble模型代码

接下来,通过跟踪图和部分参数的有效样本量来再次检查链的收敛性:





截距、平均剥夺指数的固定效应以及ICAR先验分布精度的后验摘要:

潜在效应后验均值的地图:

ggplot() +# 选择空间对象和用于绘图的列

Stan中的条件空间模型拟合

由于Stan没有专门用于ICAR先验的函数:

# 定义计算邻居列表的函数
adjlist = function(W, N) {adj = 0for(i in 1:N) {for(j in 1:N) {if(W\[i, j\] == 1) {adj = append(adj, j)}}}adj = adj\[-1\]return(adj)
}

该模型存储在名为stan的单独文件中

定义邻接矩阵和相邻区域的索引集:

# 创建邻域
W\_nb <- poly2nb(england\_bound, row.names = rownames(england_bound))
# 创建邻接矩阵
W\_mat <- nb2mat(W\_nb, style = "B")
# 定义用于Stan的空间结构
N <- length(unique(england_bound$ID))
neigh <- adjlist(W_mat, N)
numneigh <- apply(W_mat, 2, sum)

部分参数后验样本的跟踪图:


接下来获取截距、与剥夺分数相关的固定效应以及随机效应标准差的后验摘要。riskd表示剥夺程度增加一个单位时的相对风险:

结果表明,剥夺程度增加一个单位,相对风险增加 2.2%。需要注意的是,ICAR先验的标准差指的是条件分布的标准差。
现在绘制潜在效应的后验均值:

ggplot() +# 选择空间对象和用于绘图的列geom\_sf(data = CARan\_merge, aes(fill = summary.mean)) + 
# 更改图例标签

使用CARBayes拟合条件模型

这里考虑使用R包CARBayes对呼吸道入院数据拟合具有空间效应的Poisson对数正态模型。

使用INLA拟合条件模型

现在使用R - INLA对呼吸道入院数据拟合具有空间效应的Poisson对数正态模型。R - INLA使用集成嵌套拉普拉斯近似来近似得到的后验分布。使用R - INLA拟合模型的调用与拟合glm非常相似,潜在效应通过函数f(.)引入。

结论

通过对不同模型(经验贝叶斯、NIMBLE、Stan、CARBayes、INLA)在疾病风险分析和条件空间模型拟合中的应用研究,我们可以看到每种模型都有其独特的优势和适用场景。经验贝叶斯方法能够对风险估计进行平滑处理,减少基于小样本数据估计的不稳定性;NIMBLE和Stan在处理复杂的贝叶斯模型时表现出色,能够对模型参数进行准确估计;CARBayes和INLA则在处理空间效应方面具有优势,能够有效地捕捉疾病发病率的空间相关性。在实际研究中,研究者可以根据数据特点和研究目的选择合适的模型,以更准确地分析环境暴露与疾病发病之间的关联,为公共卫生决策提供有力的支持。

81c4333203dc05bb0b8ace2f1937bf12.jpeg

本文中分析的完整数据、代码、文档分享到会员群,扫描下面二维码即可加群! 

dcba547ba14f3469295dcc26678b783b.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

0b3369f95671903059309b1f2909924b.jpeg

点击文末“阅读原文”

获取完整代码、数据、文档。

本文选自《R语言NIMBLE、Stan和INLA贝叶斯平滑及条件空间模型死亡率数据分析:提升疾病风险估计准确性》。

点击标题查阅往期内容

R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据

R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例

用SPSS估计HLM多层(层次)线性模型模型

R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系

R语言LME4混合效应模型研究教师的受欢迎程度

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例

R语言混合线性模型、多层次模型、回归模型分析学生平均成绩GPA和可视化

R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型

dcdf79692e973e38357f3ceeffb00ed7.jpeg

985d1e542273840b57a09ffc033261c2.png

19a45c0ba241a38d310451bbc92c654a.png

25848adf9037066254a14aecf0495c99.jpeg

d2b06c9333fb7470f6a333eba0e26db7.png

相关文章:

R语言NIMBLE、Stan和INLA贝叶斯平滑及条件空间模型死亡率数据分析:提升疾病风险估计准确性...

全文链接&#xff1a;https://tecdat.cn/?p40365 在环境流行病学研究中&#xff0c;理解空间数据的特性以及如何通过合适的模型分析疾病的空间分布是至关重要的。本文主要介绍了不同类型的空间数据、空间格点过程的理论&#xff0c;并引入了疾病映射以及对空间风险进行平滑处理…...

Java 反射 (Reflection) 详解

一、什么是 Java 反射&#xff1f; Java 反射 (Reflection) 是 Java 语言的一个强大特性&#xff0c;它允许 在运行时 检查和修改类、接口、字段和方法的信息&#xff0c;而不需要在编译时知道这些信息。 换句话说&#xff0c;反射可以让你在程序运行过程中“动态”地获取类的…...

在 C++ 中,`QMessageBox_s::question_s2` 和 `app.question_s2` 的区别(由DS-V3生成)

在 C 中&#xff0c;QMessageBox_s::question_s2 和 app.question_s2 的区别主要在于它们的调用方式和上下文范围。以下是对两者的详细解释&#xff1a; 1. QMessageBox_s::question_s2 解释&#xff1a; QMessageBox_s::question_s2 是一个静态成员函数的调用。它属于类 QMess…...

vxe-grid 通过配置式给单元格字段格式化树结构数据,转换树结构节点

vxe-grid 通过配置式给单元格字段格式化树结构数据&#xff0c;转换树结构节点 比如用户自定义配置好的数据源&#xff0c;通过在列中配置好数据&#xff0c;全 json 方式直接返回给前端渲染&#xff0c;不需要写任何格式化方法。 官网&#xff1a;https://vxetable.cn npm i…...

大厂算法面试常见问题总结:高频考点与备战指南

在大厂算法面试中&#xff0c;数据结构与算法是必考的核心内容。 无论是校招还是社招&#xff0c;算法题的表现往往决定了面试的成败。 为了帮助大家更好地备战&#xff0c;本文总结了大厂算法面试中的高频考点&#xff0c;并提供了详细的备战建议&#xff0c;助你轻松应对面…...

制造行业CRM选哪家?中大型企业CRM选型方案

在当今竞争激烈的制造行业中&#xff0c;企业对于客户关系管理&#xff08;CRM&#xff09;系统的需求日益增强&#xff0c;高效、智能的CRM系统已成为推动企业业务增长、优化客户体验的关键。在制造业 CRM 市场中&#xff0c;纷享销客和销售易都备受关注&#xff0c;且各自有着…...

PHP集成软件用哪个比较好?

在Windows环境下&#xff0c;使用PHP时&#xff0c;通常需要一个集成开发环境&#xff08;IDE&#xff09;或者集成软件来简化开发和调试过程。以下是几款常用且推荐的PHP集成软件&#xff0c;每款都有其特点&#xff0c;可以根据需求进行选择&#xff1a; 1. XAMPP 特点&…...

当pcie设备变化时centos是否会修改网络设备的名称(AI回答)

当pcie设备变化时centos是否会修改网络设备的名称 在CentOS&#xff08;以及其他基于Linux的操作系统&#xff09;中&#xff0c;网络接口的命名通常遵循特定的规则&#xff0c;尤其是在使用PCIe设备&#xff08;如网络适配器&#xff09;时。网络接口的命名通常基于设备的物理…...

Mac arm架构使用 Yarn 全局安装 Vue CLI

dgqdgqdeMacBook-Pro spid-admin % vue --version zsh: command not found: vue要使用 Yarn 安装 Vue CLI&#xff0c;你可以执行以下命令&#xff1a; yarn global add vue/cli这个命令会全局安装 Vue CLI&#xff0c;让你可以使用 vue 命令创建、管理 Vue.js 项目。以下是一…...

【Python游戏】双人简单对战游戏

以下是一个使用 Python 的 pygame 库实现的简单对战游戏示例&#xff0c;游戏中玩家可以控制两个角色进行对战&#xff0c;并且支持自定义图片(最好使用无底色的png图片)。完整源码以及实现思路&#xff1a; import pygame import os# 初始化 Pygame pygame.init()# 设置游戏窗…...

Windows11切换回Windows10风格右键菜单

参考文章&#xff1a;Win11新版右键菜单用不惯&#xff1f;一键切换回Win10经典版&#xff01;-CSDN博客 以管理员权限运行命令行cmd 切换为经典旧版右键菜单&#xff0c;执行 reg.exe add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServe…...

怎么学习调试ISP的参数

摄像头的 **Sensor 获取的 RAW 数据** 是未经处理的原始图像数据&#xff0c;通常需要经过 **ISP&#xff08;Image Signal Processor&#xff0c;图像信号处理器&#xff09;** 的处理&#xff0c;才能生成可用的图像或视频。ISP 的作用是对 RAW 数据进行一系列图像处理操作&a…...

“三次握手”与“四次挥手”:TCP传输控制协议连接过程

目录 什么是TCP协议 “三次握手”建立连接 “四次挥手”断开连接 “三次握手”和“四次挥手”的反思 总结 什么是TCP协议 想象一下&#xff0c;你和远方的朋友要进行一场电话交流&#xff0c;但这通电话不仅仅是随便聊聊&#xff0c;而是要传递一封重要的信件。为了确保这…...

OpenCV形态学操作

1.1. 形态学操作介绍 初识&#xff1a; 形态学操作是一种基于图像形状的处理方法&#xff0c;主要用于分析和处理图像中的几何结构。其核心是通过结构元素&#xff08;卷积核&#xff09;对图像进行扫描和操作&#xff0c;从而改变图像的形状和特征。例如&#xff1a; 腐蚀&…...

深入理解WebSocket接口:如何使用C++实现行情接口

在现代网络应用中&#xff0c;实时数据传输变得越来越重要。通过WebSocket&#xff0c;我们可以建立一个持久连接&#xff0c;让服务器和客户端之间进行双向通信。这种技术不仅可以提供更快的响应速度&#xff0c;还可以减少不必要的网络流量。本文将详细介绍如何使用C来实现We…...

汇能感知的光谱相机/模块产品有哪些?

CM020A 分辨率&#xff1a;1600H1200V 光谱范围&#xff1a;350~950nm 光谱分辨率&#xff1a;1nm 接口&#xff1a;USB2.0 帧率&#xff1a;16001200 (6帧) 输出格式&#xff1a;Raw 8bit FOV&#xff1a;D73.5H58.8V44.1 相机尺寸&#xff1a;505055mm VM02S10 分辨率…...

抓包工具是什么?

抓包工具是一种用于捕获和分析网络数据包的软件或硬件设备。它可以帮助用户监控网络通信过程&#xff0c;查看网络中传输的数据内容、协议类型、源地址、目的地址等信息。以下是关于抓包工具的一些详细解释&#xff1a; 1. 主要功能 捕获数据包&#xff1a;抓包工具能够实时捕…...

Kubernetes的Ingress 资源是什么?

在Kubernetes中&#xff0c;Ingress资源是一种用于管理集群外部对内部服务访问的API对象&#xff0c;主要用于将不同的外部请求路由到集群内的不同服务&#xff0c;以下是关于它的详细介绍&#xff1a; 定义与作用 Ingress资源定义了从集群外部到内部服务的HTTP和HTTPS路由规…...

【操作幂等和数据一致性】保障业务在MySQL和COS对象存储的一致

业务场景 发布信息&#xff0c;更新到数据库MySQLCOS操作&#xff0c;更新JSON文件 不过可能存在幂等性和数据一致性的问题。 // 批量存MySQL entityPublishService.saveOrUpdateBatch(entityPublishList); // 遍历批量存COS对象存储searchEntitys.forEach(req -> {//删除…...

DevOps自动化部署详解:从理念到实践

在软件开发日益快速迭代的今天&#xff0c;如何以高效、稳定且可重复的方式将代码变更从开发环境自动部署到生产环境成为企业竞争的重要因素。DevOps 正是在这一背景下应运而生&#xff0c;它打破开发、测试、运维之间的壁垒&#xff0c;通过自动化工具和流程&#xff0c;实现持…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...