孟德尔随机化之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制作简易注册登录系统


on ="normal",alpha = 0.05,iterations = 100000,seed = 314159265) #修改iterations参数为100000WeightedMedianObject4