Meta分析的优势比和置信区间,使用metafor包在r
问题描述:
我试图做一个荟萃分析从一些赔率比率和他们的置信区间。源文章不报告标准错误。Meta分析的优势比和置信区间,使用metafor包在r
为了使用rma.uni()
从metafor
包,我需要提供差异(通过vi=" "
)或标准误差(throuh sei = " "
)。所以,我计算出的标准误差以下列方式(logor = log(odds ratio), UL= CI upper limit, LL = CI lower limit)
:
se1<-(log(UL)-logor)/1.96
se2<-(log(OR)-log(LL))/1.96
我的问题是,用这种方法得出的标准误差相差一点点,但他们应该是相同的。我认为这是由于作者对CI进行四舍五入的缘故。我的解决方案是将这些平均值作为模型中的标准误差。
然而,当我适合的模型和绘制森林图,所产生的置信区间上不同于那些颇有几分我开始用..
dmres<-rma.uni(yi=logor, sei=se, data=dm2)
forest(dmres, atransf=exp, slab=paste(dm2$author))
有没有更好的方式来做到这一点? 也许我可以直接放置置信区间的函数?
非常感谢您的意见。
更新
示例数据和代码:
dm<-structure(list(or = c(1.6, 4.4, 1.14, 1.3, 4.5), cill = c(1.2,
2.9, 0.45, 0.6, 3.2), ciul = c(2, 6.9, 2.86, 2.7, 6.1)), .Names = c("or",
"cill", "ciul"), class = "data.frame", row.names = c(NA, -5L))
dm$logor<-log(dm$or)
dm$se1<-(log(dm$ciul)-dm$logor)/1.96
dm$se2<-(dm$logor-log(dm$cill))/1.96
dm$se<-(dm$se1+dm$se2)/2
library(metafor)
dmres<-rma.uni(yi=logor, sei=se, data=dm)
forest(dmres, atransf=exp)
答
由于置信区间范围(对数刻度)不是对称的,首先,你得到这些差异。您可以使用forest.default()
函数,直接提供CI界限,然后使用addpoly()
函数添加汇总多边形。使用你的例子:
forest(dm$logor, ci.lb=log(dm$cill), ci.ub=log(dm$ciul), atransf=exp, rows=7:3, ylim=c(.5,10))
addpoly(dmres, row=1, atransf=exp)
abline(h=2)
将确保数据集中的CI边界与林图中的CI边界完全相同。
如果没有一些可以再现此问题的示例数据,则很难为您提供帮助。看[这个问题] {http://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – Thomas