我假设使用 predict 函数来预测 fjbjor 何时为 5.5 并且我总是收到此警告消息并且我尝试了很多方法但它总是出现所以有没有人可以看到我在这里做错了什么

这是我的代码

fit.lm <- lm(fjbjor~amagn, data=bjor)
summary(fit.lm)

new.bjor<- data.frame(fjbjor=5.5)
predict(fit.lm,new.bjor)

这出来了
 1        2        3        4        5        6        7        8        9       10       11
5.981287 2.864521 9.988559 5.758661 4.645530 2.419269 4.645530 5.313409 6.871792 3.309773 4.200278

      12       13       14       15       16
3.755026 5.981287 5.536035 1.974016 3.755026



如果有人能看到出了什么问题,我将非常感谢您的帮助。

最佳答案

您的模型是 fjbjor ~ amagn ,其中 fjbjor 是响应, amagn 是协变量。那么你的 newdatadata.frame(fjbjor=5.5)
newdata 应该用于提供协变量而不是响应。 predict 将只保留 newdata 中的协变量列。对于您指定的 newdata ,这将是 NULL 。因此,predict 将使用内部模型框架进行预测,它会返回拟合值。

警告信息相当清楚。 predict 确定来自 nrow(newdata) 的预期预测数量,即 1。但是我上面描述的情况发生了,因此返回了 16 个拟合值。这种不匹配会产生警告。

看起来您真正想要的模型是: amagn ~ fjbjor

关于r - 警告消息 'newdata' 有 1 行,但发现的变量在 R 中有 16 行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39195192/

10-12 17:32