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

R语言调用predict函数出现异常结果及报错的问题咨询

问题原因与解决办法

核心原因

出现这个问题的本质是你的回归模型lm.fit依赖的变量和传入predict的newdata不匹配,具体分两种常见情况:

  • 构建模型时误使用了多变量公式:比如写成lm(medv ~ ., data = Boston)(用Boston数据集所有变量建模),而非书中要求的单变量回归lm(medv ~ lstat, data = Boston)。此时newdata只提供了lstat,R找不到模型所需的其他变量,就会自动调用原训练数据(共506行)的变量来补全,导致输出数百行结果并报错。
  • 构建模型时未指定data参数:比如写成lm(Boston$medv ~ Boston$lstat),这种情况下模型识别的变量是Boston$lstat而非单纯的lstat。当newdata传入列名为lstat的数据框时,R无法匹配到模型要求的变量,同样会自动使用原训练数据的506行数据进行预测。

解决步骤

  1. 重新构建正确的单变量线性回归模型:
    lm.fit <- lm(medv ~ lstat, data = Boston)
    
  2. 再次执行预测命令:
    predict(lm.fit, data.frame(lstat = c(5,10,15)), interval = "confidence")
    

执行后就能得到你预期的3行拟合结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:38:27