[(株)数理システム]

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


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

まずはじめに宣伝です。
数理システムより、初めてのS-PLUSメニュー参考書と題しまして「S-PLUS for Windows 入門」を刊行しました。
この mini course は S 言語だけを取り上げて、コマンドを解説していますが、この本は中心がグラフィカル・ユーザー・インタフェースです。
結構、メニューも侮りがたく、便利なものですから、日常のちょっとした作業はこちらから行っていたりします。このちょっとした小技の集大成とも言うべきなのがこの参考書です。
目次、ご購入方法、本のサンプルなどは
http://www.msi.co.jp/splus/tips/books/newbook11.html
をご覧ください。

前回は重回帰をするのに、lsfit と lm を使って、その指定方法などの違いを比較しました。
今回はこの2つについて、さらに詳しく比べてみたいと思います。

さて、前回は重回帰、つまり、目的変数が2つ以上ある場合の回帰をして、指定方法の違いを見ていただきましたが、今回は結果の違いを見るために、単回帰をしてみたいと思います。
前回使ったデータセット fuel.frame をまた使い、目的変数は Fuel
説明変数を Weight で切片を持つ単回帰をします。
指定方法はそれぞれ、

> fit1 <- lsfit(x=fuel.frame$Weight, y=fuel.frame$Fuel)
> fit2 <- lm(Fuel ~ Weight, data=fuel.frame)


とします。切片傾きを取り出すにはいずれも、

> fit1$coef
  Intercept               X
 0.3914324  0.00131638

> fit2$coef
  (Intercept)        Weight
   0.3914324  0.00131638


と同じ方法で可能です。そして、結果も同じですね。
例えば、残差なども共通の方法で取り出すことができます。

> fit1$residuals
> fit2$residuals

では、結果を散布図上にy=ax+b の線として表示させてみましょう。いずれの結果を使っても、

> plot(fuel.frame$Weight, fuel.frame$Fuel)
# 散布図作成
> abline(fit1)

> plot(fuel.frame$Weight, fuel.frame$Fuel)
# 散布図作成
> abline(fit2)

と同じグラフを作ることができます。
では、どこが違うか、

> summary(fit1)
# 意味のない結果
> summary(fit2)
# R-squared なども表示される

> plot(fit1)
# エラー
> plot(fit2)
# 複数のグラフが表示され、回帰診断なども可能となる

このあたりからだいぶ様子が違ってきています。
理由は

> class(fit1)
[1] "list"
# 特別なクラスは持っていなく、一般のクラス list
> class(fit2)
[1] "lm"
# 元の関数と同じ lm というクラスを持つ

ここにあります。lsfit は手軽ですが、特別なクラスを持ちません。
それに対して、lm はクラス lm を持ちますから、その後結果を使って、回帰診断や評価、比較などができるようになります。

以降はこのあとでいろいろ使える、という関数 lm を使ってみたいと思います。次回以降、回帰診断プロットや予測方法など、lm のもう少し進んだ使い方についてご説明していきたいと思います。
次回もお楽しみに!
それから、本年も S-PLUS を宜しくお願い申し上げます。

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

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