我想使用 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()
orconfint()
函数,但无法弄清楚如何将这些函数应用于rma()
的对象。
metafor
如果您能教我如何使用and重现这种类型的情节,我将不胜感激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,大小