如何使用R的ggplot绘制固定效应回归线上各数据点的残差距离
实现方案
完全可以通过ggplot实现该需求,核心是用geom_segment()图层绘制每个观测点到回归线的残差线段即可。
实现逻辑
- 残差为观测值
progenyMean与回归线上对应预测值的差值,可通过你给出的回归公式y=71.09+4.64564x直接计算每个点的预测值 - 用
geom_segment()绘制从观测点(damMean, progenyMean)到回归线上对应点(damMean, 71.09 + 4.64564*damMean)的线段,即可直观展示残差距离
完整可运行代码
# 加载所需包 library(plm) library(ggplot2) # 构建面板数据 data <- data.frame( ID = c(1,1,1,1,2,2,3,3,3), year = c(1,2,3,4,1,2,1,2,3), progenyMean = c(70,68,72,69,76,73,72,75,71), damMean = c(69,69,72,68,75,80,74,67,69) ) # 拟合固定效应模型(也可直接从该模型提取系数,无需手动输入) fixed <- plm(progenyMean ~ damMean, data, model= "within", index = c("ID","year")) # 计算每个点的回归预测值 data$pred_y <- 71.09 + 4.64564 * data$damMean # 绘制可视化图形 ggplot(data, aes(x = damMean, y = progenyMean)) + geom_point(size = 2) + # 绘制残差线段,这里设置为红色半透明避免遮挡 geom_segment(aes(xend = damMean, yend = pred_y), color = "red", alpha = 0.6, linewidth = 0.8) + # 绘制蓝色固定效应回归线 geom_abline(slope = 4.64564, intercept = 71.09, color = "blue", linewidth = 1) + theme_bw()
自定义调整说明
- 若需要绘制垂直于回归线的欧氏距离线段,只需修改
geom_segment的xend和yend参数,根据回归线斜率计算垂足坐标即可 - 可自行调整线段、散点、回归线的颜色、粗细、透明度参数,匹配你需要的样式
内容的提问来源于stack exchange,提问作者codemachino
相关产品推荐
相关产品推荐

