如何在一个图中绘制来自不同模型的估计值

时间:2019-11-16 21:22:47

标签: r plot mixed-models

我正在对两种不同的药物进行线性混合效应。我使用对比声明来确定时间的影响。

我正在尝试在一个图中绘制来自不同模型的估计值。 这是模型1的输出

confint(model1) 
  Estimate       lwr      upr
1 == 0 2.969735 -1.846697 5.786166
2 == 0 4.163577  0.646791 5.680363
3 == 0 2.193842 -3.377740 5.765425

模型2的输出

Linear Hypotheses:
       Estimate lwr     upr    
1 == 0 65.0877  60.5934 65.5820
2 == 0 65.8362  62.9191 65.7532
3 == 0  0.9484  -4.6095  6.1064

我正在尝试绘制 模型1(3 == 0 2.193842 -3.377740 5.765425)和模型2(3 == 0 0.9484 -4.6095 6.1064)的估计和CI 你该怎么做?

2 个答案:

答案 0 :(得分:3)

@thus__的答案很好。您可以使用dotwhisker软件包更轻松地完成此操作(尽管对于需要更多控制的情况,最好了解手册tidy + combine组合。)

设置模型:

library(lme4)
m1 <- lmer(Reaction~Days+(Days|Subject),sleepstudy)
m2 <- update(m1, . ~ . + I(Days^2))

图:

library(broom.mixed)
library(dotwhisker)
dwplot(list(m1,m2),effects="fixed")

enter image description here

答案 1 :(得分:2)

不清楚您要创建哪种类型的模型对象。

我建议使用扫帚包来创建估计的数据框并将其绑定在一起。

library(tidyverse)

lm1 <- lm(mpg ~ disp + hp, data = mtcars)

lm2 <- lm(Sepal.Length ~ Petal.Width + Species, data = iris)

bind_rows(
  broom::tidy(lm1),
  broom::tidy(lm2)
) %>% 
  ggplot(aes(x = term, y = estimate)) +
  geom_point() +
  coord_flip()