reg_ss <- predict(lm(stem_d~stand_id*yr,ss))
fitted.values(reg_ss)
#Error: $ operator is invalid for atomic vectors
我已使用fitted()
和fitted.values()
尝试此操作并收到相同的错误。
stand_id
是300+级别的因素,yr
是1-19的整数,但两者都是数字。
我有关于树干密度的数据,每2 - 3年收集一次,持续20年。我想进行线性回归并预测采样之间年份的林分密度,即使用第1年和第3年的数据来预测第2年的茎密度。
有关如何使用fitted()
或任何其他方法获取预测值的任何建议将不胜感激。我怀疑它与分配给类别的虚拟变量有关,但似乎无法找到解决方案的任何信息。
提前致谢!
答案 0 :(得分:2)
如果您想要拟合值,则不应首先调用predict()
。
reg_ss <- lm(stem_d~stand_id*yr,ss)
predict(reg_ss)
fitted(reg_ss)
当您没有传递新数据进行预测时,它基本上与fitted
做同样的事情,因此您可以获得基本相同的值。 fitted
和predict
都会返回一个简单的命名向量。您不能在命名向量上使用fitted
(因此错误消息)。
如果要预测未观察到的值,则需要将newdata=
参数传递给predict()
。您应该使用名为&#34; stand_id&#34;的列传入data.frame。和#34;年龄&#34;就像ss
一样。确保也匹配因子水平。