在R中,警告信息“newdata”只有1行,但是发现有16行变量。

3

我应该使用预测函数来预测当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  

警告信息:'newdata' 只有一行,但发现了 16 行变量

如果有人能看出问题所在,我将非常感激您的帮助。

1个回答

3
您的模型是fjbjor ~ amagn,其中fjbjor是响应变量,amagn是协变量。那么您的newdatadata.frame(fjbjor=5.5)newdata应该用于提供协变量而不是响应变量。 predict仅保留newdata中的协变量列。对于您指定的newdata,这将是NULL。因此,predict将使用内部模型框架进行预测,返回您的拟合值。
警告信息非常清晰。 predictnrow(newdata)确定预期的预测次数,这是1。但是然后发生了上述描述的情况,因此返回了16个拟合值。这种不匹配会产生警告。
看起来您真正想要的模型是:amagn ~ fjbjor

非常感谢 :) 你知道我需要添加什么来找到5.5的95%预测区间吗? - Abc123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接