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

使用ggplot绘制线性回归预测值时出现‘object 'predicted' not found’错误求助

使用ggplot绘制线性回归预测值时出现‘object 'predicted' not found’错误求助

嘿,我看到你在用ggplot结合线性回归画预测值的时候碰到了这个报错,别慌,这问题其实很好解决,咱一步步来捋清楚:

问题根源

你写的ggplot代码里用到了predicted这个变量,但你的train_data数据集里根本没这个列呀!你虽然训练了线性回归模型,但还没把模型生成的预测值计算出来并加到数据集里,R自然找不到它啦。

解决步骤

1. 先给训练数据集添加预测值列

以你训练的linear_reg1(以relative_humidity为预测因子的模型)为例,用predict()函数生成预测值,然后通过dplyr的mutate()把它加到train_data里:

# 计算linear_reg1的预测值并添加到训练集
train_data <- train_data %>%
  mutate(predicted = predict(linear_reg1, newdata = train_data))

要是你想用其他模型(比如linear_reg2),记得把代码里的linear_reg1换成对应的模型对象就行。

2. 修正后的ggplot代码

现在数据集里已经有predicted列了,直接用你原来的ggplot代码就能正常运行啦:

ggplot(train_data, aes(x= relative_humidity, y= precip))+
  geom_smooth(method='lm', se=FALSE, color='red')+
  geom_segment(aes(xend= relative_humidity, yend = predicted), alpha=.2)+
  geom_point()+
  geom_point(aes(y = predicted), shape=1)+
  theme_bw()

额外小提醒

  • 你代码里有个小疏漏:install.packages('ggplot')应该改成install.packages('ggplot2'),不过你后面也加载了正确的ggplot2包,这个不影响运行,但最好统一起来哦。
  • 还有一行str(subset_data1)是在subset_data1定义之前写的,会报“对象未找到”的警告,要么删掉这行,要么把它移到subset_data1 <- setNames(...)之后。
  • 如果之后要画多个模型的预测图,建议给每个模型的预测值列起不同的名字,比如predicted_rh、predicted_temp,避免混淆。

备注:内容来源于stack exchange,提问作者HAJ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:52:45