繁体   English   中英

在 ggplot2 中绘制 nlme 对象

[英]Plotting an nlme object in ggplot2

我使用 nlme 包计算了一个线性混合模型。 我正在评估心理治疗并使用治疗条件和测量点作为预测指标。 我使用 emmans 包进行了事后比较。 到目前为止一切顺利,一切顺利,我期待着完成我的论文。 只剩下一个问题了。 我在策划方面真的很糟糕。 我想为每组的四个测量点绘制emmeans。 emmeans 中的 emmip 函数就是这样做的,但我对结果并不满意。 我使用以下代码生成结果:

emmip(HLM_IPANAT_pos, Gruppe~TP, CIs=TRUE) + theme_bw() + labs(x = "Zeit", y = "IPANAT-PA")

在此处输入图片说明

我不喜欢置信区间的呈现方式。 我更喜欢带有“正常”置信条的线条,如下所示,取自爱尔兰等人。 (2017)。 我试图在 excel 中做到这一点,但没有找到如何为每条线整合单独的置信区间。 所以我想知道是否有可能使用 ggplot2 来做到这一点。 但是,我不知道如何整合我在 ggplot 中使用 emmeans 获得的值。 正如我所说,我真的不知道绘图。 有人知道怎么做吗? 该图取自爱尔兰等人 (2017)。我想创建一个这样的情节

我认为这是可能的。 而不是使用emmip创建的情节,你可以使用emmeans得到的值ggplot2 使用ggplot2和数据,您可能能够更好地控制绘图的格式。 由于我没有你的数据,我只能建议几个步骤。
首先,在拟合模型HLM_IPANAT_pos ,使用emmeans获取值。 其次, broom::tidy这个对象。 三、 ggplot上面的broom::tidy对象。

mtcars数据为例:

library(emmeans)
# mtcars data
mtcars$cyl = as.factor(mtcars$cyl)
# Model
mymodel <- lm(mpg ~ cyl * am, data = mtcars)

# using ggplot2 
library(tidyverse)
broom::tidy(emmeans(mymodel,  ~ am | cyl)) %>% 
  mutate(cyl_x = as.numeric(as.character(cyl)) + 0.1*am) %>% 
  ggplot(aes(x = cyl_x, y = estimate, color = as.factor(am))) + 
  geom_point() + 
  geom_line() +
  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.1)

reprex 包(v0.3.0) 于 2019 年 12 月 29 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM