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

R语言lm函数对前序回归残差做二次回归时报错的原因

问题原因

lm() 函数要求传入的第一个参数必须为符合R语法规则的回归公式,格式为 因变量 ~ 自变量,你编写的 reg1b <- lm(dat$rent,reg1a$residuals) 不符合该函数的参数要求:lm() 默认第二个参数为数据集对象,你传入残差向量后,系统会尝试把第一个参数 dat$rent 解析为回归公式,自然就会抛出公式无效的报错。

修正方法

你可以任选以下任意一种写法实现需求:

  • 直接在公式中指定自变量为第一次回归的残差:
reg1b <- lm(dat$rent ~ reg1a$residuals)
  • 更规范的写法是先把残差存入原数据集,再调用回归:
# 将第一次回归的残差存入数据集dat
dat$resid_reg1a <- reg1a$residuals
# 传入数据集参数做回归,后续提取结果也更便捷
reg1b <- lm(rent ~ resid_reg1a, data = dat)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:06:08