stat_smooth 中的不同行为 lm
Different behaviour lm in stat_smooth
在 问题中,有人问是否可以根据线性回归线更改 ggplot2
图中的颜色。
建议的解决方案有效,图上方和下方的点颜色不同。
library(ggplot2)
set.seed(2015)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
# Fit linear regression
l = lm(y ~ x, data = df)
# Make new group variable based on residuals
df$group = NA
df$group[which(l$residuals >= 0)] = "above"
df$group[which(l$residuals < 0)] = "below"
# Make the plot
ggplot(df, aes(x,y)) +
geom_point(aes(colour = group)) +
geom_smooth(method = "lm", formula = y ~ x)
但我想对 y-1
进行回归。正如 this 问题中所问。
# Fit linear regression
l = lm(y - 1 ~ x, data = df)
# Make new group variable based on residuals
df$group = NA
df$group[which(l$residuals >= 0)] = "above"
df$group[which(l$residuals < 0)] = "below"
# Make the plot
ggplot(df, aes(x,y)) +
geom_point(aes(colour = group)) +
geom_smooth(method = "lm", formula = y - 1 ~ x)
这不是我所期望的。在我看来 stat_smooth
做了预期的事情。 lm
但是 y ~ x
和 y - 1 ~ x
的结果相同
我在这里错过了什么?
如果您想根据线所在的位置为点着色,您可以尝试将实际值与预测值进行比较,而不是使用残差
df$group = NA
df$group[df$y>predict(l)] = "above"
df$group[df$y<predict(l)] = "below"
在 ggplot2
图中的颜色。
建议的解决方案有效,图上方和下方的点颜色不同。
library(ggplot2)
set.seed(2015)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
# Fit linear regression
l = lm(y ~ x, data = df)
# Make new group variable based on residuals
df$group = NA
df$group[which(l$residuals >= 0)] = "above"
df$group[which(l$residuals < 0)] = "below"
# Make the plot
ggplot(df, aes(x,y)) +
geom_point(aes(colour = group)) +
geom_smooth(method = "lm", formula = y ~ x)
但我想对 y-1
进行回归。正如 this 问题中所问。
# Fit linear regression
l = lm(y - 1 ~ x, data = df)
# Make new group variable based on residuals
df$group = NA
df$group[which(l$residuals >= 0)] = "above"
df$group[which(l$residuals < 0)] = "below"
# Make the plot
ggplot(df, aes(x,y)) +
geom_point(aes(colour = group)) +
geom_smooth(method = "lm", formula = y - 1 ~ x)
这不是我所期望的。在我看来 stat_smooth
做了预期的事情。 lm
但是 y ~ x
和 y - 1 ~ x
我在这里错过了什么?
如果您想根据线所在的位置为点着色,您可以尝试将实际值与预测值进行比较,而不是使用残差
df$group = NA
df$group[df$y>predict(l)] = "above"
df$group[df$y<predict(l)] = "below"