
各位讀者朋友們大家好啊,最近有不少讀者私信我說(shuō)關(guān)于單臂實(shí)驗(yàn)的meta分析能不能出個(gè)教程,尤其是對(duì)于單臂連續(xù)型變量,找遍了全網(wǎng)都不知如何用R實(shí)現(xiàn),不要著急,相信看完本期教程,你會(huì)獲益匪淺的。(需要本教程的原始數(shù)據(jù)及完整程序命令的可在公,眾號(hào)(全哥的學(xué)習(xí)生涯)內(nèi)回,復(fù)“單個(gè)率meta”。)
01 單個(gè)率meta分析的理論基礎(chǔ)
單個(gè)率的Meta分析是一種只提供了一組人群的總?cè)藬?shù)和事件發(fā)生人數(shù),基于原始研究為橫斷面的研究,國(guó)內(nèi)Meta 分析的軟件主要是Review Manager,但該軟件無(wú)法實(shí)現(xiàn)單個(gè)率的Meta 分析。Stata 軟件可進(jìn)行單個(gè)率的Meta 分析,但其計(jì)算繁瑣,操作較復(fù)雜且是收費(fèi)的統(tǒng)計(jì)軟件。Meta-analysis 軟件是一款免費(fèi)的軟件且可以進(jìn)行單個(gè)率的Meta 分析,但是其為菜單操作,無(wú)法實(shí)現(xiàn)對(duì)原始率的轉(zhuǎn)換。相比之下,R 軟件是一種共享的免費(fèi)統(tǒng)計(jì)軟件,有專門的Meta 分析程序包,可以進(jìn)行單個(gè)率的Meta 分析,而且提供了五種方法估算率, 研究者可以根據(jù)原始率的分布選擇合適的方法。
02 準(zhǔn)備工作
2.1
本教程使用的R軟件版本為3.6.2,RStudio版本為1.2.1335,需要軟件的讀者可在公,眾號(hào)(全哥的學(xué)習(xí)生涯)內(nèi)回,復(fù)“R”,”RS”。同時(shí),我們需要安裝“meta”包,及加載此包。代碼如下:
install.packages(“meta”)
library(meta)
2.2
在本教程中,我們的目的是研究某病毒在某特定人群中的陽(yáng)性檢出率,輸入以下命令將數(shù)據(jù)錄入進(jìn)R中:
setwd(dir="C:/Users/Desktop") #可更改為自己的工作目錄
data <- read.csv("data.csv",header = T)
原始數(shù)據(jù)如圖1所示:

