孟德尔随机化之MendelianRandomization包(第二讲)

发布时间 - 2025-07-16 00:00:00    点击率:

在上一期推送中,我和大家详解介绍了“mendelianrandomization”包的输入文件以及其ivw方法,在这一期的推送中,我会和大家简单介绍一下这个包的median-based方法,希望能把它作为对ivw方法的补充。

代码语言:javascript代码运行次数:0运行复制
library(MendelianRandomization) #加载R包MRInputObject <- mr_input(bx = ldlc,bxse= ldlcse,by = chdlodds,byse = chdloddsse) #指定输入文件WeightedMedianObject1 <-mr_median(MRInputObject,weighting = "weighted",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)

在mr_median()函数中,第一个参数就是一个input对象,也即MendelianRandomization包的输入对象。

参数weighting有三个输入值,分别为“simple“,”weighted“和”penalized“,第一个方法不对估计出来的中位数加权,后俩个是加权的。这里可以简单提一下,不加权的计算方法是,先采用Wald ratio估计方法算出单个SNP的MR估计值(theta = betaY/betaX),然后把这些个估计值由小到大进行排序,取中位数作为最后的MR估计值。不过,加权的方法是根据每个SNP的betaX和betaYse来计算权重,然后对Wald ratio估计出来的中位数加权计算。另外,”penalized“的加权法是降低异常SNP的权重,和IVW里的思想一致。

参数distribution的含义和IVW里的一样,用于指定置信区间的估计方法,“normal”表示用正态分布估计置信区间,“t-dist”代表用T分布来估计。

参数alpha代表的是统计学显著性。

参数iterations表示使用bootstrap方法的迭代次数,在median-based的方法中,我们使用bootstrap法来估计最终计算出的中位数的误差。

参数seed表示产生bootstrap样本的随机种子,默认值为314159265,这样可以方便结果的可重复性。

在WeightedMedianObject1中,我们使用加权法计算出最后的结果如下:

代码语言:javascript代码运行次数:0运行复制
WeightedMedianObject1

从上图中我们可以看出结果显著,并且LDL的升高可以增加CHD的发病风险。

接下来,我们使用“penalized“加权法:

代码语言:javascript代码运行次数:0运行复制
WeightedMedianObject2 <-mr_median(MRInputObject,weighting = "penalized",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)WeightedMedianObject2

这里我们不难看出,“weighted“和”penalized“的估计结果几乎没有差别。

接下来,我们不采用加权法来计算一下结果:

代码语言:javascript代码运行次数:0运行复制
WeightedMedianObject3 <-mr_median(MRInputObject,weighting = "simple",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)WeightedMedianObject3

从上图不难看出,不加权的话,结果虽然仍然显著,但是估计出来的误差较大。

接下来,我们在加权模型下增加迭代次数(iterations):

代码语言:javascript代码运行次数:0运行复制
WeightedMedianObject4 <-mr_median(MRInputObject,weighting = "weighted",distribution ="normal",alpha = 0.05,iterations = 100000,seed = 314159265) #修改iterations参数为100000WeightedMedianObject4

从上述结果中我们不难看出,在同一种模型(比如加权模型)之下,增加bootstrap的迭代次数,可以减少误差,使得结果更加准确,但是增加迭代次数之后,计算量会显著增大,计算时间会相应延长,这时候需要我们平衡一下,从米老鼠的经验来看,迭代次数控制在50000~100000就够了。

讲到这里,相信大家应该明白如何使用median-based的方法了,从米老鼠的经验来看,median-based方法的核心思想就是采用所有SNP的wald ratio估计值的中位数作为最终的MR效应值(可以加权也可以不加权),这样的话就能很好避免异常SNP(outliers)对结果的影响,使得结果更稳健。尤其是当IVW估计的结果有很大的异质性时,这时候median-based方法就显得尤为必要了。

好了,关于”MendlianRandomization“包的median-based方法就和大家讲到这里,希望大家能明白这个方法的原理并能熟练使用。


# linux  # JavaScript  # bootstrap  # 对象  # input  # mr  # 迭代  # 第一个  # 权法  # 米老鼠  # 讲到  # 计算出  # 的是  # 这时候  # 正态分布  # 很好 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现模型属性的自动加密  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  网站建设保证美观性,需要考虑的几点问题!  googleplay官方入口在哪里_Google Play官方商店快速入口指南  jQuery 常见小例汇总  如何续费美橙建站之星域名及服务?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  个人网站制作流程图片大全,个人网站如何注销?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  大同网页,大同瑞慈医院官网?  浅述节点的创建及常见功能的实现  如何快速生成高效建站系统源代码?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何实现用户注册和登录?(Auth脚手架指南)  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何快速完成中国万网建站详细流程?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何快速搭建高效香港服务器网站?  Laravel如何使用Collections进行数据处理?(实用方法示例)  使用Dockerfile构建java web环境  再谈Python中的字符串与字符编码(推荐)  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Laravel如何实现一对一模型关联?(Eloquent示例)  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  打造顶配客厅影院,这份100寸电视推荐名单请查收  Firefox Developer Edition开发者版本入口  php json中文编码为null的解决办法  如何在腾讯云服务器快速搭建个人网站?  如何获取上海专业网站定制建站电话?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  EditPlus中的正则表达式 实战(1)  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Python制作简易注册登录系统