【问题标题】:Regressions lines for entire dataset in R (two regression lines for each group)R中整个数据集的回归线(每组两条回归线)
【发布时间】:2021-04-28 00:45:36
【问题描述】:

我有一个包含三列的数据框,称之为 (X,Y,Z)。这样:

  • X 是数值变量
  • Y 是一个数值变量
  • Z 是因子变量

我想绘制(使用 ggplot2)Y 和 X 并根据因子变量 Z 制作颜色组。我已经做到了!

现在我需要绘制一些回归线,我知道如何为属于同一类别(即相同因子变量 Z)的每组点绘制回归线。然而,我需要为每个类别绘制 TWO 回归线(可能看起来很奇怪,但在我正在处理的问题中,总是这样做的)。因此,对于每个类别 (Z),我应该有一条由前 n 个元素(属于该类别)计算的回归线和由给定类别中的剩余点组成的第二条回归线,当然这两条线都应该有与它们在给定类别中插入点的颜色相同(即相同的颜色组)。

非常感谢任何帮助!提前谢谢你

【问题讨论】:

  • 嗨米格尔。您能否将您的数据的 sn-p 添加为 dput 以及您迄今为止尝试过的代码?请参阅how to make a minimal reproducible example 将您的数据类型dput(NAME_OF_DATASET) 发布到控制台,并将以structure(.... 开头的输出复制并粘贴到您的帖子中。

标签: r ggplot2 regression


【解决方案1】:

如果您想要的 x 的两个范围是独立的并且您想要生成 4 条单独的回归线(我对您的问题的理解),那么您可以指定要在 2 次调用 geom_smooth() 中使用的数据。 在这里,head()tail() 表示您想要回归的 x 值,假设这些点在 df 中排序。如果它们未排序,则需要先执行此操作(例如,通过 x 轴上的值调用 arrange())。

library(tidyverse)

# some test data with 3 variables: a random response (y), a sequence (x), and a factor (z).
df<-tibble(x = seq(0.5, 25, 0.5),
           y = rnorm(50),
           z = sample(x = c("A", "B"), replace = T, size = 50))

# a plot with each factor of z coloured and 2 regression lines for each factor
ggplot(df, aes(x, y, colour = z))+
  geom_point()+
  geom_smooth(data = ~head(df, 30), method = "lm", se = F)+
  geom_smooth(data = ~tail(df ,20), method = "lm", se = F)+
  theme_minimal()

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 2016-05-18
    • 2016-03-01
    • 2016-11-07
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 2016-02-23
    • 2013-02-11
    相关资源
    最近更新 更多