荟萃分析:使用metafor软件包进行总结估计的森林图
我是~90项研究的元分析数据。这对于如何以可访问的格式显示数据来发布提出了一些挑战。我只想显示不同荟萃分析的总体效应量估计值,并排除特定于研究的估计值。我可以在Stata中使用metan
程序包并添加summaryonly
命令。是否可以使用metafor
包(或任何其他元分析R包)来抑制森林小区输出中的研究级影响大小?荟萃分析:使用metafor软件包进行总结估计的森林图
我一直在使用addpoly
命令添加效果大小估计子样本的包文档中所描述的,如:
res.a <- rma(n1i = Intervention_n, n2i = Control_n, m1i = intervention_d, m2i = control_d, sd1i = intervention_d_sd,
sd2i = control_d_sd, measure="MD", intercept=TRUE, data = Dataset.a, vtype="LS", method="DL", level=95,
digits=4, subset = (exclude==0 & child=="No"), slab=paste(Dataset.a$Label, Dataset.a$Year, sep=", "))
addpoly(res.a, row=7.5, cex=.75, font=3, mlab="Random effects model for subgroup")
如果我理解正确的话,你都在进行一些与分析这些大约90项研究(例如,基于不同的子集),并且您的目标是仅显示森林图中的概要估计(基于这些分析)。那么最简单的方法就是收集向量中的各种分析的估计值和相应的方差,然后将其传递给函数forest()
函数。我举一个简单的例子:
### load metafor package
library(metafor)
### load BCG vaccine dataset
data(dat.bcg)
### calculate log relative risks and corresponding sampling variances
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
### fit random-effects models to some subsets
res.r <- rma(yi, vi, data=dat, subset=alloc=="random")
res.s <- rma(yi, vi, data=dat, subset=alloc=="systematic")
res.a <- rma(yi, vi, data=dat, subset=alloc=="alternate")
### collect model estimates and corresponding variances
estimates <- c(coef(res.r), coef(res.s), coef(res.a))
variances <- c(vcov(res.r), vcov(res.s), vcov(res.a))
### create vector with labels
labels <- c("Random Allocation", "Systematic Allocation", "Alternate Allocation")
### forest plot
forest(estimates, variances, slab=labels)
如果你不喜欢的一点大小不同(默认情况下,他们被吸引成反比变化),你可以使用:
forest(estimates, variances, slab=labels, psize=1)
一对夫妇的其他改进:
forest(estimates, variances, slab=labels, psize=1, atransf=exp, xlab="Relative Risk (log scale)", at=log(c(.2, .5, 1, 2)))
附录
如果您偏好多边形形状以进行估算,则可以执行以下操作。首先绘制如上图,但使用efac=0
隐藏配置项上的垂直线。然后,只需画在总结多边形与addpoly()
:
forest(estimates, variances, slab=labels, psize=1, atransf=exp, xlab="Relative Risk (log scale)", at=log(c(.2, .5, 1, 2)), efac=0)
addpoly(estimates, variances, atransf=exp, rows=3:1, col="white", annotate=FALSE)
您还可以使用efac=1.5
在addpoly()
垂直拉伸的多边形。根据你的口味调整因子。
完美 - 我将从Stack Overflow上的问题链接到此(对不起,我没有足够的声望将其标记为有用) – ChrisP
我也很想做到这一点,但对于meta包中的metaprop命令。目前的方法存在的问题是,我将失去森林图上的所有其他摘要信息,例如,参与的研究数量,事件数量,总体n等等。对于解决这个问题也是很好的。 – Alexander