其中,Author為研究作者,Year為發(fā)表年份,Sample.size為樣本量,Case為事件發(fā)生數(shù),
03? R語(yǔ)言中的Meta 分析函數(shù)
3.1 R語(yǔ)言樣本率的5種估計(jì)方法
可使用metaprop 函數(shù)進(jìn)行率的合并,R 語(yǔ)言中關(guān)于樣本率的估計(jì)方法有五種,根據(jù)樣本率的分布決定使用哪種合并方法,五種估計(jì)方法如下:
sm ="PRAW",untransformed proportions(沒(méi)有轉(zhuǎn)換的原始率)。
sm="PLN", Log transformation(對(duì)數(shù)轉(zhuǎn)換)。
sm="PLOGIT",Logit transformation(logit 轉(zhuǎn)換)。
sm="PAS",Arcsine transformation(反正弦轉(zhuǎn)換)。
sm=”PFT”,Freeman-Tukey Double arcsine transformation (Freeman-Tukey雙重反正弦轉(zhuǎn)換)
3.2 單個(gè)率的合并
在進(jìn)行metaprop 分析之前,對(duì)原始率及按四種估計(jì)方法進(jìn)行轉(zhuǎn)換后的率進(jìn)行正態(tài)性檢驗(yàn),根據(jù)檢驗(yàn)結(jié)果選擇接近正態(tài)分布的方法。transform 為對(duì)數(shù)據(jù)進(jìn)行計(jì)算,p、log、logit、arcsin、dsrcsin 表示分
別按上述五種方法估計(jì)率的函數(shù),shapiro.test 為正態(tài)性檢驗(yàn)。命令如下:
rate <- transform(data,p=Case/Sample.size) #沒(méi)有轉(zhuǎn)換的原始率
shapiro.test(rate$p)
rate <- transform(data,log=log(Case/Sample.size)) #對(duì)數(shù)轉(zhuǎn)換
shapiro.test(rate$log)
rate <- transform(data,logit=log((Case/Sample.size)/(1-Case/Sample.size)))? #logit轉(zhuǎn)換
shapiro.test(rate$logit)
rate <- transform(data,arcsin.size=asin(sqrt(Case/(Sample.size+1))))
shapiro.test(rate$arcsin)? #反正弦轉(zhuǎn)換
rate <- transform(data,darcsin=0.5*(asin(sqrt(Case/(Sample.size+1)))+asin((sqrt(Case+1)/(Sample.size+1)))))? # Freeman-Tukey雙重反正弦轉(zhuǎn)換
shapiro.test(rate$darcsin)
metaprop 函數(shù)用于計(jì)算各個(gè)獨(dú)立研究的率及95%可信區(qū)間,并按照率的分布選擇合適的估計(jì)方法,得到合并的率及95%可信區(qū)間。命令如下:
meta1 <- metaprop(Case,Sample.size,data=data,studlab = paste(data$Author,data$Year,sep="-"),sm="PRAW",incr=0.5,allincr=TRUE,addincr=FALSE)
meta1
sm 表示估計(jì)樣本率的方法,根據(jù)正態(tài)性檢驗(yàn)結(jié)果選擇合適的估計(jì)方法。本例原始率符合正態(tài)分布,因此直接選取是PRAW法估計(jì)原始率即可。
incr=0.5 表示當(dāng)事件發(fā)生數(shù)為0時(shí)用0.5 來(lái)替代。
allincr=TRUE 表示至少有一個(gè)研究的事件發(fā)生數(shù)為0時(shí),所有事件發(fā)生數(shù)都加上incr數(shù)值;為FALSE時(shí),只對(duì)事件發(fā)生數(shù)為0 的研究加上incr 數(shù)值。
addincr=TRUE 表示無(wú)論是否有事件發(fā)生數(shù)為0的研究,所有研究都加上incr數(shù)值。
04 圖形繪制與結(jié)果展示
4.1 森林圖繪制
敲入命令:
jpeg("Forest plot.jpeg",height = 1300,width = 800)
forest(meta1,digits=3,family="sans",fontsize=9.5,lwd=2,col.diamond.fixed="lightslategray",col.diamond.lines.fixed="lightslategray",
? ? ? col.diamond.random="maroon",col.diamond.lines.random="maroon",col.square="skyblue",col.study="lightslategray",
? ? ? lty.fixed=4,plotwidth="8cm",colgap.forest.left="1cm",colgap.forest.right="1cm",just.forest="right",colgap.left="0.5cm",
? ? ? colgap.right="0.5cm")
dev.off()
以上代碼看起來(lái)繁瑣復(fù)雜,但其目的是為了繪制一張精美漂亮的森林圖,且因?yàn)閿?shù)據(jù)較多,需要將圖片完整的顯示出來(lái),如圖2所示。對(duì)于以上代碼的解釋,可參考之前公,眾號(hào):全哥的學(xué)習(xí)生涯,的文章:如何用R畫出精美漂亮的meta分析森林圖。
需要注意的是,上述代碼中,digits 表示保留的小數(shù)位數(shù)。合并的率及95%可信區(qū)間與原文一致,結(jié)果見(jiàn)圖2。

