R语言进行meta分析教程

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="-"))

R语言进行meta分析教程_第1张图片

pfs命令结果图1

R语言进行meta分析教程_第2张图片

pfs命令结果图2




⑦作出森林图:
forest(pfs)

R语言进行meta分析教程_第3张图片

森林图1
 

R语言进行meta分析教程_第4张图片


森林图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)

R语言进行meta分析教程_第5张图片

剪补法程序评价结果

R语言进行meta分析教程_第6张图片


填补后漏斗图

R语言进行meta分析教程_第7张图片

填补前漏斗图

从第二张漏斗图可以看出,对此结局指标的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语言进行meta分析教程_第8张图片

敏感性分析结果图

R语言进行meta分析教程_第9张图片

敏感性分析结果

更多教程点击查看:R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践
链接:https://www.jianshu.com/p/a4cc9b0a7758
来源:简书
著作权归作者所有

你可能感兴趣的:(r语言,开发语言)