• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:回帰分析におけるデータの正規化の意味)

回帰分析におけるデータ正規化の意味と重回帰分析における正規化データの扱い

このQ&Aのポイント
  • 回帰分析においてデータの正規化は、入力と出力のデータのスケールを揃えるための処理です。データの正規化により、各変数のスケールの違いが予測結果に与える影響を均一化することができます。
  • ただし、データを正規化することで予測結果の解釈が難しくなる場合もあります。正規化したデータの予測結果は0以上1以下の値しか取らないため、実際の値として意味を持つかどうかは状況によります。
  • 正規化したデータで予測する場合、新しいデータを予測式に代入する前に、予測結果を元のスケールに戻す必要があります。具体的な方法は、正規化する前のデータの平均値や標準偏差を使用して、逆変換することです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

問1 正規化をすると、単位に引きずられず偏回帰係数によってその因子の影響を比較評価できるようになります。 たとえば、mmとcmと単位を変えたとき、mmで式を作ると「降水量」が大きな偏回帰係数を持ち、「降水量」の影響が大きく見えます。正規化してみれば、各因子の係数が、「寄与率」のように比較できます。 正規化して重回帰分析を行ったときの係数を「標準偏回帰係数」といいます。多くの解析ソフトは、両方を表示します。 問2 ご質問者の誤解です。 平均を0、分散を1までは正しいです。 データはおおよそー3から3くらい(ー3σから+3σ)になっているはずです。なぜ、正値しか考えないのですか? 負値もとります。 正規化(基準化,標準化ともいいます)した場合の予測値は、しない場合と同じ値を与えないと間違いです。 問3 もし、手持ちのルーチンが正値しか扱えないのなら、学力試験の偏差値のように(50,10)(偏差値といいます)にしても良いかもしれません。

nnsvm
質問者

補足

問1については理解しました。 問2、3がちょっとまだ分からないので、もうちょっと教えてください。 重回帰分析のプログラムをC++で作成しました。 解析したデータはこちらのものにしました。 http://gucchi24.hp.infoseek.co.jp/MRAEX1.htm X = 8  4  8 7  7  7 5  8  9 4  3  3 6  8  8 2  5  3 3  6  6 9  9  7 Y =[18  12  14  6  12  8  10  16] 解析結果は以下のようになりました。 [正規化なし] Y=2.504 + 0.8161X1 - 0.2749X2 + 1.055X3 ・・・ (a) [正規化あり] Y=9.72832e-18 + 0.499768X1 - 0.145797X2 + 0.597074X3 ・・・ (b) 正規化の仕方  Xi = Σ( Xij-mean(Xi) ) / std(Xi)  j = 1・・・N  Y = Σ( Yj-mean(Y) ) / std(Y)  j = 1・・・N  Nはデータ数、mean(・)は平均、std(・)は標準偏差 [正規化したデータ] X = 1.02062 -1.06066 0.717805 0.612372 0.353553 0.276079 -0.204124 0.824958 1.15953 -0.612372 -1.53206 -1.49083 0.204124 0.824958  0.717805 -1.42887  -0.589256  -1.49083 -1.02062  -0.117851  -0.165647 1.42887  1.29636  0.276079 Y = [1.5  0  0.5  -1.5  0  -1  -0.5  1] このとき、  X1=6、X2=4、X3=8 ・・・ (c) として回帰式(a)、(b)で予測したところ  (a)=Predict_Y = 7.19201  (b)=Predict_Y = 14.741 となり予測値が一致しません。 これは単純にプログラムが間違っているということなのでしょうか? それとも、テストデータ(c)をそのまま予測式に入れたのではダメなのでしょうか? 回答お願いします。

その他の回答 (2)

回答No.3

> データはおおよそー3から3くらい(ー3σから+3σ)になっているはずです。と回答に書かれているのですが、-3から3という範囲はどのようにして求めているのですか? 正規分布の場合は、±3σの範囲内の分布密度は全体の99.7%で、ほぼ全データが入ります。ですからよくグラフを書くときに±3σの線を入れたりします。工程能力も±3σが安定の目安になっています。 すなわち、今、分布がN(0,1)ですから、±3の範囲に殆ど全てのデータが入ってくるだろうと考えて書きました。それを越えるものは異常値の疑いがあるわけです。 > 正規化なしの場合の回帰式の係数と、正規化ありの場合の回帰式の係数は異なっているわけですが、この係数を一致させることは可能なのでしょうか? 偏回帰係数と標準偏回帰係数は通常は一致しません。偏回帰係数と標準偏回帰係数が一致するのは、説明変数の分散と目的変数の分散が一致しているときだけです。 ただし、互いに変換は可能です。リンク先の式(2-6)をご覧下さい。 > そうできれば、テストデータを正規化する必要もなくなるので・・・。 リンク先にも書いてありますように、一般の統計ソフトではまず先に、桁落ち桁あふれの心配のない標準偏回帰係数を求めておき、それから偏回帰係数に変換するのが誤差の少ないやり方です。 まずは、正規化をやられてはいかがでしょうか。

参考URL:
http://staff.aist.go.jp/kudoh.yuki/ja/research/files/regression.pdf
nnsvm
質問者

お礼

詳細な回答ありがとうございました。 重回帰と正規化についてとてもよく理解できました。

回答No.2

#1です。 回答が遅くなりすみません。 説明変数(x)を正規化したデータで重回帰式を作ったときは、予測用代入値(x')もxを正規化した変換式で変換されたものでなくてはなりませんね。 それから、私は前の回答で少しはしょって書いてしまいましたが、説明変数(x)を正規化したときは、目的変数(y)も同様に正規化するケースが多く、そのような場合は予測値も正規分布N(0,1)に従います。よって逆変換しないと元の値と一致しません。 しかし、あくまで大小関係はしっかり保存されています。

nnsvm
質問者

補足

回答ありがとうございました。 おかげさまで、正規化なしの回帰式での予測値と正規化ありの回帰式の予測値が 一致しました。 前回の補足に書き忘れたのですが、 >データはおおよそー3から3くらい(ー3σから+3σ)になっているはずです。 と御回答にかかれているのですが、-3から3という範囲はどのようにして求めているのですか? また、最後にできるのかお聞きしたいのですが、正規化なしの場合の回帰式の係数と 正規化ありの場合の回帰式の係数は、異なっているわけですが、この係数を 一致させることは可能なのでしょうか? そうできれば、テストデータを正規化する必要もなくなるので・・・。 補足よろしくおねがいします。

関連するQ&A