S-PLUS mini course の32回目をお届けします。
東京では暑さもひと段落したようですが、皆様、お変わりございませんか?
まず最初に、株式会社数理システムが開催していますS-PLUSセミナーについてのお知らせです。
**************************************************************************
長らく、数理システムでは
と、セミナーを開催してまいりましたが、グラフィカル・ユーザー・インターフェースでのコースを増やしてほしいというお客様からのご要望にお答えしまして、S-PLUS for Windows 応用コース(仮)を10月より、開催することといたしました。詳しい内容や日程につきましては、来週始めに数理システムのS-PLUS ホームページに掲載予定でおります。
http://www.msi.co.jp/splus/
ぜひ、ご参加ください!
**************************************************************************
さて、前回は、step を使った説明変数の選択について、ご説明してまいりました。簡単にまとめますと、「step は高次のモデルから、AICを使いながら、最適のモデルを自動的に探す」ということになります。ここで「自動的」というのが曲者ですね。
自分がいくら望んで入ってほしい変数があっても、「AICが小さくならないから」という理由でばっさり切り捨てられてしまう可能性があります。こういう愛着(?)がある変数を絶対残したいときはどうすればよいでしょうか?
前回の例:
fitall <- lm(Fuel ~ (Weight + Disp. + Type)^2, data = fuel.frame)
step(fitall)
とすると、変数 Weight は落とされてしまいますが、これを残したいという場合は
fits <- step(fitall, scope=list(lower= ~ Weight))
とします。引数 scope は必要に応じて、要素 upper と lower を持つリストにすることができます。upper はモデル式の上限、lower
は下限を指定することができ、上の式は、変数 Weight を絶対落とさないでね、という意味になります。
全部のモデル式を試す必要がなく、自分が調べたいモデル式だけを指定することも可能です。詳しくは、step のヘルプなどをご覧ください。
以上で step による変数選択はおしまいです。
今度は、関数 tree による変数選択(の可能性)をご紹介します。
例えば、同じサンプルデータセット fuel.frame を用いて
tr <- tree(Fuel ~ Disp. + Weight + Type, data=fuel.frame)
plot(tr)
text(tr)
としたら、どんなグラフになりますか?
グラフの見方、どうしてこんなグラフができたのか、につきましては次回の mini course でご説明いたします。
お楽しみに!