2

我正在尝试使用 predict.lm 预测一个 lm 对象。但是,我想使用手动插入的系数。为此,我尝试了:

model$coefficients <- coeff

(其中“coeff”是正确系数的向量)确实可以根据需要修改系数。不过,当我执行

 predict.lm(model, new.data)

我只是得到用“旧”参数计算的预测。有没有办法强制 predict.lm 使用新的?

Post Scriptum:我需要这样做以适应 bin-smooth(也称为回归图)。此外,当我“手动”预测(即使用矩阵乘法)时,结果很好,因此我很确定问题在于 predict.lm 没有识别我的新系数。

在此先感谢您的帮助!

4

1 回答 1

1

破解$coefficients元素似乎确实有效。你能展示什么不适合你吗?

dd <- data.frame(x=1:5,y=1:5)
m1 <- lm(y~x,dd)
m1$coefficients <- c(-2,1)
m1
## Call:
## lm(formula = y ~ x, data = dd)
## 
## Coefficients:
## [1]  -2   1

predict(m1,newdata=data.frame(x=7))  ## 5  = -2+1*7

predict.lm(...)给出相同的结果。

我会非常小心地使用这种方法,每次你对被黑的模型做不同的事情时都会检查。

一般来说,如果predictsimulate方法有一个newparams参数会很好,但它们通常不会......

于 2016-02-17T14:32:09.127 回答