我想使用绘制与ggplot(或类似的程序包)的元回归metafor
。
我找到了这个网站(https://ecologyforacrowdedplanet.wordpress.com/2013/05/30/using-metafor-and-ggplot-togetherpart-2/),该网站解释了如何在散点图上绘制报告的值和拟合模型的回归线与ggplot2
和metafor
。
但是,作者在网站上放置的代码本身无法正常运行。似乎我必须以某种方式计算预测,但是由于我是R新手,所以我不确定如何做到这一点。我不能把结果rma()
以同样的方式作为的结果lm()
。
Model2<-rma.uni(yi,vi,mods=~Intensity+Method,method="ML",data=ROM)
summary(Model2)
in.plot<-ggplot(data=ROM,aes(x=Intensity,y=yi,size=1/vi,colour=Method))+geom_point(data=ROM,shape=16)
in.plot2<-in.plot+geom_line(data=ROM,aes(x=Intensity,y=preds,size=1))
in.plot3<-in.plot2+ylab("log response ratio")+xlab("Logging intensity (m-3 ha-1)")
in.plot3+theme(legend.position="none")
请访问该网站以查看生成的图(很抱歉,我不确定是否可以仅将图复制并粘贴到此处,所以我仅引用该网站)。
当我使用类似于网站示例的数据尝试代码时,出现一个错误,提示没有“ preds”。
似乎我需要计算预测,但这实际上是我想知道的事情,即如何绘制拟合的回归线。我了解到我可以使用predict()
或confint()
函数,但无法弄清楚如何将这些函数应用于rma()
对象。
如果您可以教我如何使用metafor
和复制这种类型的情节,我将不胜感激ggplot
。谢谢。
已编辑
我认为提供可用于此问题的数据和代码会很好。以下是我的方法(我知道这不是一个好的模型,结果是明智的,但这是我要处理的研究设计)。
require(metafor)
require(ggplot2)
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
res <- rma(yi, vi, mods = ~ alloc*ablat, data=dat)
preds <- predict.rma (res)
ggplot(dat, aes(x = ablat, y = yi, size = 1/vi, col = alloc))+
geom_point(data = dat, shape = 16) + geom_line(data = dat, y = preds, size = 1)
我想在散点图上绘制观察结果,并为每种分配方法拟合回归线。
这是我得到的错误:
错误:美学的长度必须为1或与数据(13)相同:y,大小
在rma.uni
软件包的文档中metafor
说:
“可以使用predict.rma和fitted.rma获得预测/拟合值。有关最佳线性无偏预测,请参阅blup.rma.uni。”
我假设您可以使用这些功能来创建矢量preds
并绘制拟合线。
编辑作为对您的编辑的回应:
ggplot(dat, aes(x = ablat, y = yi, size = 1/vi, col = alloc))+
geom_point(data = dat, shape = 16) +
geom_line(data = dat,aes(x = ablat,y = preds$pred, size = 1))
这是您要找的东西吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句