如何⽤R语⾔实现单个率单臂实验的meta分析(包括⼆分类变量与
连续型变量教程)
中文在线翻译成英文
各位读者朋友们⼤家好啊,最近有不少读者私信我说关于单臂实验的meta分析能不能出个教程,尤其是对于单臂连续型变量,找遍了全⽹都不知如何⽤R实现,不要着急,相信看完本期教程,你会获益匪浅的。(需要本教程的原始数据及完整程序命令的可在公,众号(全哥的学习⽣涯)内回,复“单个率meta”。)
01 单个率meta分析的理论基础
单个率的Meta分析是⼀种只提供了⼀组⼈群的总⼈数和事件发⽣⼈数,基于原始研究为横断⾯的研究,国内Meta 分析的软件主要是Review Manager,但该软件⽆法实现单个率的Meta 分析。Stata 软件可进⾏单个率的Meta 分析,但其计算繁琐,操作较复杂且是收费的统计软件。Meta-analysis 软件是⼀款免费的软件且可以进⾏单个率的Meta 分析,但是其为菜单操作,⽆法实现对原始率的转换。相⽐之下,R 软件是⼀种共享的免费统计软件,有专门的Meta 分析程序包,可以进⾏单个率的Meta 分析,⽽且提供了五种⽅法估算率, 研究者可以根据原始率的分布选择合适的⽅法。
02 准备⼯作
2.1
conversational2016年考研国家线预测本教程使⽤的R软件版本为3.6.2,RStudio版本为1.2.1335,需要软件的读者可在公,众号(全哥的学习⽣涯)内回,复“R”,”RS”。同时,我们需要安装“meta”包,及加载此包。代码如下:
install.packages(“meta”)lobotomy
library(meta)
2.2
在本教程中,我们的⽬的是研究某病毒在某特定⼈群中的阳性检出率,输⼊以下命令将数据录⼊进R中:
twd(dir="C:/Urs/Desktop") #可更改为⾃⼰的⼯作⽬录
data <- read.csv("data.csv",header = T)
原始数据如图1所⽰:
图 1
其中,Author为研究作者,Year为发表年份,Sample.size为样本量,Ca为事件发⽣数,
03 R语⾔中的Meta 分析函数
3.1 R语⾔样本率的5种估计⽅法
可使⽤metaprop 函数进⾏率的合并,R 语⾔中关于样本率的估计⽅法有五种,根据样本率的分布决定使⽤哪种合并⽅法,五种估计⽅法如下:sm ="PRAW",untransformed proportions(没有转换的原始率)。
basicallysm="PLN", Log transformation(对数转换)。
determinesm="PLOGIT",Logit transformation(logit 转换)。
sm="PAS",Arcsine transformation(反正弦转换)。
sm=”PFT”,Freeman-Tukey Double arcsine transformation (Freeman-Tukey双重反正弦转换)
3.2 单个率的合并
在进⾏metaprop 分析之前,对原始率及按四种估计⽅法进⾏转换后的率进⾏正态性检验,根据检验结果选择接近正态分布的⽅法。transform 为对数据进⾏计算,p、log、logit、arcsin、dsrcsin 表⽰分
notifications别按上述五种⽅法估计率的函数,st 为正态性检验。命令如下:
rate <- transform(data,p=Ca/Sample.size) #没有转换的原始率
rate <- transform(data,log=log(Ca/Sample.size)) #对数转换
rate <- transform(data,logit=log((Ca/Sample.size)/(1-Ca/Sample.size))) #logit转换
rate <- transform(data,arcsin.size=asin(sqrt(Ca/(Sample.size+1))))
rate <- transform(data,darcsin=0.5*
(asin(sqrt(Ca/(Sample.size+1)))+asin((sqrt(Ca+1)/(Sample.size+1))))) # Freeman-Tukey双重反正弦转换st(rate$darcsin)
metaprop 函数⽤于计算各个独⽴研究的率及95%可信区间,并按照率的分布选择合适的估计⽅法,得到合并的率及95%可信区间。命令如下:
meta1 <- metaprop(Ca,Sample.size,data=data,studlab = paste(data$Author,data$Year,p="-
"),sm="PRAW",incr=0.5,allincr=TRUE,addincr=FALSE)
meta1
sm 表⽰估计样本率的⽅法,根据正态性检验结果选择合适的估计⽅法。本例原始率符合正态分布,因此直接选取是PRAW法估计原始率即可。
incr=0.5 表⽰当事件发⽣数为0时⽤0.5 来替代。
allincr=TRUE 表⽰⾄少有⼀个研究的事件发⽣数为0时,所有事件发⽣数都加上incr数值;为FALSE时,只对事件发⽣数为0 的研究加上incr 数值。
addincr=TRUE 表⽰⽆论是否有事件发⽣数为0的研究,所有研究都加上incr数值。
04 图形绘制与结果展⽰
4.1 森林图绘制
敲⼊命令:
jpeg("Forest plot.jpeg",height = 1300,width = 800)
danai guriraforest(meta1,digits=3,family="sans",fontsize=9.5,lwd=2,col.diamond.fixed="lightslategray",col.diamond.line s.fixed="lightslategray",
col.diamond.random="maroon",col.diamond.lines.random="maroon",col.square="skyblue",col.study="lightsla tegray",
lty.fixed=4,plotwidth="8cm",colgap.forest.left="1cm",colgap.forest.right="1cm",just.forest="right",colgap.lef t="0.5cm",
colgap.right="0.5cm")
dev.off()
以上代码看起来繁琐复杂,但其⽬的是为了绘制⼀张精美漂亮的森林图,且因为数据较多,需要将图⽚完整的显⽰出来,如图2所⽰。对于以上代码的解释,可参考之前公,众号:全哥的学习⽣涯,的⽂章:如何⽤R画出精美漂亮的meta分析森林图。
需要注意的是,上述代码中,digits 表⽰保留的⼩数位数。合并的率及95%可信区间与原⽂⼀致,结果见图2。sol
图 2
4.2 漏⽃图的绘制
funnel 画漏⽃图,是⽤于识别发表偏倚或其他偏倚的⽅法,根据图形的不对称程度判断Meta 分析中偏倚的有⽆。
命令为:
funnel(meta1)
结果见图3。漏⽃图是⼀种⽤主观定性的⽅法来判断有⽆偏倚,因此需要对漏⽃图的不对称程度进⾏统计学检验。另外,本公众号还介绍了⼀种“超级漏⽃图”,其能在统计学99%、95%和90%三个⽔平上对发表偏倚进⾏检测,详细教程可见公,众号:全哥的学习⽣涯。
大学英语精读第四册答案图 3
4.3 漏⽃图的不对称性检验
metabias是对漏⽃图的不对称性进⾏统计学检验。
Egger 检验的命令为:
metabias(meta1,method=”linreg”)
根据结果输出窗⼝P 值⼤⼩,判断发表偏倚或其他偏倚是否具有统计学意义。
输出Egger 漏⽃图的命令为
metabias (meta1,method ="linreg", plotit=TRUE,k.min=10)