贝叶斯核机回归估计混合物健康效应 【BKMR包】——理论篇

贝叶斯核机器回归的简介

Bayesian Kernel Machine Regression (BKMR) 是一种贝叶斯非参数回归方法,用于建模和预测响应变量与预测变量之间的关系。在传统的回归模型中,通常假设响应变量与预测变量之间的关系是线性的,然而这种假设在实际问题中未必成立。相比于传统的线性回归模型,BKMR 提供了更大的灵活性,可以同时考虑线性和非线性关系。BKMR 使用内核函数(Kernel)来对预测变量进行非线性映射,并利用贝叶斯统计方法对模型的参数进行估计。其核心思想是将回归问题转化为在特征空间中的内积计算,通过内核函数来度量样本之间的相似性。

BKMR方法概述

  1. 数据准备:首先,需要准备输入变量(特征)和输出变量(目标)。这些数据可以是连续型、离散型或二元型。

  2. 决定核函数:为了处理非线性关系,BKMR使用核函数来转换输入变量。常用的核函数包括线性核、多项式核和径向基函数(RBF)核等。

  3. 确定先验分布:在贝叶斯框架下,需要指定先验分布来表示模型参数的不确定性。常用的先验分布包括高斯分布、拉普拉斯分布和柯西分布等。

  4. 模型构建:通过将输入变量通过核函数映射到高维空间,可以建立核机器回归模型。同时,通过贝叶斯推理方法来学习模型参数和预测后验分布。

  5. 参数估计:利用MCMC(Markov chain Monte Carlo)方法或变分推断等技术,可以对模型参数进行估计。通过抽样推断,可以获得参数的后验分布。

  6. 模型评估:对于参数估计的后验分布,可以通过计算预测分布、对数似然以及模型选择准则(如BIC、DIC等)来评估模型的性能和选择最佳模型。

BKMR计算步骤

  1. 设定先验分布:根据具体问题和模型特点,选择适当的先验分布并设定超参数。

  2. 初始化参数:对于模型中的待估计参数,根据先验分布设定初始值。

  3. 参数估计:利用MCMC或变分推断等方法,通过抽样推断来更新参数值和后验分布。

  4. 模型诊断:通过观察收敛情况、跟踪参数估计的运动轨迹和计算诊断统计量(如Rhat值)来检验模型估计的有效性。

  5. 模型选择:通过计算不同模型的对数似然和模型选择准则,进行模型比较和选择最佳模型。

  6. 预测和解释:基于估计的模型参数和后验分布,可以进行预测和解释分析,探索输入变量和输出变量之间的关系。

贝叶斯核机回归(BKMR)作为估计混合物健康效应的一种新方法

GAP

研究多重暴露对健康影响日益重要,但面临着若干挑战。首先,暴露与健康结果之间的关系往往具有非线性和非加性(如交互作用)的特点,这使得传统的统计模型难以准确估计健康效应。其次,当研究中暴露变量的数量相对于观测数据的数量增加时,高维度的暴露向量可能导致回归模型拟合不良。再者,暴露变量之间通常高度相关,这给模型构建和解释带来了困难。此外,多重暴露健康效应分析通常包含多个科学目标,包括估算混合物的整体效应、识别对健康效应有贡献的单个成分、可视化暴露-反应函数以及检测污染物之间的交互作用。

污染物之间的交互作用

污染物之间的交互作用(互动效应)指的是一个污染物对健康影响的变化,当其他所有污染物的暴露水平固定在某一特定值(例如75th百分位数)时,与所有其他污染物暴露水平固定在另一特定值(例如25th百分位数)时相比的情况。这种差异 Δm(25, 75 |75) - Δm(25, 75 |25) 表示了在多污染物混合物中,污染物间的相互作用对健康效应的影响程度。选择25th和75th百分位数只是用来说明,实际选择的值可以根据研究需求进行修改。

污染物之间的交互作用是指在多污染物混合物中,两种或多种污染物共同作用于生物体或环境时,其健康效应并非简单地相加,而是可能产生大于单独污染物效应的增强效果,或者相反,可能减少单个污染物的效应。这种非线性和非加性效应体现了污染物之间相互影响的复杂性。

 BKMR模型的特点

