R中meta和metafor包的结果之间的差异

时间:2017-01-31 16:08:00

标签: r metadata

我正在使用R进行元分析,我决定确认两个广泛使用的R包(meta和metafor)产生相同的结果(我已经粘贴了下面的代码)。不幸的是,它们并不完全相同,我试图找出原因,因为使用一个包装表明总体效果显着,而另一个包装没有。有没有人有这些包的经验知道为什么?

这里需要注意的是,我在一个非常关心p值的领域工作(只是为了预测一些可能适合的反应"他们足够接近"或者&#34 ;无论如何忽略p值")。

谢谢大家

#Load Libraries
library(meta)
library(metafor)

#Insert effect sizes and sample sizes
es.r<- c(-.14,-.01,-.10,.14,.28,.17,.75,.53)
n <- c(55,46,53,52,105,101,46,48)

# transform to fisher's z
es.r.z <- r2z(es.r)

#Calculate Variance ES
es.r.z.v <-(1/(n-3))

#Calculate Standard Errors ES
r.z.se <-sqrt(es.r.z.v)

#Fixed-effect and Random-effects meta-analysis
#Once with meta package, once with metafor package

meta1<-metagen(es.r.z, r.z.se)
meta2<-rma(es.r.z, r.z.se)

#Show results from both packages
meta1
meta2

1 个答案:

答案 0 :(得分:1)

rma()的语法不正确。 rma()函数的第二个参数用于指定抽样差异,而不是标准错误。另外,metagen()默认使用DL估算器,而rma()使用REML估算器。所以,你应该使用:

meta2<-rma(es.r.z, r.z.se^2, method="DL")

或者您可以将sei参数用于:

meta2<-rma(es.r.z, sei=r.z.se, method="DL")

然后结果是一样的。