使用 ggplot2 的 geom_smooth() 进行线性回归,x 轴上有分类变量

Linear regression with geom_smooth() from ggplot2 with categorical variable on the x-axis

提问人:empetrum 提问时间:10/30/2023 更新时间:10/30/2023 访问量:40

问:

我尝试将线性回归线绘制为散点图,并在 x 轴上具有有序分类变量。但是,我的代码没有绘制任何线条(也没有警告或错误)。是否可以为分类 x 轴绘制回归线?可能我必须指定 的级别顺序?明确设置级别无济于事。group

# libraries
library(ggplot2)

# dummy data
dat <- data.frame(group = as.factor(c(rep("A", 10), rep("B", 10))),
                  variable = c(rnorm(10, mean = 3), rnorm(10, mean = 12)))

# specify order of levels explicitly
dat$group <- factor(dat$group, levels = c("A", "B"))

# plot
ggplot(dat, aes(x = group, y = variable)) +
  geom_point() +
  geom_smooth(method = "lm")

输出:

enter image description here

r ggplot2 lm

评论


答:

2赞 jdobres 10/30/2023 #1

geom_smooth只能对连续变量进行平滑处理,并尝试为离散变量的每个级别创建平滑。当离散变量映射到 x 轴或 y 轴时,这通常不起作用。但是我们可以通过指定 来解决 ggplot 的默认行为,这将覆盖默认的分组行为。geom_smooth(aes(group = 1))

ggplot(dat, aes(x = group, y = variable)) +
  geom_point() +
  geom_smooth(aes(group = 1), method = "lm")

enter image description here