You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ggplot2为何能从lm对象中识别.resid与.fitted并完成绘图?

解答

这是因为ggplot2在接收lm这类模型对象时,会自动调用ggplot2::fortify()函数,帮你把模型对象转换成包含统计量的数据框:

  • .fitted对应原模型的fitted.values属性,也就是拟合值;
  • .resid对应原模型的residuals属性,也就是残差。

你直接查看mod$.resid和`mod$`.fitted得到NULL,是因为原lm对象里并没有这两个带点前缀的属性——它们是fortify()处理后生成的标准化列名,专门适配ggplot2的语法。

你可以直接运行fortify(mod)查看转换后的数据框,里面会明确包含.fitted、.resid以及其他模型相关列,这就是ggplot2绘图时实际使用的数据来源。

简单来说,ggplot2后台帮你完成了类似broom::augment()的模型转换工作,所以不用手动处理也能直接绘图。

内容的提问来源于stack exchange,提问作者jtr13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:42:38