S-PLUS mini course の30回目をお届けします。
今年も、データ・ウェアハウス・Expo が開催されます。http://www.dwh-crm.jp/
株式会社数理システムは、S-PLUS、データマイニングソフトウエア
Visual Mining Studio
などの製品を出展しておりますので、ぜひお越しください。招待券をお持ちでない方は
splus-info@ml.msi.co.jpにご請求ください。
7/8(木) 13:30 ~ 14:30
7/9(金) 13:30 ~ 14:30
には、S-PLUS と Visual Mining Studio の PRセミナーも行いますので、こちらも併せてお越しいただけますと幸いに存じます。
前回は関数 stepwise を利用して、RSS(residuals sum of square,残差平方和)が小さい変数の組み合わせを選ぶ方法をご紹介しました。
手軽で便利な方法ですが
という弱点があります。
では、もう一方の関数 step ではどうでしょうか?
1. はモデルの自由度を考慮した統計量 AIC 基準を用いてモデル同士を比較しますから、説明変数の数が違うものも比較可能です。
2. は与えられる変数としては、まったく lm と同じです。
では、早速、fuel.frame を使って、2次の項まで含む線形回帰を行い、step で最適な変数を調べてみましょう。
options(contrasts=c("contr.treatment", "contr.poly"))
# ダミー行列を分かりやすいように、通常の1,0 にかえる
fitall <- lm(Fuel ~(Weight + Disp. + Type)^2, data=fuel.frame)
# Weight, Disp. Type(因子)とその2次の交互作用項までを含む回帰を行う
fits <- step(fitall)
# 変数選択
と、手順はいたって簡単です。すると、step は3つの変数の2次モデルから、モデルの増減を繰り返しながら、最適のモデルを探します。そのときに、変数の増減候補に統計量 Cp を用い、モデルが改善されるかどうかの判定には AIC を用います。結果、総当りの計算をするわけではありませんが、効率よく必要な変数の選択を行うことができるわけです。
次回は step のこまごました設定についてご説明したいと思います。お楽しみに!