这里以我的一篇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)