<< トップページへ

<< 目次へ

最終更新日 : 2008.11.11

分散分析の基本原理



 ここでは分散分析について詳しく説明していく。もしかしたら、ある人は「平均値を比較する分析なのに、なぜ分散分析という名前がついているのだろうか。」という疑問をもっているかもしれない。おそらく、その疑問はこのページを読み終える頃には解決しているだろう。先立って、まずは以下のような2群のデータセットについて考えてみよう。

A群のデータ:
  • 20, 25, 28, 22, 24, 26, 30

B群のデータ:
  • 45, 33, 40, 39, 41, 31, 37

 いきなりだが、またある人は「分散分析は3群以上の平均値を比べるときに使うもので、2群の平均値の比較ならt検定なのではないか。」と思ったかもしれない。確かにそれはその通りなのだが、そもそも分散分析とは説明変数がカテゴリカル型である場合のモデルであり、そのモデル式は次のように書ける。

Y = A (Aはカテゴリカル型)

 このモデル式においてAはカテゴリカル型の変数である。カテゴリカル型ということはいくつかの水準をもっているわけで、もし2つの水準をもっているならば(たとえば男性と女性といったように)、結果としてそれは2群の平均値について検討していることになる。もしも3つの水準をもってるならば(たとえば小学校、中学校、高校といったように)、それは3群の平均値を比較するということである。だから、一般線形モデルの立場でいうならば、古典的に扱われているt検定も分散分析も同じ分散分析モデルという1つのモデルで表現されるのである。つまり、違いは単に水準数の違いだけなのである。


■ モデル式による表現

 これを今回のデータセットの解析について考えてみると、モデル式は次のように書くことができるだろう。このモデル式は「GroupはYを説明する」という意味をもっているが、より正確にいえば「Groupの水準ごとの平均値を当てはめたとき、Yの変動を有意に説明できるか」ということである。このようにモデル式を書くことは、自分が問題にしていることを明らかにするという意味で大変重要である。

Y = Group


■ 変動の分解(平方和分解)

 さて、分散分析とは簡単にいえば変動の分解という作業を行っている。変動には全変動群間変動群内変動の3つを考えることになるが、これについてはデータをプロットして考えるとよい。したがって、まずは横軸にデータ番号を、縦軸にデータの値をとって散布図を描いてみるとよい。そこに全平均と群平均をそれぞれ当てはめてみるようなグラフを作成してみる。


図1 データに全平均と群平均を当てはめる

 上の図において、縦軸の中央辺りに引かれている線分が全平均であり、赤い線分がA群の平均、青い線がB群の平均である。分散分析はこの平均まわりのバラつき(分散)を分析する方法なので分散分析というわけである。ここで各群の群平均まわりのバラつきのことを郡内変動という(群内でのバラつきという意味である)。そして、その変動の大きさは平方和(SS, Sum of Squares)によって表される。代表値とバラつきのページで説明したように、平方和は分散を計算するための公式の分子である。

 この平方和は値が大きいほどバラつきが大きいことを意味しているが、データ数が増えるに伴って増加するという性質をもっている。したがって、比較する群のサンプルサイズが等しい場合は単に平方和を比較しても問題なさそうであるが、そうでない場合は比較しても意味がないだろう。実際、今回のデータセットではサンプルサイズが同じなので、平方和を比較した場合、単純に平方和の値が大きい方が郡内変動が大きいことを意味する。

 それでは実際に全変動SSY、群間変動SSG、群内変動SSEをがどういうものであるかを説明しながら計算してみよう。まずSSYは全平均まわりのバラつきのことであり、全平均と原データの偏差の平方和である。図1でいえば、黒い線分(全平均)とデータポイント(原データ)の偏差の平方和である。より分かりやすくしたものが図2である。

SSY = 799.5


図2 全平均と原データの偏差(全変動)

 続いてSSGは全平均と群平均の偏差の平方和である。図1でいえば、黒い線と赤い線の偏差の平方和、および黒い線と青い線との偏差の平方和である。より分かりやすくしたものが図3である。

SSG = 591.5


図3 全平均と群平均の偏差(群間変動)

 最後にSSEは群平均と原データの偏差の平方和である。図でいえば、赤い線とA群のデータポイント、青い線とB群のデータポイントの偏差の平方和である。

SSE = 208.0


図4 群平均と原データの偏差(群内変動)

 ここでSSYは以下のように分解されていることが分かるだろう(これを平方和分解という)。

SSY = SSG + SSE

799.5 = 591.5 + 208.0

 このSSGとSSEを比較すれば、モデル式が意味するところの「Groupの水準ごとの平均値を当てはめることによって、Yの変動を有意に説明できるか」ということに対しての答えが得られるだろう。先に結論をいってしまえば、SSG(群間変動)がより大きく、SSE(群内変動)がより小さいほどYの変動を有意に説明できるということになる。これについて、極端なデータセットの例をあげて説明してみよう。


