Как прокомментировал Чейз, фактический код lmodel2()
и код ggplot
, которые вы используете, будут полезны.Но вот пример, который может указать вам правильное направление:
dat <- data.frame(a=log10(rnorm(50, 30, 10)), b=log10(rnorm(50, 20, 2)))
mod <- lmodel2(a ~ b, data=dat,"interval", "interval", 99)
#EDIT: mod is a list, with components (data.frames) regression.results and
# confidence.intervals containing the intercepts+slopes for different
# estimation methods; just put the right values into geom_abline
ggplot(dat,aes(x=b,y=a)) + geom_point() +
geom_abline(intercept=mod$regression.results[4,2],
slope=mod$regression.results[4,3],colour="blue") +
geom_abline(intercept=mod$confidence.intervals[4,2],
slope=mod$confidence.intervals[4,4],colour="red") +
geom_abline(intercept=mod$confidence.intervals[4,3],
slope=mod$confidence.intervals[4,5],colour="red") +
xlim(c(-10,10)) + ylim(c(-10,10))
Полное раскрытие: я ничего не знаю о регрессии RMA, поэтому я просто вытащил соответствующие уклоны и перехваты и добавил их в geom_abline()
,используя пример кода из lmodel2
в качестве руководства.CI, созданные в этом игрушечном примере, похоже, не имеют особого смысла, так как мне пришлось заставить ggplot уменьшать масштаб, используя xlim()
и ylim()
, чтобы увидеть линии CI (красные).
Но, возможно, это поможет вам создать рабочий пример в ggplot()
.
EDIT2: с добавленным кодом OP для извлечения коэффициентов ggplot()
будет выглядеть примерно так:
ggplot(dat,aes(x=b,y=a)) + geom_point() +
geom_abline(intercept=fit2[1,1],slope=fit2[2,1],colour="blue") +
geom_abline(intercept=fit2[1,2],slope=fit2[2,2],colour="red") +
geom_abline(intercept=fit2[1,3],slope=fit2[2,3],colour="red")