No.04633 重回帰分析の全工程を自動化するには  【いしい】 2007/11/07(Wed) 01:06

はじめまして。
参考になる情報をいつもありがとうございます。

現在,重回帰分析のステップワイズ法の工程を自動化したいと考えており,Rを検討しています。
http://aoki2.si.gunma-u.ac.jp/R/All_possible_subset_selection.html
上リンクの総当り法というやり方は気に入っているのですが,試してみるとspssのステップワイズ法に比べてもかなり低い重相関係数が出ます。
たとえば10変数のステップワイズ,spssで0.7程度となるものが,maxで0.11くらいに・・・。
この関数はステップワイズ法よりも絨毯爆撃的に変数を試していると思っていたのでとても意外です。
以下のようなステップワイズ法の関数を実装した方がいいのか迷っております。
http://www.google.co.jp/codesearch?hl=ja&q=+lang:r+regression+stepwise+show:sOMGrBhVVWQ:70b7iNCOklw:1uaBqXjDFds&sa=N&cd=1&ct=rc&cs_p=http://www.stat.washington.edu&cs_f=wxs/Stat538-w05/Home2/Home2-solution/stepwise.R#first


総当り法とは,実用的な方法ではないのでしょうか?
実用的(ステップワイズ程度)にするためにはどのような処理を追加すればよいでしょう?

No.04634 Re: 重回帰分析の全工程を自動化するには  【青木繁伸】 2007/11/07(Wed) 08:41

> 上リンクの総当り法というやり方は気に入っているのですが,試してみるとspssのステップワイズ法に比べてもかなり低い重相関係数が出ます。
たとえば10変数のステップワイズ,spssで0.7程度となるものが,maxで0.11くらいに・・・。
この関数はステップワイズ法よりも絨毯爆撃的に変数を試していると思っていたのでとても意外です。

同じデータを分析するのに,計算法によって異なった結果が出るとはおかしいですね。
欠損値がたくさんあるのですか?とも思いますが,ステップワイズ法であろうと総当たり法であろうと,分析当初に分析対象として選定する変数に欠損値のあるケースはまえもって全部削除しますのでそれも関係しないですよね。
SPSSのステップワイズ法で得られる重回帰式より大きな重相関係数(決定係数)を持つものが得られるはずですが(同じ独立変数を持つ重回帰式は,どちらの方法を採ろうと同じですよ)

実例を挙げて欲しいものですね。

総当たり法は,件のページにも書いてあるとおり独立変数候補の個数をpとすると2^p-1個の重回帰式を探索しますから,pが大きくなると計算時間は掛かりますけどね。

Rにだってステップワイズ変数選択をする仕組みはあります。ただ,AICを基準にするのでSPSSとは違いが出てくるかも。

し かし,繰り返しますが,同じデータで同じ独立変数を使った重回帰式は,どんな変数選択をしようが同じ答えになりますよ(あたりまえですよね)。結果として 一番良いと言われる重回帰式は異なる可能性はあります(その方法では,本当に一番良い重回帰式を探索できなかったということはありますよ)。

まちがった解釈を伝播しないようにお願いします。

No.04639 Re: 重回帰分析の全工程を自動化するには  【いしい】 2007/11/07(Wed) 15:24

丁寧なお返事ありがとうございます。
非常に申し訳ないのですが,原因はカラム数の指定ミスで従属変数が抜け落ちているというお粗末なものでした。
いろいろ不明点が多かったため,誤解を伝播してしまいかねない質問となってしまいました。
お詫びに900件の地価データに関して,以下のような結果となったことをご報告しておきます。

■ステップワイズ(SPSS):
http://aoki2.si.gunma-u.ac.jp/R/All_possible_subset_selection.html
h19 ~ cafe + floor_space_index + convini + station + road_width
調整済み R2 乗 0.571

■ステップワイズ(EXCEL):
http://aoki2.si.gunma-u.ac.jp/lecture/stats-by-excel/vba/html/sreg.html
h19 ~ cafe + floor_space_index + convini + station + road_width
調整済み R2 乗 0.571

■総当り(R):
http://aoki2.si.gunma-u.ac.jp/R/All_possible_subset_selection.html
h19 ~ station + cafe + bath + distance_from_near_station + floor_space_index + shape + road_width
調整済み R2 乗 0.655

ステップワイズと総当りでは,「一番良いと言われる重回帰式」が異なるということで納得しました。
ところで,再度質問となってしまいますが,計算の利便性から「総当り」を研究過程で利用したいと考えています。
論文(修士)でも使えるようにするには,どのような操作をすれば必要十分になるでしょうか?
あるいはステップワイズの方がいいのでしょうか?

・多重共線性チェック
・残差プロット
あたりはやる必要がありそうです。
あと,総当りしながら変数選択をするというのはあり得るでしょうか?



また見当違いかもしれません。
もしよければ重回帰分析の必要十分な工程などがあればご教授ください。

No.04645 Re: 重回帰分析の全工程を自動化するには  【青木繁伸】 2007/11/07(Wed) 21:40

> 計算の利便性から「総当り」を研究過程で利用したいと考えています。
論文(修士)でも使えるようにするには,どのような操作をすれば必要十分になるでしょうか?あるいはステップワイズの方がいいのでしょうか?

質問内容がよく分かりませんが。。

総当たり法で良いと言われた順に重回帰分析を行って,十分に吟味すればよいのでは?
総当たり法で良いとするのは,所詮,決定係数や自由度調整済み決定係数という1つの統計量からだけなので,独立変数の実質的な意味や,多重共線性の程度(総当たり法では多重共線性の存在については考慮していない)や,その他もろもろを考慮すればよいと思います。

● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る