R中整个数据集的回归线(每组两条回归线)



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

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

我想绘制(使用ggplot2) Y对X,并根据因子变量z制作颜色组。这是我管理的!

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

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

如果您想要的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()

最新更新