在 ggplot2 中绘制一个 nlme 对象
Plotting an nlme object in ggplot2
我使用 nlme 包计算了一个线性混合模型。我正在评估心理治疗,并使用治疗条件和测量点作为预测指标。我使用 emmans 包进行了 post-hoc 比较。到目前为止一切顺利,我期待着完成我的论文。只剩下一个问题了。我真的很不擅长策划。我想为每组的四个测量点绘制均值。 emmeans 中的 emmip 函数执行此操作,但我对结果不太满意。我使用以下代码生成结果:
emmip(HLM_IPANAT_pos, Gruppe~TP, CIs=TRUE) + theme_bw() + labs(x = "Zeit", y = "IPANAT-PA")
我不喜欢置信区间的呈现方式。我更喜欢带有 "normal" 置信条的线条,如下图所示,取自 Ireland 等人。 (2017)。我尝试在 excel 中这样做,但没有找到如何为每一行整合单独的置信区间。所以我想知道是否有可能使用 ggplot2 来做到这一点。但是,我不知道如何在 ggplot 中整合使用 emmeans 获得的值。正如我所说,我真的不知道密谋。有人知道怎么做吗?
我认为这是可能的。您可以使用 emmeans
获取 ggplot2
的值,而不是使用 emmip
来创建绘图。使用 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 package (v0.3.0)
于 2019-12-29 创建
我使用 nlme 包计算了一个线性混合模型。我正在评估心理治疗,并使用治疗条件和测量点作为预测指标。我使用 emmans 包进行了 post-hoc 比较。到目前为止一切顺利,我期待着完成我的论文。只剩下一个问题了。我真的很不擅长策划。我想为每组的四个测量点绘制均值。 emmeans 中的 emmip 函数执行此操作,但我对结果不太满意。我使用以下代码生成结果:
emmip(HLM_IPANAT_pos, Gruppe~TP, CIs=TRUE) + theme_bw() + labs(x = "Zeit", y = "IPANAT-PA")
我不喜欢置信区间的呈现方式。我更喜欢带有 "normal" 置信条的线条,如下图所示,取自 Ireland 等人。 (2017)。我尝试在 excel 中这样做,但没有找到如何为每一行整合单独的置信区间。所以我想知道是否有可能使用 ggplot2 来做到这一点。但是,我不知道如何在 ggplot 中整合使用 emmeans 获得的值。正如我所说,我真的不知道密谋。有人知道怎么做吗?
我认为这是可能的。您可以使用 emmeans
获取 ggplot2
的值,而不是使用 emmip
来创建绘图。使用 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 package (v0.3.0)
于 2019-12-29 创建