建模的健康结果作为一个平滑的函数 h,使用核函数表示,暴露变量,调整可能的混杂因素。由于健康结果可能只取决于混合物组分的一个子集,进行变量选择,以确定这些组分中的哪一个对混合物的健康影响负责。最后,为了解决混合组分的共线性问题,Bobb开发了一个 BKMR 的分层变量选择扩展,它可以结合混合物结构的先验知识。

BKMR包的功能

该package 实现了贝叶斯核机器回归(Bayesian Kernel Machine Regression,BKMR),用于估计多种并发暴露对健康效应的联合影响,提供了变量选择和后验包含概率提取等功能。

额外的概念

后验包括率

后验包括率(Posterior Inclusion Probability,PIP)是指在贝叶斯统计中计算得到的模型中,某个自变量(或特征)被选择进入模型的概率。它反映了在给定数据的情况下,该自变量对目标变量的重要性或相关性。这个概率可以作为判断一个自变量是否显著的指标,如果后验包括率接近于1,说明它对目标变量的影响较大;如果接近于0,则说明它对目标变量的影响较小或不显著

调整参数

提议分布(proposal distribution)是在马尔可夫链蒙特卡洛(MCMC)算法中起关键作用的概率分布。其标准差(SD)是一个可以由用户指定的调节参数,用于控制接受率(acceptance rates)。接受率过高会导致链条混合速度缓慢,而接受率过低会阻止算法充分探索参数空间。因此,良好的接受率可以使算法更快地收敛到目标分布。

一般来说,增加提议分布的标准差会导致较低的接受率,而减小标准差则会导致较高的接受率。在算法运行时,可以通过修改主要的kmbayes函数的verbose参数来监控接受率的变化。

调整参数时,可以指定的参数

调整先验分布时,可以指定的参数

更多内容

贝叶斯核机回归估计混合物健康效应 【BKMR包】——实操篇-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_52505631/article/details/136218976?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136218976%22%2C%22source%22%3A%22weixin_52505631%22%7D

贝叶斯核机回归-因果中介分析 (BKMR-CMA)causalbkmr R包-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_52505631/article/details/136197513?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136197513%22%2C%22source%22%3A%22weixin_52505631%22%7D 

参考文献

bkmr: Bayesian Kernel Machine Regression (r-project.org)icon-default.png?t=N7T8https://cran.r-project.org/web/packages/bkmr/bkmr.pdfIntroduction to Bayesian kernel machine regression and the bkmr R package (jenfb.github.io)icon-default.png?t=N7T8https://jenfb.github.io/bkmr/overview.html#changing_the_tuning_parameters_for_fitting_the_algorithm

GitHub - jenfb/bkmr: Bayesian kernel machine regressionicon-default.png?t=N7T8https://github.com/jenfb/bkmr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2799905.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

前端构建效率优化之路

项目背景 我们的系统(一个 ToB 的 Web 单页应用)前端单页应用经过多年的迭代,目前已经累积有大几十万行的业务代码,30 路由模块,整体的代码量和复杂度还是比较高的。 项目整体是基于 Vue TypeScirpt,而构…

C# WPF 桌面应用程序使用 SQlite 数据库

我们在开发 WPF 桌面应用程序时,数据库存的使用是必不可少的,除非你的应用没有数据存储的需求,有了数据存储需求,我们就会面临使用什么样的数据库的选择问题,我的选择方案是,单机版的应用我优先选择 Sqlite…

Vue3_基础使用_4_路由器Router

概念: 路由:是一个key-value的对应关系叫路由。 路由器:管理多个路由的集合或者叫设备称为路由器。 由于现在组件替代了以前的mvc中的cshtml, 组件的菜单切换也不用我手动去写,vue给我们通过配置完成。 实现简单的路由跳转&…

MySQL进阶45讲【24】MySQL是怎么保证高可用的?

1 前言 在上一篇文章中,介绍了binlog的基本内容,在一个主备关系中,每个备库接收主库的binlog并执行。 正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一…

Autosar-Mcal配置详解-MCU

3.6.1创建、配置RAM 1)创建RAM配置 2)配置RAM 以F1KM R7F7016533ABG为例,它的local RAM有512K, global RAM 192K,Retention RAM 64K. Local RAM: local RAM就是程序平常使用的RAM,在DeepStop模式下内容会丢失。 Global RAM:主要用于DMA的源地址和目的地址使用,在Dee…

