S-PLUS mini course の24回目をお届けします。
東京はすっかり暖かな陽気となりましたが、花粉症の方は今がつらい時期でしょうね。幸いにも、私は今年も大丈夫なようです。症状があらわれた方はお大事になさってください。
まず、2つほどお知らせです。
*******************************************************
新しいバージョン、S-PLUS 6.1 for Windows がリリースされました!
詳しくは
http://www.msi.co.jp/splus/
をご覧ください。
お問い合わせは splus-info@ml.msi.co.jp まで、お気軽にどうぞ。
*******************************************************
*******************************************************
以下のタイトル、日程で S-PLUS の特別セミナーを開催します。
4月6日(火)7日(水)
タイトル
S-PLUS GUIで始める調査データ処理の基礎
−アンケートデータの集計と検定−
S-PLUS for Windows の GUI を使って、解析をする前に必要不可欠なデータの編集や集計、解析を行います。
詳細は来週、ホームページhttp://www.msi.co.jp/splus/でお知らせします。
*******************************************************
さて、前回は「回帰分析の説明変数に因子データを取り入れるとどうなるか」を取り上げました。因子データが説明変数になると、ダミー化された行列が作られ、「因子水準 - 1」の係数ができました。デフォルトでは、ダミー化に係数の解釈がちょっと面倒な Helmart
対比が用いられることまでをご説明してきました。
では、ダミー化のときに、もう少し単純な、つまり他のソフトや数量化理論などで使われている 1, 0 で構成される行列にするにはどうしたらよいでしょうか?
contrasts という関数があります。
例えば次のコマンドで、example というデータを作ります。
> example <- factor(c("a", "b", "c"))
> example
[1] a b c
# "a", "b", "c" と表示されないことで、これが因子であることが
# わかります
> levels(example)
[1] "a" "b" "c"
# 因子水準
これを使って、ダミー行列がどのように割り付けられるか見てみましょう。
> contrasts(example)
[,1] [,2]
a -1 -1
b 1 -1
c 0 2
これは例の、Helmart 対比ですね。では、次のコマンドを実行します。
old.op <- options(contrasts=c("contr.treatment", "contr.poly"))
# この時点での、options 設定(例えば、表示桁数など)が old.op
# に保存され、contrasts という options が上の値になります
その上で、先ほどのコマンドを再び、実行します。
> contrasts(example)
b c
a 0 0
b 1 0
c 0 1
おお、今度はいわゆる、1, 0 の行列ですね。
この状態で回帰を実行してみましょう。
> fit3 <- lm(Fuel ~ Weight + Type, data=fuel.frame)
> fit3
Call:
lm(formula = Fuel ~ Weight + Type, data = fuel.frame)
Coefficients:
(Intercept) Weight TypeLarge TypeMedium
TypeSmall
1.672084 0.0008846407 0.04318105 0.1022217 -0.3959501
TypeSporty TypeVan
-0.1904892 0.5297916
Degrees of freedom: 60 total; 53 residual
Residual standard error: 0.3634024
今度は Small 以外の係数が求まっています。Weight の係数や、残差などに関する情報は contrasts を変える前と後で同じことに注意してください(回帰の結果としては同じものです)。
続きはまた次回。
お楽しみに。