2017-01-31 205 views
0

我正在做一个使用R的meta分析,我决定我想确认两个广泛使用的R软件包(meta和metafor)产生相同的结果(我粘贴了我的代码如下)。不幸的是,它们并不完全相同,我试图弄清楚为什么,因为使用一个软件包显示出显着的整体效果,而另一个则没有。有没有人有这些包的经验,知道为什么?R与meta和metafor软件包的结果之间的差异

这里需要注意的是,我在一个非常关心p值的领域工作(只是为了预测一些可能适合“足够接近”或“无视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

您的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") 

那么结果是相同的。

相关问题