重回帰分析と因子分析のちがい

重回帰分析と因子分析のちがいについてみていきたいと思います。

この二つの分析は目的が違います。重回帰分析は、大量にあるデ ータから関連性のあるデータを導き出し、そこから変数を導くことで、未観測の値を導 き出すことを目的とします。一方、因子分析はそれぞれ与えられた変数を因子によりグループ化していくことを目的とします。重回帰分析は与えられたデータ を元に、未観測の値を予想する分析で、因子分析は与えられたデータの解釈の仕方を分 析する、というわけです。

因子分析についてはこちらをご参照ください。因子分析

重回帰分析とは何か軽く見ていきます。

重回帰分析は、複数の変数を入力することで一つの変数を出力する、という分析です。

重回帰分析は英語で multiple variable regression と言います。つまり、インプットす る変数の数が複数ある回帰分析、というわけですね。どういう時にこの重回帰分析使う かというと、あるデータのグループの関連性を知りたいと思った時、その関連性に2つ 以上の変数(因子)がある、といった場合です。

具体的な例を見ていきましょう。

学校の試験の成績はどのような変数から影響を受けて いるのでしょうか?試験の成績には宿題の提出率が関係しているとよく言われます。た だ、それだけでしょうか?人は一人ひとりもっている IQ が違うと言われます。ここで はこの二つの変数(因子)に注目して回帰分析の式を作ってみましょう。

(試験の成績)= b1*(宿題の提出率) + b2*(生徒の IQ) (b1,b2 は定数です)

宿題の提出率、生徒の IQ が独立変数、そして試験の成績が従属変数ということになり ます。上の式、両辺が互いに等しくなるのが理想ですが、現実的には少しの差異がでて きてしまいます。ここではその差異をε(イプシロン)とします。そこで上の式から、 絶対値を使って

ε = |(試験の成績) – {b1*(宿題の提出率) + b2*(生徒の IQ)}|

もしくは

(試験の成績) = b1*(宿題の提出率) + b2*(宿題の IQ) ±ε

と表せます。このεの値が小さくなればなるほど、回帰分析の正確さが向上します。こ こで覚えていてほしいのは、ある一つの変数、例えば宿題の提出率の変化を見るとき、 のこりの項は定数である、とみなして回帰分析を実行する、という点です。ある一つの 変数を X 軸、その変数に従属する変数を Y 軸におけば、二つのデータの関係性を XY 平面上に表せる、つまり、グラフに表せます。
さて、この重回帰分析をつかって分析する際、特に変数をインプットする際にありがち な落とし穴が二つあります。それは

        • 入力した変数が他に入力した変数に影響している(されている)かもしれないこと。
        • 入力する変数の数が多すぎること。

です。
まず一つ目。「入力した変数が他に入力した変数に影響している(されている)かもしれ ないこと」について。 独立変数の名の通り、入力する変数は独立していなければいけません。なぜかというと、 もし他の変数でその変数を表せたとしたら、どこかおかしい点が出てくるのです。
例を見ていきましょう。P = b1*x1 + b2*x2 + b3*x3 とします。
x3 がインプットする変数なのに x3 が x2 で表せると仮定します。すると x3 = x2 * c (c は係数)
と表せます。
これを代入して、

P = b1*x1 + b2*x2 + b3*(x2 + c)

となります。
ここで入力した変数 x2 の変化の値と出力された変数 P の変化の値を見てみましょう。 もともと x2 が(x2 + h)に変化した時、変数 P の変化の値は b2 * h と導けます。しかし、 この仮定が正しいとすると落とし穴に行く前に説明した、変化を測る時の約束がうまく 働きません。なぜなら定数であるはずの b1*x1 + b3*(x2 + c)までもが変化しているた めです。変数 P の変化の値は b2*h + b3*h となり、等しくあるには b3 =0 でなければ なりません。そうすると P = b1*x1 + b2*x2 となり、結局 x3 の項はなかったことに なります。ゆえに、x3 は式から消えます。

このようなおかしな現象が起きないようにするにはどうすればいいのか? そうです。x3 が x2 で表せると仮定したことが誤りだったのです。

注意しなければならないことは、変数を入力するときにその変数が他で表せる従属変数 でないことをしっかり確認していかなければいけません。

次に、二つ目の落とし穴「入力する変数の数が多すぎること」について。 一つ目の落とし穴を通り抜ける時に注意しなければならなかったこと、それは変数同士 の関係性をいちいち確かめなければならない、ということでしたよね。それは入力変数 と入力変数のどのペアも影響しあわないこと、そして入力変数一つ一つが外出変数と影 響し合っていることを確かめなければ使えません。

ここで簡単にどれくらい関係性について検証が必要なのか計算してみたいと思います。 独立変数(x1,x2,…,xn)と従属変数(y)の数の和が f 個である重回帰分析を試みようとする、 とします。それぞれの関係性を調べると

(変数1つ追加前) = f * (f – 1) /2

 

(変数1つ追加後) = (f + 1) * f /2

ゆえに、一つ追加するだけで f^2 の検証が必要になります。この結果からわかるよう に変数を新たに加えることは計算が複雑になるだけでなく、往々にして良い結果を生ま ないことが多いです。結論、入力する変数の数は減らしましょう。

最後に因子分析とのちがいについてみてみましょう。重回帰分析の落とし穴を避けるた めに変数(因数)の数はなるべく減らす、と言いました。では複数の変数から潜在的な変 数を導き出す因子分析は、重回帰分析とどのように違うのでしょうか?

 

この二つの分析は目的が違います。重回帰分析は、大量にあるデ ータから関連性のあるデータを導き出し、そこから変数を導くことで、未観測の値を導 き出すことを目的とします。一方、因子分析はそれぞれ与えられた変数をグループ化することを目的とします。重回帰分析は与えられたデータ を元に、未観測の値を予想する分析で、因子分析は与えられたデータの解釈の仕方を分 析する、というわけです。