如何在Base R散点图中绘制回归标准误差的阴影区域?
在Base R散点图中添加回归标准误差阴影带(以iris数据集为例)
你已经掌握了用ggplot绘制带标准误差阴影的回归线,以及在Base R中添加回归线的方法,要在Base R中实现类似ggplot的阴影误差带,可通过以下步骤完成:
1. 绘制基础散点图并拟合回归模型
# 绘制散点图 plot(iris$Sepal.Width, iris$Sepal.Length, main = "Sepal Length vs Width with Regression & SE Band", xlab = "Sepal Width", ylab = "Sepal Length") # 拟合线性回归模型 fit <- lm(Sepal.Length ~ Sepal.Width, data = iris)
2. 生成连续x序列并计算置信区间
为了让阴影带更平滑,先生成覆盖原始x范围的连续序列,再用模型预测拟合值及95%置信区间(与ggplot默认的se=T逻辑一致):
# 生成连续的x值序列 x_seq <- seq(min(iris$Sepal.Width), max(iris$Sepal.Width), length.out = 100) # 预测拟合值及95%置信区间 pred <- predict(fit, newdata = data.frame(Sepal.Width = x_seq), interval = "confidence")
3. 绘制阴影误差带和回归线
用polygon()函数绘制上下置信区间之间的半透明阴影,再叠加回归线:
# 绘制阴影误差带(半透明灰色) polygon(c(x_seq, rev(x_seq)), c(pred[, "lwr"], rev(pred[, "upr"])), col = adjustcolor("gray", alpha.f = 0.3), border = NA) # 添加红色回归线 abline(fit, col = "red", lwd = 2)
关于你手动计算的标准误差说明
你手动计算的se是残差标准误差,代表模型整体的误差估计;而ggplot中geom_smooth(method="lm", se=T)展示的是拟合值的95%置信区间,反映每个x对应拟合值的不确定性范围。如果需要基于残差标准误差构建区间,可结合t分布分位数计算,但通常我们更关注拟合值的置信区间,即上述代码的实现逻辑。
内容的提问来源于stack exchange,提问作者Shawn Hemelstrand
相关产品推荐
相关产品推荐

