簡體   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