R数据分析:用R语言做meta分析
haoteby 2025-05-27 14:17 6 浏览
这里以我的一篇meta分析为例,详细描述meta分析的一般步骤,该例子实现的是效应量β的合并
R包:metafor或meta包,第一个例子以metafor包为例。
1.准备数据集
2.异质性检验
install.packages("metafor")
library(metafor)
metamod<-rma(yi=β,data=metabirth3,sei=se,method="DL")
#β是回归系数的值,se是标准误,DL表示选择的是随机效应模型,固定效应模型是method="FE"
summary(metamod)#输出结果
可以看到I^2为28.34%,属于低度异质性,可采用固定效应模型。异质性低的时候可以采用固定效应模型和随机效应模型,结果差别不大,但高异质性只能选择随机效应模型,否则会使结果外推性受到约束。此处选择随机效应模型是出于保守情况考虑。
- fixed-effect model是基于跨研究间不存在异质性的假设,也就是其合并时,默认运算是认为所纳入合并的研究均为同质;
- random-effect model是基于跨研究间存在异质性的假设,该合并模型承认研究间异质性的存在,但是不对异质性加以处理;
- 如果纳入合并的研究间存在异质性,尽管未达到我们常规设定的I^2>50%,但是在用fixed-effect model合并时,默认运算直接忽略这一部分异质性的存在,这样合并的结果会造成假阳性误差,而选用random-effect model合并时,尽管不处理异质性,但是其默认运算承认异质性的存在,合并结果更可信!
3.森林图绘制
forestplot<-forest(metamod,refline = 1,mlab="Random-effect Model for All Studies",
slab=paste(metabirth3$author,metabirth3$year,sep=","),
xlab="β",showweights = T)
text(-500,6:1,pos=2,metabirth3$country)
text(c(-1600,-500,300,800),8,pos=c(4,2,4,4),c("Author(s) and Year", "Location","Weight","β[95%CI]"),cex=1,font=2)
#添加标签
结果如下图
黑色方块表示的是权重大小,对应着右方的weight,水平横线是95%置信区间。菱形是合并效应值,95%置信区间小于0,意味着meta分析结果有统计学意义。
4.文献发表偏倚检验
可以用漏斗图及Begger's及Egger's检验
funnel(metamod)
ranktest(metamod)#Begg's检验#
regtest(metamod)#Egger's检验#
可能是由于文献数量的限制,漏斗图呈现明显不对称模式,无法判断是由于发表偏倚所致还是文献数量太少的缘故
可以看出Begg's检验及Egger's 检验的结果,P值都是大于0.05的,也就意味着没有发表偏倚。
5.敏感性检验
leavelout(metamod,digits = 3)
本文转载自CSDN一个人旅行*-*
往期内容:
相关推荐
- R数据分析:双因素方差分析与交互作用检验
-
Two-wayANOVAtestisusedtoevaluatesimultaneouslytheeffectoftwogroupingvariables(AandB)...
- R数据分析:用R语言做meta分析
-
这里以我的一篇meta分析为例,详细描述meta分析的一般步骤,该例子实现的是效应量β的合并...
- 生存分析看完这篇就够了(R语言代码+线上工具)
-
尔云间一个专门做科研的团队云生信学生物信息学关注我们...
- R语言中离群值的识别、描述、绘制与移除
-
摘要:统计学中离群值被定义为离开大部分观测较远的样本点,多数是由于测量误差而产生。因此,数据分析中离群值的识别和移除(如有必要)是很重要的一个步骤。鉴定离群值的方法有很多种,包括基于标准差的方法和基于...
- R语言、RStudio的下载、安装与使用
-
本文介绍R语言及其集成开发环境...
- [R语言] R语言快速入门教程
-
本文主要是为了从零开始学习和理解R语言,简要介绍了该语言的最重要部分,以快速入门。主要参考文章:R-TutorialR语言程序的编写需要安装R或RStudio,通常是在RStudio中键入代码。但是R...
- 看完这个「R语言课程」合集,我发现R语言也不过如此…
-
小料君看到一个有趣的问答...
- 在R语言中使用正则表达式
-
有时候我们要处理的是非结构化的数据,例如网页或是电邮资料,那么就需要用R来抓取所需的字符串,整理为进一步处理的数据形式。R语言中有一整套可以用来处理字符的函数,在之前的博文中已经有所涉及。但真正的...
- 附代码|详解R语言的高级数据结构
-
有时数据需要比向量更复杂的存储方式。幸运的是,R软件提供了很多的数据结构。常见的有数据框(data.frame)、矩阵(matrix)、列表(list)以及数组(array)。数据框类似于电子表格,矩...
- R语言实战—自学笔记—向量
-
第2章创建数据集2.1数据集的概念数据集:由数据构成的一个矩形数组,行表示观测,列表示变量。...
- R语言从入门到精通:Day7
-
原创小浣熊科研猫是时候关注我们一波了在向reviewer或者导师展示自己的统计分析结果时,一张图往往顶得上千言万语;在刚接触到数据时,图也能帮助我们发现数据中潜在的模式或者其中的异常值,这两个例子...
- 一文教你学会维恩图的绘制——R语言
-
背景介绍维恩图用于展示在不同的事物群组(集合)之间的数学或逻辑联系,尤其适合用来表示集合(或)类之间的“大致关系”,它也常常被用来帮助推导(或理解推导过程)关于集合运算(或类运算)的一些规律。通常每个...
- R语言介绍
-
一、R语言介绍...
- R语言的一些常见初级基本操作
-
基本概念:在R语言里操作和接触的所有东西都称作对象(object)。对象有很多种类可以包含各种类型的数据。R语言里所有的东西都被称为对象,R语言中常见的数据类型有几下几种,分别是字符型(cha...