R ggplot2散点图:为(回归)几何平滑线的偏差级别添加颜色

R ggplot2散点图:为(回归)几何平滑线的偏差级别添加颜色,r,ggplot2,colors,scatter-plot,R,Ggplot2,Colors,Scatter Plot,我试图创建一个带有ggplot2的散点图(两个连续变量),其中有一条回归线。我的小数据集(年平均值)的大多数数据点都在回归线上或接近回归线,有些观测值放得更远一些。是否可以根据观测值与回归线之间的距离,对散点图上的观测值进行颜色编码 到目前为止,我自己为变量手动创建了颜色值组,但这看起来有点偏颇。如果可能的话,我想要一些自动的 ggplot(data_mean, aes(x= policy1, y= policy2 ))+ geom_point(aes(colour = group), si

我试图创建一个带有ggplot2的散点图(两个连续变量),其中有一条回归线。我的小数据集(年平均值)的大多数数据点都在回归线上或接近回归线,有些观测值放得更远一些。是否可以根据观测值与回归线之间的距离,对散点图上的观测值进行颜色编码

到目前为止,我自己为变量手动创建了颜色值组,但这看起来有点偏颇。如果可能的话,我想要一些自动的

ggplot(data_mean, aes(x= policy1, y= policy2 ))+
  geom_point(aes(colour = group), size=4) +geom_text_repel(aes(label=iso),hjust=0, vjust=0) + 
  geom_smooth(method=lm, se=FALSE, size=0.1) +
  scale_color_manual(name = "Country Categories", # or name = element_blank()
 values=colors) +
theme(legend.position="bottom",
       legend.title=element_blank()) 

是否可以根据观测值与回归线之间的距离,对散点图上的观测值进行颜色编码?谢谢大家!

定义哪些是异常值有点困难,这实际上取决于您拥有的数据。您可以尝试下面的方法,在这里我计算线性回归的残差,并将超出2*sd(残差)的定义为异常值

首先是一些看起来像您的数据的东西,在policy2中引入了一些错误

set.seed(888)
data_mean=data.frame(policy1=1:20,policy2=1:20 + rnbinom(20,mu=2,size=2))
data_mean$residuals = abs(lm(policy2~policy1,data=data_mean)$residuals)
# here we define the outliers to be those more than 2 standard error of residuals
data_mean$group = data_mean$residuals > 2*sd(data_mean$residuals)
data_mean$iso = letters[1:20]
然后我们绘制:

ggplot(data_mean, aes(x= policy1, y= policy2))+
geom_point(aes(colour = group), size=4) +
geom_text_repel(aes(label=iso),hjust=0, vjust=0) + 
geom_smooth(method=lm, se=FALSE, size=0.1) +
theme(legend.position="bottom",
       legend.title=element_blank()) 

一种替代方法实际上是使用连续刻度:

ggplot(data_mean, aes(x= policy1, y= policy2))+
  geom_point(aes(colour = residuals), size=4) +
geom_text_repel(aes(label=iso),hjust=0, vjust=0) + 
geom_smooth(method=lm, se=FALSE, size=0.1) +
theme(legend.position="bottom",
       legend.title=element_blank()) +
  scale_color_viridis()


同样,如果您共享一些数据,并详细说明如何根据残差为点着色,那将非常好。

请也共享您的数据,或者共享具有相同特征的玩具数据集,这样就可以测试适当的解决方案。非常感谢您在我上传数据之前向我展示这一点,太好了。连续音阶正是我想要的。