2

predict.lm を使用して lm オブジェクトを予測しようとしています。ただし、手動で挿入された係数を使用したいと思います。これを行うために、私は試しました:

model$coefficients <- coeff

(ここで、「coeff」は正しい係数のベクトルです)実際に係数を必要に応じて変更します。それにもかかわらず、私が実行するとき

 predict.lm(model, new.data)

「古い」パラメーターで計算された予測を取得するだけです。predict.lm に新しいものを強制的に使用させる方法はありますか?

Post Scriptum: bin-smooth (regressogram とも呼ばれます) に適合させるためにこれを行う必要があります。さらに、「手動で」(つまり、行列乗算を使用して)予測すると、結果は良好であるため、新しい係数を認識しない 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(...)同じ結果が得られます。

このアプローチには細心の注意を払い、ハッキングされたモデルで何か違うことをするたびに確認します。

predict一般に、メソッドとsimulateメソッドが引数をとればいいのですnewparamsが、一般的にはそうではありません...

于 2016-02-17T14:32:09.127 に答える