図5 極端な2つのデータセットの例

 図5は左から順に全変動、群間変動、郡内変動を表した図になっており、上の3つは群間変動が大きく、群内変動が小さい場合の例である(有意な差が認められるデータセット)。一方で下の3つは群間変動が小さく、群内変動が大きい場合の例である(有意な差が認められないデータセット)。

 有意な差が認められるデータセットでは、群平均を当てはめたときにデータの変動をうまく説明できている(SSE=17.71となっている図)。それに対して有意な差が認められないデータセットでは、群平均を当てはめてもデータの変動を説明できておらず(SSE=115.143の図)、全平均を当てはめた場合とさして変わらないのである。つまり、説明変数が応答変数の変動を有意に説明するとは、群平均を当てはめたときに、群平均とデータの偏差が小さくなるということなのである。

 また、変動の分解という観点から見てみると、有意な差が認められるデータセットでは群間変動の平方和(SSG=1011.50)は全変動の平方和(SSY=1029.21)のほとんどを占めており、群内変動(SSE=17.71)が占める割合はわずかなものである。それに対して有意な差が認められないデータセットでは全く逆で、群内変動(SSE=115.143)が全変動のほぼ全てを占めており、群間変動(SSG=0.286)が占める割合はわずかである。

 まとめると以下のようになる。

  • 説明変数が応答変数の変動を有意に説明するとは、
  • 群平均を当てはめたときに、群平均の直線がデータにうまくフィットしているということである。
  • 換言すると、群平均とデータとの偏差(群内変動)が小さく、全平均と群平均の偏差(群間変動)が大きいということである。
  • そして、このような状態のときに平均値が有意に異なるという結論が得られる。


■ 自由度の分解

 例えば、簡単なパズルゲームで自由度について考えてみる。以下の5つの箱にはそれぞれ1つの数字を入れることができる。全ての箱に数字を入れたとき、その合計が10になるように数字を入れる。最初の段階では5つの箱のいずれにも自由な数字を入れることができる。

 仮にここで4という数字を箱に入れたとする。

4

 まだ残りの4つの箱に自由な数字を入れることができる。そこで2つ目の箱に2を、3つ目の箱に1を、そして4つ目の箱に3を入れてみたとしよう。

4 2 1 3

 すると、ここで4 + 2 + 1 + 3 = 10となるので、もはや残りの箱に入れられる数は限られている(5つ目の箱に入れられる数字は0でなければならない)。すなわち、与えられた箱の数が5ならば、自由に数字を決めて数字を入れられる箱の数は5 - 1 = 4となる。これが自由度のイメージ的な理解の仕方である。

 さて、変動の分解:

SSY = SSG + SSE

において、SSYを求める際に14個の偏差を計算することになるが、偏差の和は0になるので、13個の偏差を計算すれば14個目の偏差はおのずと決まることになる(上の例において4つの箱に数字を入れた状態と同じである)。つまり、ここでの自由度は13であることがわかるだろう。次にSSGを求めるとき、全平均と2つの群平均との偏差は2つであるが、これもまた偏差の和が0になることから、どちらか1つの偏差が決まればもう一方の偏差が決定する。すなわち、SSGの自由度は1である。最後にSSEについて、各群のサンプルサイズはそれぞれ7なので、群平均とデータの偏差はそれぞれ7つ求めることになる。つまり、各群の自由度は7 - 1 = 6となるので、SSEの自由度は6 * 2 = 12となる。

SSYの自由度(DFY): 14 - 1 = 13
SSGの自由度(DFG): 2 - 1 = 1
SSEの自由度(DFE): (7 - 1) + (7 - 1) = 12


■ 平均平方

 先にも述べたように、平方和(SS, Sum of Squres)はデータ数の増加に伴って大きくなる。したがって、平方和自体を比較しても意味がないことが多い。そこで1自由度あたりの変動を考えるために、SSをDFで割ってやればよい。これはまさに分散そのものである。分散は平方和を自由度で割ることで求められるのであった(代表値とバラつきを参照のこと)。つまり、SSY、SSG、SSEそれぞれの値を、それぞれの自由度で割ってやればよいのである。これを分散分析においては平均平方(MS, Mean of Square)と呼んでいる。まさに分散分析という名称にふさわしい内容であることが分かるだろう。

MSG = SSG / DFG = 591.5 / 1 = 591.5

MSE = SSE / DFE = 208.0 / 12 = 17.3

MSY = SSY / DFY = 799.5 / 13 = 61.5


■ F値

 説明変数(Group)が応答変数(Y)の変動を有意に説明しているかどうかはF値によって判断される(直接的にはp値を見て判断する)。F値は次式によって計算される。

 図を用いた説明を上の方でしたが、そこでも書いたように有意な差が認められるデータとは群間変動が大きく、群内変動が小さくなるようなデータである。つまり、このF値においてMSGが大きくMSEが小さいほどF値は高くなり、p値は小さな値となる。