第十四章[面向对象]:14.4:实例方法/类方法/静态方法

一,实例方法: 1,实例方法: 类中不用任何修饰的方法为实例方法。 特点:第一个参数必须是实例对象,该参数名一般约定为“self”, 通过它来传递实例的属性和方法(也可以传类的属性和方法); 实例方法可以访问和修改实例对象的属性 调用:只能由实例对象调用。 不能被类调用…

华为OD机试真题-围棋的气-2023年OD统一考试(C卷)---python代码

题目: 代码: """ # 输入:2的倍数 第一个为行号 0-18 第二个为列号 0-18第一行为黑色 第二行为白色思路:先求黑色,进行去重棋子的位置,再求白色 逐个棋子求坐标。 """ d…

【Node.js】介绍、下载及安装

目录 一、什么是 Node.js 二、Node.js下载 下载方式1:直接在首页下载(下载的是.msi后缀的安装包) 下载方式2:点击官网顶上的DOWNLOAD 三、Node.js安装 .zip后缀的安装步骤 .msi后缀的安装步骤 一、什么是 Node.js Node.js …

python基础 | 模块与异常

1、模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句 模块让你能够有逻辑地组织你的 Python 代码段,不可能把代码写在一起 把相关的代码分配到一个模块里能让你的代码更好用&#…

Spring学习笔记(五)--Spring的AOP模块

一、AOP的底层原理 AOP的底层原理是动态代理,动态代理有两种方式:JDK动态代理和CGLib动态代理,在有接口的实现类时我们通常用JDK的动态代理方式(默认情况)为类创建代理对象,JDK的动态代理方式可以实现无入…

vue如何动态加载显示本地图片资源

在实际开发中,根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答:为什么vite项目不可以用require? 原因在于&#xf…

OpenAI Sora引领AI跳舞视频新浪潮:字节跳动发布创新舞蹈视频生成框架

OpenAI的Sora已经引起广泛关注,预计今年AI跳舞视频将在抖音平台上大放异彩。下面将为您详细介绍一款字节跳动发布的AI视频动画框架。 技术定位:这款框架采用先进的diffusion技术,专注于生成人类舞蹈视频。它不仅能够实现人体动作和表情的迁移…

高校学科竞赛平台|基于springboot高校学科竞赛平台设计与实现(源码+数据库+文档)

高校学科竞赛平台目录 目录 基于springboot高校学科竞赛平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、竞赛题库管理 2、竞赛信息管理 3、晋级名单管理 4、往年成绩管理 5、参赛申请管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最…

STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数 简介系统定时器寄存器STK_CTRLSTK_LOADSTK_VALSTK_CALIB STM32F10X(Cortex-M3)精准延时函数 简介 在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外,还有一个系统定时器(SysTick) 拿STM32F103C8T6来说…

开年炸裂-Sora/Gemini

最新人工智能消息 谷歌的新 Gemini 模型 支持多达 1M的Token,可以分析长达一小时的视频 1M Token可能意味着分析700,000 个单词、 30,000 行代码或11 小时的音频、总结、改写和引用内容。 Comment:google公司有夸大的传统,所以真实效果需要上…

开源 - 一款可自定义的在线免杀平台|过x60、wd等

免责声明:本工具仅供安全研究和教学目的使用,用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任,且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规,并理解并同意本声明…

Docker硬件直通:如何在容器中高效利用GPU与硬盘资源

Docker硬件直通:如何在容器中高效利用GPU与硬盘资源 引言Docker基础容器与虚拟机的区别Docker的工作原理 访问服务器硬件资源概述为何需要在Docker容器中访问硬件资源可访问的硬件资源类型 在Docker中使用GPU配置Docker以使用宿主机的GPU资源安装NVIDIA Docker插件 …

【算法与数据结构】1020、130、LeetCode飞地的数量 被围绕的区域

文章目录 一、1020、飞地的数量二、130、被围绕的区域三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、1020、飞地的数量 思路分析:博主认为题目很抽象,非常难理解。想了好久,要理解…

【C++】STL容器之string(一)

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

C语言----字符数组指针

1.char arr[] {a,b,c,d,e,f}; sizeof分析类型就可以计算所占的内存空间的大小; (1)printf("%d\n", sizeof(arr)); 数组名单独放进里面,计算整个数组大小,所以是6字节; (2&#xff…