R语言线性回归predict函数输出过多问题求助
问题原因
你在lm()中直接使用Regresjon$列名的写法,会让模型将变量识别为Regresjon$Age和Regresjon$Month,而非简单的Age和Month。当调用predict()时,新数据框new中不存在这类带数据集前缀的变量,predict()会自动回退到原始数据集的所有行进行预测,因此输出了数千条结果。
解决方法
修改lm()的写法,通过data参数绑定数据集,公式中直接使用数据框内的列名:
# 正确构建模型:用data参数指定数据集,公式仅写列名 model <- lm(Days ~ Age + Month, data = Regresjon) summary(model) new <- data.frame(Age = c(50), Month = c(250)) predict(model, newdata = new)
调整后模型会正确识别Age和Month作为变量名,predict()时会匹配新数据框的对应列,最终仅输出一条预测结果。
内容的提问来源于stack exchange,提问作者Thomasiko
相关产品推荐
相关产品推荐

