R 中 meta 和 metafor 包的结果之间的差异
Differences between results from meta and metafor packages in R
我正在使用 R 进行元分析,我决定要确认两个广泛使用的 R 包(meta 和 metafor)产生相同的结果(我在下面粘贴了我的代码)。不幸的是,它们并不完全相同,我试图找出原因,因为使用一个包表明整体效果显着而另一个则不然。有没有人对这些包有任何经验知道为什么?
这里需要注意的是,我在一个非常关心 p 值的领域工作(只是为了预测一些可能针对 "they're close enough" 或 "ignore the p-values anyways" 的响应)。
谢谢大家
#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
您对 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")
那么结果是一样的
我正在使用 R 进行元分析,我决定要确认两个广泛使用的 R 包(meta 和 metafor)产生相同的结果(我在下面粘贴了我的代码)。不幸的是,它们并不完全相同,我试图找出原因,因为使用一个包表明整体效果显着而另一个则不然。有没有人对这些包有任何经验知道为什么?
这里需要注意的是,我在一个非常关心 p 值的领域工作(只是为了预测一些可能针对 "they're close enough" 或 "ignore the p-values anyways" 的响应)。
谢谢大家
#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
您对 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")
那么结果是一样的