在ggplot2中,如何为多因素数据绘制95%置信区间?

huangapple go评论65阅读模式
英文:

How to plot 95% confidence intervals for multiple factor data in ggplot2 R?

问题

以下是翻译好的代码部分:

df <- data.frame(
  yaxis = rnorm(120, 5, 1),
  xaxis = rep(c("A", "B", "C", "D", "E", "F"), times = 20),
  factor = rep(c("1", "2", "3", "4", "5", "6"), each = 20)
)

df$xaxis <- as.factor(df$xaxis)
df$factor <- as.factor(df$factor)

library(lmerTest)
mod <- lmer(yaxis ~ xaxis + (1|factor), df)
mod.fit <- predictInterval(mod, df)
df.fit <- cbind(df, mod.fit)

ggplot(df.fit, aes(x = xaxis, y = yaxis, color = xaxis, group = xaxis)) +
  geom_point() +
  theme_classic() +
  geom_errorbar(aes(min = lwr, max = upr), color = "black", width = 0.3) +
  geom_point(aes(y = mean(fit), x = xaxis), position = position_dodge(width = 0.25), color = "black", size = 5)

请告诉我,您还有其他需要吗?

英文:
df &lt;- data.frame (yaxis = rnorm(120,5,1),
                  xaxis = rep(c(&quot;A&quot;,&quot;B&quot;,&quot;C&quot;,&quot;D&quot;,&quot;E&quot;, &quot;F&quot;), times = 20),
                  factor = rep(c(&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;, &quot;6&quot;), each = 20))

df$xaxis &lt;- as.factor(df$xaxis)
df$factor &lt;- as.factor(df$factor )

library(lmerTest)
mod &lt;- lmer(yaxis ~  xaxis + (1|factor), df)
mod.fit &lt;- predictInterval(mod, df) 
df.fit &lt;- cbind(df, mod.fit)

ggplot(df.fit, aes(x = xaxis, y  = yaxis, color = xaxis, group = xaxis)) + 
 geom_point() + 
 theme_classic() + 
 geom_errorbar(aes(min = lwr, max = upr), color = &quot;black&quot;, width = 0.3)  + 
 geom_point(aes(y = mean(fit), x = xaxis), position = position_dodge(width = 0.25), color = &quot;black&quot;,size = 5) 

I want to plot the raw data with the predicted 95% CI and means. I tried the above but I get multiple confidence intervals for the fitted data. How can I correct it?

在ggplot2中,如何为多因素数据绘制95%置信区间?

答案1

得分: 2

You can extract the fixed effect from your model using summary(mod)$coefficients. This allows you to get the prediction for each x-axis value and calculate the 95% confidence interval of that prediction using simple arithmetic.

英文:

You can extract the fixed effect from your model using summary(mod)$coefficients. This allows you to get the prediction for each x axis value and calculate the 95% confidence interval of that prediction using simple arithmetic.

library(tidyverse)
library(lme4)

mod &lt;- lmer(yaxis ~  xaxis + (1|factor) + 0, df)

summary_df &lt;- summary(mod)$coefficients %&gt;% 
  as_tibble() %&gt;% 
  mutate(xaxis = LETTERS[1:6]) %&gt;%
  rename(yaxis = Estimate) %&gt;%
  mutate(ymin = yaxis - 1.96 * `Std. Error`,
         ymax = yaxis + 1.96 * `Std. Error`)

ggplot(df, aes(x = xaxis, y  = yaxis, color = xaxis, group = xaxis)) + 
  geom_jitter(width = 0.1) +
  geom_errorbar(aes(ymin = ymin, ymax = ymax), data = summary_df,
                width = 0.4, linewidth = 1, alpha = 0.4) +
  geom_point(color = &#39;black&#39;, size = 2, data = summary_df) +
  theme_classic() +
  scale_color_brewer(palette = &#39;Dark2&#39;)

在ggplot2中,如何为多因素数据绘制95%置信区间?

huangapple
  • 本文由 发表于 2023年5月7日 21:39:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/76194274.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定