R的新手,并试图使用Metafor包运行metanalysis,但正在与出版物偏差分析作斗争。
我正在尝试分析Metafor包中的发表偏差,以便进行包括系统发生控制(从系统发生树到距离矩阵)的分析(rma.mv模型)。Nakagawa和Santos 2012建议在修剪和填充分析或Egger回归中使用phylo模型的残差。我理解这个原则,但我在执行时遇到了问题。以下是我所做的工作:
ES_Calc <- rma.mv(yi=yi, V=vi, random= ~1|PhyloName, R=list(PhyloName=PhyCor),Rscale="cov0", data=ES) #this model works well! ES is a dataframe with columns for the effect size yi, variance, vi, and species name PhyloName. PhyCor is a distance matrix between all species.
Resid <- rstandard(ES_Calc) #I recover residuals, se, z, slab with 110 datapoints each这就是我在这种方法上遇到问题的地方。埃格回归(regtest)和修剪和填充(trimfill)都需要元分析的输入(rma.uni输出),所以我可以想到两个选项,但不确定哪一个是正确的: 1)以某种方式将残差输出转换为类似rma.uni的格式-但我不知道如何做到这一点。有人知道吗?
2)将残差输出转换为dataframe (它是一个列表,但我需要一个dataframe来运行rma分析):
Resid_DF<-do.call("rbind", Resid)
Resid_DF22 <- t(Resid_DF)然后对残差数据运行rma.uni,并运行trimfill或regtest:
resid.es <- rma(yi=resid, vi=se, data=Resid_DF2)
trimfill(resid.es, estimator="R0")
regtest(resid.es)但在第二种选择中,我一点也不相信这种方法是正确的。
发布于 2016-01-01 00:42:17
我相信你可以简单地使用残差和原始效果大小方差来运行Egger回归。
eg.reg1 = lm(residuals.rma(ES_Calc)~data.frame$vi)
其中,data.frame$vi是数据集的原始效果大小方差。通过使用rma.mv对象的残差,您可以考虑到模型中随机效应项所解释的异质性。
https://stackoverflow.com/questions/34270651
复制相似问题