提前感谢您考虑这个问题。
是否有人能够建议为什么使用“metafor”包进行的trimfill分析给“meta”包提供了非常不同的结果(0.6803 [95%0.3456 1.0151]与metafor相比,0.3657 [95%-0.0213; 0.7526]元)。难道我做错了什么?哪个更准确还是都很好?我在下面提供了一些可简化的代码。
install.packages("metafor")
install.packages("meta")
library("metafor")
library("meta")
es<-c(.5,.6,.3,.1,.4,.7,1.1,.2,.2,1,2,1.1)
se<-c(.1,.1,.2,.3,.1,.1,.2,.1,.05,0.5,.1,.1)
df<-data.frame(es,se)
trimfill(rma(yi=es,sei=se,data=df,method="DL"))
trimfill(metagen(TE=es,seTE=se,data=df))
谢谢,
P
答案 0 :(得分:0)
在meta
包中,修剪和填充方法使用固定效果模型完成,但最终分析使用随机效应模型完成。在metafor
中,trim和fill方法是在传递给它的相同类型的模型下完成的。由于您将随机效应模型传递给它,随机效应模型也用于修剪和填充方法(最后的分析也使用随机效应模型完成)。
如果要复制meta
的内容,则必须首先将固定效果模型传递给函数,然后手动拟合随机效果模型。修剪和填充对象中的向量yi
和vi
包含原始加号(如果有的话)插补数据。所以,你可以这样做:
res <- rma(yi=es,sei=se,data=df,method="FE")
res <- trimfill(res)
rma(res$yi, res$vi, method="DL")
您会发现这会产生与使用meta
包获得的结果相同的结果。