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

R语言lm()函数预测结果与手动计算不符问题咨询

问题出在参数名拼写错误!

你在调用predict()函数的时候,把参数名写成了new_data,但R中lm对应的predict函数接受的参数是newdata(没有下划线)。这个拼写错误导致R忽略了你传入的new_df,转而默认返回训练数据train_df的拟合值,而不是用新数据预测。

我们来验证一下:

  • 训练数据里x=2的拟合值是 lin_fit$coefficients[[1]] + lin_fit$coefficients[[2]]*2,计算出来正好是你看到的0.002143689,也就是y_hat[[2]]的值——因为此时y_hat是训练数据的8个拟合值,第二个元素对应x=2的结果,而不是你以为的新数据里x=10的结果。

修正后的代码只需要把参数名改对:

y_hat <- predict(lin_fit, newdata = new_df)

现在再取y_hat[[2]](对应new_df里x=10的行),结果就会和你手动计算的0.007369728一致了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:03:25