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

R语言进行孟德尔随机化+meta分析(1)---meta分析基础

目前不少文章用到了孟德尔随机化+meta分析,今天咱们也来介绍一下,孟德尔随机化+meta其实主要就是meta分析的过程,提取了孟德尔随机化文章的结果,实质上就是个meta分析,不过多个孟德尔随机化随机化的结果合并更加加强了结果的可靠性。有部分人可能对meta分析不是很了解,咱们今天先来介绍一下meta分析基础,为下一讲孟德尔随机化+meta分析做准备。
在这里插入图片描述
R语言进行进行meta分析咱们就做最基本的部分就行,不必搞得太复杂。咱们先导入数据和R包。很多R包都能做,咱们随便选个meta包就可以了。

library(meta)
bc<-read.csv("E:/r/test/senlintu1.csv",sep=',',header=TRUE)
names(bc)

在这里插入图片描述
这是一个很简单的数据,stud表示研究名称,a为实验组阳性人数,b为实验组总人数,c为对照组阳性人数,d为对照组总人数(公众号回复:森林图数据1,可以获得数据)。
咱们先来看下函数格式event.e就是实验组阳性人数,n.e,实验组总人数,event.c对照组阳性人数,n.c对照组总人数,data就是你的数据,studlab填入其他的项目,method这里选"Inverse"倒方差的方法就可以了,sm这里填入结果类型,如果你需要的是OR的结果就填入OR

metabin(event.e, n.e, event.c, n.c, data,studlab = paste(), sm, method = "Inverse")

先生成meta分析结果,就按顺序把结果填进去就可以了

out<-metabin(event.e=a, n.e=b,event.c=c,n.c=d,data=bc,sm="OR",studlab = paste(study),method = "Inverse")

直接填进去也是可以的,这样方便点

out<-metabin(a,b,c,d,data=bc,sm="OR",studlab = paste(study),method = "Inverse")

解析结果

summary(out)

在这里插入图片描述
我简单解析一下,这类教程网络多得是,可以百度一下。先看异质性,如果有异质性应需用随机效应模型,否则可选用固定效应模型。我们这里选择随机效应模型。
我这里异质性I89.9%挺大的,我们可以使用剔除法来观察剔除单个观察后的异质性,我这里随便举例,假如我剔除第一个
先加个ID

bc$id<-1:13

在这里插入图片描述
删除第一项我们可以使用亚组函数subset来控制,使得subset=id>2就可以了

out<-metabin(a,b,c,d,data=bc,sm="OR",studlab = paste(study),method = "Inverse",common=F,subset=id>2)
summary(out)

在这里插入图片描述
可以看到异质性较前下降了一点,接下来就可以绘制森林图了

out<-metabin(a,b,c,d,data=bc,sm="OR",studlab = paste(study),method = "Inverse",common=F)forest(out)

在这里插入图片描述
所有结果都可以在图上找到,结果主要是看最后的综合结果,我这里的OR是2.09.接下来做偏倚检查,主要是漏斗图和Egger法
漏斗图,比较理想的漏斗图应该是散点对称分布

funnel(out)

在这里插入图片描述
Egger法,P值大于0.05说明没有偏倚,还给出了参考文献

metabias(out,method.bias="Egger")

在这里插入图片描述
这里还有一个peters法,参考文献是篇JAMA的文章,应该也是蛮靠谱的

metabias(out,method.bias="peters")

在这里插入图片描述
这里简单的介绍了一下meta分析的操作,肯定没有别人专门将meta分析的详细,如果想进行孟德尔随机化+meta分析最好去补一补meta分析的知识。

http://www.lryc.cn/news/171665.html

相关文章:

  • 网络安全第一次作业
  • idea设置gradle
  • 基于Elasticsearch的多文档检索 比如 商品(goods)、案例(cases)
  • 9月18日,每日信息差
  • 基于FPGA实现FPDLINK III
  • [补题记录] Atcoder Beginner Contest 309(E)
  • 【HarmonyOS】解决API6 WebView跳转外部浏览器问题、本地模拟器启动黑屏
  • 给出三个整数,判断大小
  • 优化软件系统,解决死锁问题,提升稳定性与性能 redis排队下单
  • MyBatisPlus 底层用 json 存储,Java 仍然使用 对象操作
  • 发送验证码倒计时 防刷新重置!!!
  • OpenCV项目开发实战--forEach的并行像素访问与其它方法的性能比较
  • cv::Mat 的常见操作方法
  • JVM——11.JVM小结
  • 月木学途开发 2.前台用户模块
  • buuctf-ciscn_s_3
  • 3D模型格式转换工具HOOPS Exchange协助Epic Games实现CAD数据轻松导入虚幻引擎
  • Linux- inode vnode
  • 不来看看?通过Python实现贪吃蛇小游戏
  • C# linq初探 使用linq查询数组中元素
  • 使用线程池进行任务处理
  • ES6之Map和Set有什么不同?
  • Java中的集合
  • 9.4.2servlet基础2
  • 嵌入式学习 - 用电控制电
  • QCA组态如何科学命名?
  • 外贸行业中常用的邮箱推荐
  • 高性能实践
  • 说说hashCode() 和 equals() 之间的关系?
  • 算法通关村-----图的基本算法