如何用ggplot/tidyverse绘制留一法回归直线
用ggplot绘制含逐一删除观测值的回归直线
我希望用ggplot绘制一条回归直线,同时展示依次省略每个观测值后得到的回归直线。以下是使用anscombe数据集绘制的基础图表代码:
data(anscombe) ggplot(anscombe, aes(x = x2, y = y2)) + geom_point(color = col, size = 4) + geom_smooth(method = "lm", formula = y ~ x, se = FALSE, color = "red", linewidth = 1.5) + labs(title = "Dataset 1" ) + theme_bw(base_size = 14)
手动逐个添加删去单观测值的回归直线操作太繁琐,我推测存在基于tidyverse(大概率用purrr)的简化方案,但还没想出来。手动实现的代码示例如下:
ggplot(anscombe, aes(x = x2, y = y2)) + geom_point(color = col, size = 4) + geom_smooth(data = anscombe |> slice(-1), method = "lm", formula = y ~ x, se = FALSE, color = "grey") + geom_smooth(data = anscombe |> slice(-2), method = "lm", formula = y ~ x, se = FALSE, color = "grey") + # ... geom_smooth(data = anscombe |> slice(-10), method = "lm", formula = y ~ x, se = FALSE, color = "grey") + geom_smooth(data = anscombe |> slice(-11), method = "lm", formula = y ~ x, se = FALSE, color = "grey") + geom_smooth(method = "lm", formula = y ~ x, se = FALSE, color = "red", linewidth = 1.5) + labs(title = "Dataset 2" ) + theme_bw(base_size = 14)
内容的提问来源于stack exchange,提问作者user101089
相关产品推荐
相关产品推荐