4.2 漏斗圖的繪制
funnel 畫漏斗圖,是用于識(shí)別發(fā)表偏倚或其他偏倚的方法,根據(jù)圖形的不對(duì)稱程度判斷Meta 分析中偏倚的有無(wú)。
命令為:
funnel(meta1)
結(jié)果見(jiàn)圖3。漏斗圖是一種用主觀定性的方法來(lái)判斷有無(wú)偏倚,因此需要對(duì)漏斗圖的不對(duì)稱程度進(jìn)行統(tǒng)計(jì)學(xué)檢驗(yàn)。另外,本公眾號(hào)還介紹了一種“超級(jí)漏斗圖”,其能在統(tǒng)計(jì)學(xué)99%、95%和90%三個(gè)水平上對(duì)發(fā)表偏倚進(jìn)行檢測(cè),詳細(xì)教程可見(jiàn)公,眾號(hào):全哥的學(xué)習(xí)生涯。

4.3 漏斗圖的不對(duì)稱性檢驗(yàn)
?metabias是對(duì)漏斗圖的不對(duì)稱性進(jìn)行統(tǒng)計(jì)學(xué)檢驗(yàn)。
Egger 檢驗(yàn)的命令為:
metabias(meta1,method=”linreg”)
根據(jù)結(jié)果輸出窗口P 值大小,判斷發(fā)表偏倚或其他偏倚是否具有統(tǒng)計(jì)學(xué)意義。
輸出Egger 漏斗圖的命令為
metabias (meta1,method ="linreg", plotit=TRUE,k.min=10)
結(jié)果見(jiàn)圖4。

Method 為Egger 檢驗(yàn)的方法;plotit 為畫圖函數(shù);k.min 為進(jìn)行檢驗(yàn)時(shí)所需最小的單個(gè)研究的數(shù)量,默認(rèn)10,如果研究在3~10 個(gè)之間可通過(guò)此函數(shù)進(jìn)行調(diào)整。
4.4 敏感性分析
metainf 可以進(jìn)行敏感性分析,計(jì)算分別剔除每個(gè)入選研究后合并的OR 值及95%可信區(qū)間。命令為:
jpeg("Sensitivity analysis results.jpeg",height = 1300,width = 800)
forest(metainf(meta1,pooled ="random"),comb.random=TRUE,family="sans",fontsize=9.5,lwd=2,col.diamond.fixed="lightslategray",col.diamond.lines.fixed="lightslategray",? ? col.diamond.random="maroon",col.diamond.lines.random="maroon",col.square="skyblue",col.study="lightslategray",? lty.fixed=4,plotwidth="8cm",colgap.forest.left="1cm",colgap.forest.right="1cm",just.forest="right",colgap.left="0.5cm",colgap.right="0.5cm")
dev.off()
結(jié)果見(jiàn)圖5.

4.5 剪補(bǔ)法評(píng)價(jià)
命令如下:
tf1 <- trimfill(meta1,comb.random = TRUE)
summary(tf1)
funnel(tf1)
結(jié)果見(jiàn)圖6。

05 單臂連續(xù)型變量的meta分析
此種類型的分析用到的函數(shù)為metamean()函數(shù),命令如下:
meta2 <- metamean(n,mean,sd,data=data,studlab = paste(data$Author,data$Year,sep="-"))
meta2
forest(meta2,digits=2,family="sans",fontsize=9.5,lwd=2,col.diamond.fixed="lightslategray",col.diamond.lines.fixed="lightslategray",
? ? ? col.diamond.random="maroon",col.diamond.lines.random="maroon",col.square="skyblue",col.study="lightslategray",
? ? ? lty.fixed=4,plotwidth="8cm",colgap.forest.left="1cm",colgap.forest.right="1cm",just.forest="right",colgap.left="0.5cm",
? ? ? colgap.right="0.5cm")
用到的數(shù)據(jù)如圖7所示,其中,n為樣本量,mean為均數(shù),sd為標(biāo)準(zhǔn)差。

結(jié)果的森林圖如圖8所示,敏感性分析、發(fā)表偏倚分析、漏斗圖、剪補(bǔ)法等命令同上,在此不作贅述。
