S-PLUS mini course の27回目をお届けします。
ゴールデンウィークも終わり、すっかり気が抜けてしまいました。
皆様はいかがお過ごしでしょうか?
さて、前回2回ほどで因子データに関するお話をしましたが、今回はもう一度回帰に戻り、予測方法をご紹介したいと思います。
以前の mini course(2004/1/27 の22回)で、計算された回帰結果から、新しいデータを使って予測を行うには
fit2 <- lm(Fuel ~ Weight, data=fuel.frame)
predict(fit2, new=data.frame(Weight=2000))
new=データ名でもOK でした。上のコマンドでは、Weight=2000 の車の Fuel を求めました。では、このときに回帰に因子データがあるとどうなるか、見てみましょう。
もう一度、因子だけの説明変数を持つ回帰をします。
options(contrasts=c("contr.treatment", "contr.poly"))
fit4 <- lm(Fuel ~ Type, data=fuel.frame)
ちなみに、このとき定数項を持たない回帰をすると、いわゆる数量化理論のI類になりますが、
fit5 <- lm(Fuel ~ Type - 1, data=fuel.frame)
と、-1 を付けます。
coef(fit4)
coef(fit5)
として、結果を比べてみてください。
さて、この fit4 の結果を利用して、新しいデータから予測を行いますが、前のコマンド同様、関数 predict を引数 new を指定して呼び出します。その前に
fuel.frame$Type[c(1,15,25)]
[1] Small Sporty Compact
Levels (first 5 out of 6):
[1] "Compact" "Large" "Medium" "Small" "Sporty"
車の1,15,25番目はそれぞれ Small, Sporty, Compact なので2通りの方法を用いて、予測をします。
predict(fit4, new=fuel.frame[c(1,15,25),])
Eagle Summit 4 Dodge Daytona Chevrolet Beretta 4
3.27338
3.957606
4.167655
# 元のデータの1,5,25 番目を用いて予測
predict(fit4, new=data.frame(Type=c("Small", "Sporty", "Compact")))
1
2 3
3.27338 3.957606 4.167655
# 新しいデータ Small, Sporty, Compact を作って予測
表示方法が違っていても、結果は同じになります。
次回は回帰同士の比較方法をご紹介しましょう。
お楽しみに。