[(株)数理システム]

(S-PLUS) S-PLUS mini course 第29回


S-PLUS mini course の29回目をお届けします。

まず最初に、関西圏のユーザーの皆様にお知らせです。7/1(木)、2(金)に S-PLUS の紹介セミナーと定例トレーニングを大阪で開催いたします。この機会にどうぞご参加のほどお願い申し上げます。定例トレーニングはPCの都合で、締め切り間近となっております。ご参加をお考えの方はお早めにお申し込みください。

詳しくは S-PLUS のウェッブページトップをご覧ください。 http://www.msi.co.jp/splus/

さて、前回は目的変数を同じくする回帰同士の比較についてご説明 しました。一言でいうと、変数選択ということです。

S-PLUS の回帰で変数選択を行うには、大きく2通りの方法があります。

です。それぞれのやり方を見てみますと、

・関数 stepwise

stepwise(x=説明変数だけのデータ, y=目的変数だけのデータ)

と実行します。例えば、データ data の y 列を目的変数とし、x1, x2, x3, x4, x5 という5列を説明変数の候補とした、総当りの組み合わせの中から変数選択するには

stepwise(x=data[, c("x1", "x2", "x3", "x4", "x5")], y=data[, "y"],method="exhaustive")
# データを列の名前で選択している

とします。method="exhaustive" あるいは method ="ex" で総当りを指定しています。

この関数の結果、どの変数かが選ばれているということはなく、

からなるリストが返ります。どうして「これがベスト」という変数が選ばれていないかというと、この関数は rss(residuals sum of square, 残差平方和)で、モデルのよしあしを判断しますが、rss は説明変数の数が多ければ多いほど、小さくなる傾向にあります。 ですから、「同じ size、説明変数の数同士のモデルは比較することができるけれど、異なる size のモデルを比較することができない」のでずばり、これがベスト!ということができないのです。 (stepwise の結果で、同じ size のものでは、rss が小さい順に並んで います)

それから、2次の項や交互作用項、因子変数の項などを直接当てはめることができません。あらかじめこのようなデータを作成しておく必要があります(簡単に作成することは可能です。これはご要望があれば、あるいは機会があれば、ご紹介したいと思います)。

では、

ときはどうしたらよいでしょうか?これには関数 step を用います。関数 step の使い方については、次回にご説明したいと思います。 お楽しみに!

----------------------------------------------------------------

? お問い合わせ/資料請求はお気軽に。
(株)数理システム《S-PLUS》グループ <splus-info@ml.msi.co.jp>