1

次のデータを使用するとします

data(iris)
iris

そして、次の回帰を行います。

linearReg <- lm(Sepal.Length ~ Petal.Length+Petal.Width, data=iris)
linearReg$coefficients

 (Intercept) Petal.Length  Petal.Width 
  4.1905824    0.5417772   -0.3195506

ここで、これらの係数の結果を使用して、データアイリスの150個のobsごとに結果を取得する方法を知りたいと思います。

  • 1行目:4.1905824 + obs1_petal.lenght * 0.5417772 + obs1_petal.width *-0.3195506
  • 2行目:4.1905824 + obs2_petal.lenght * 0.5417772 + obs2_petal.width *-0.3195506
4

2 に答える 2

3

fitted.values次の機能を使用できます。

predictions = fitted.values(linearReg)

150これにより、それぞれの予測を含む長さのベクトルが得られます。たとえば、predictions[1]はに等しい4.1905824 + iris$Petal.Length[1]*0.5417772 + iris$Petal.Width[1]*(-0.3195506)

手動で実行したい場合は、次のようにすることができます。

predictions =  4.1905824 + iris$Petal.Length*0.5417772 + iris$Petal.Width*(-0.3195506)

そして、あなたは同じ価値を得たでしょう。

于 2013-03-09T19:34:40.013 に答える
3

線形モデルオブジェクトで使用fittedすると、各観測値の予測値が取得されます

fitted(linearReg)

または、を使用predictして予測子をプラグインし、モデルから予測を取得することもできます。あなたの場合、元のデータセットをプラグインするだけで済みます。

 predict(linearReg, newdata = iris)

ここでの違いは、predictを使用すると、モデルの構築に使用されたデータセットに含まれていなかった観測値の予測を取得できることです。たとえば、新しいデータの予測を行う場合は、モデルで使用される各予測子の列を含むデータフレームが必要であり、それをpredictのnewdataパラメーターとして使用します。

newdat <- data.frame(Petal.Length = c(1,2,3), Petal.Width = c(2,3,4))
predict(linearReg, newdata = newdat)
#       1        2        3 
#4.093258 4.315485 4.537712 
于 2013-03-09T19:36:08.877 に答える