如何利用R语言进行meta分析—详细教程(以OR值和 95%CI作为效应尺度进行合并)

      正在阅读本文的小伙伴你好,利用R语言进行meta分析是我比较重要的一次将R语言基础理论应用于实践的过程,并收获了很好的效果。这个应用也是我的毕业论文中研究方法的核心思路,由于我的毕业论文成绩也是专业第一,其中有比较有价值的研究方法特此展示出来与伙伴们共享。详细教程以及R语言如何使用可以见我的公众号:全哥的学习生涯

      R语言拥有完整有效的数据处理、统计分析与保存机制,可以对数据直接进行分析和显示,命令格式简单、结果可读性强。大多数的meta分析通过Excel等常规工具或Cochrane协作网的RevMan等专业软件,其计算繁琐,操作复杂且需收取昂贵的软件使用费用,因此包含众多针对meta分析软件包的R语言成为作系统评价的绝佳平台。本文使用R 3.6.3与RStudio 1.2.1335版本进行讲解说明,需要软件的伙伴可以在公众号内回复“R”、“RS”自取,而R语言的学习笔记我每期都会进行更新,同时主要选择OR和 95%CI 两项指标作为效应尺度进行合并。

本文对Meta分析的理论步骤:

       除去首先检索文献、制订文献纳入排除标准、质量评价等步骤外,重点谈一谈meta分析的研究方法步骤。在正式进行meta分析前,第一步需要异质性检验,采用 Homogeneity test(Q 检验) (检验水准为α=0.1) 。当P<0.1时,表明研究间存在异质性; 否则研究具有同质性。再结合I^2(0~100%)定量分析异质性的大小,此值越大,则表明研究间同质性愈大。根据推荐的标准,当I2的值小于或等于40%时,表明研究异质性的合格,此时应用固定效应模型(Fixed Effects Model);而当异质性的标准大于推荐标准值时,应选采用随机效应模型(Randomized Effects Model)进行 meta 分析。对于异质性的处理方法用亚组分析、敏感性分析,最后则检验发表偏倚。

Meta分析结果说明:

      在正式选择模型进行效应量合并之前,需首先对纳入的各研究进行异质性检验,采用Q检验与 I^2值相结合的判定方法进行异质性检验在执行pfs命令后,其结果中tau^2指的是研究间方差,观察”Test of heterogeneity”后的P.value,若 P>0.10,说明研究间不存在异质性,无统计学意义,此时可选用固定效应模型进行效应量的合并。由于纳入分析的研究文献都属于横截面调查类文献,因此选择在结果中观察其OR值与 95%CI,当OR值的置信区间不包含1时等价于P<0.05,结果有统计学意义,其可以反映出选择的结局指标与研究变量之间的关系。当OR=1或95%CI包含1时,表示该结局指标与研究变量之间无相关关系; 当OR>1 且 95%CI LCI(置信上限)均大于1时,表示该结局指标是研究变量的风险因素; 当合并效应量 OR<1 且 95%CI UCI(置信下限)均小于1时,即该区间在森林图中落在无效线的左侧,表示该结局指标是研究变量的保护因素。

注:以下图片均来自于我的毕业论文,由于其基于指导教师的科研课题,故一些关键信息我进行了打码处理,请谅解。若有读者想与我取得联系,可以在公众号内找到我的联系方式,或者直接搜索我的的公众号:全哥的学习生涯

程序处理步骤:

①首先要安装meta包,其具体命令为:

install.packages("meta")

②随后可连接China内地中的某个镜像网站,下载安装此程序包。

③接着,将研究第一作者及发表年限、OR值及95%置信区间(UCI、LCI)的上下限分别录入Excel文件中,并将数据保存为.csv格式。

④随后,通过 read.csv()命令在RStudio中读取数据,并将数据集命名为data1,并执行以下命令加载meta程序包。

library("meta")

⑤由于OR值并不服从正态分布,为了使数据更加平稳,削弱模型异方差性、共线性等问题,需首先将OR值及95%置信区间取自然对数,其公式如下:

seln(OR)=(ln⁡(UCI)-ln⁡(LCI))/(2×1.96)

=(ln⁡(UCI)-ln⁡(OR))/1.96

=(ln⁡(OR)-ln⁡(LCI))/1.96

其具体命令为:

lnor<- log⁡(data1[,"OR"])

lnuci<- log⁡(data1[,"UCI"])

lnlci<- log⁡(data1[,"LCI"])

selnor<- (lnuci-lnlci)/(2*1.96)

⑥随后进行meta分析,其程序为:

pfs=metagen(lnor,selnor,sm="OR",data=data,studlab=paste(data1$Author,data1$Year,sep="-"))

pfs命令结果图1


pfs命令结果图2


⑦作出森林图:

forest(pfs)

森林图1


森林图2


⑧当存在异质性时,需要进行亚组分析探索异质性来源,直接加入命令:

data1.random = TRUE,data1.fixed= FALSE

⑨而对于发表偏倚的检验,根据cochrane手册中的要求,当纳入的研究个数大于等于10 个时,不建议使用Egger检验或Begg检验,而应使用Peters检验,且无需做反正弦变换。其代码为:

funnel(pfs)

metabias(pfs,method.bias=”peters”)

若存在发表偏倚,那么可用trim and filled或copas模型校正,代码为:

tf1 <-trimfill(pfs,comb.fixed=TRUE)

summary(tf1)

funnel(tf1)

剪补法程序评价结果


填补后漏斗图


填补前漏斗图


从第二张漏斗图可以看出,对此结局指标的meta分析存在发表偏倚的可能性,故采用剪补法评价其所带来的影响,将概括的结果赋予在tf1命令下,如剪补法程序评价结果图所示,并作出填补后的漏斗图,如第二张漏斗图所示。

由两张漏斗图比较可以看出,在漏斗图左侧填充了2项研究,异质性检验P=0.496>0.05,无统计学意义,因此,仍应使用Fixed Effects Model,其OR值为1.06,95%CI为1.02~1.11。因此,经过对发表偏倚的校正后,其效应值仍具有统计学意义,此更能说明结局指标会对研究变量产生影响。

⑩对于敏感性分析,则可以将各研究一次性排除掉再进行,代码为:

metainf(pfs,pooled=”fixed”) (注:随机效应模型改为pooled=”random”)

forest(metainf(pfs),comb.fixed=TRUE)

程序评价结果图与森林图如下,我们可以看出来,第四项,即森林图中方块突出的那项研究异质性较大,对此我们可以在研究讨论中进一步进行异质性来源的探索。

敏感性分析结果图


敏感性分析结果


      最后,如果屏幕前的你对R语言学习还有什么问题或者看法,欢迎关注我的公众号:全哥的学习生涯,可以在公众号内给我留言,我也希望可以结合更多志同道合的伙伴。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351