相関について

目次

はじめに
目次へ↑

2つの変量の間の関係でよく目にするのが相関関係です。 ここでは相関関係について説明します。

相関関係とは
目次へ↑

次の表はあるグループ10人の体重と身長のデータです。

名前ABCDEFGHIJ
身長(y) [cm]156155157159161159161164163165
体重(x) [kg]55565759586162636465

2項目の量を縦軸と横軸の位置に対応させ、データを点でプロット(点を打つこと)したものを散布図と呼びます。 上の表の身長と体重の散布図は次のようになります。

散布図を見ますと身長と体重の間に何か関係がありそうに見えます。 身長が増えれば体重が増える。もしくは、体重が増えれば身長が増える。 このように『一方の増減に伴って他方も増減する』というような関係を相関関係と言います。

相関とは『お互いに関係がある』と言う意味です。 注意して欲しいのは『一方が原因でもう一方が結果である』という因果関係とは別物だということです。 今の例の身長と体重の場合、体重が増える一つの原因は身長ですが、 身長が増える原因に体重は関係ないと思います。 しかし、相関関係を見るときにはどちらの方が原因というところまでは見てません。

相関関係には正の相関(一方が増えればもう一方も増える)、負の相関(一方が増えればもう一方は減る)があります。 また、強い相関(直線に近い関係)、弱い相関(直線と比べるとぼやけてる)があります。 次の図を見てください。

上の図は負の相関で、左が強い負の相関、右がやや強い負の相関です。 真ん中は相関がない状況です。 下の図は正の相関で、左がやや強い正の相関、右が強い正の相関です。

相関係数
目次へ↑

前節の最後に相関の正負、強弱について述べましたが、これを数値で表したものを相関係数と言います。 相関係数には r の文字をよく使います。 相関係数は -1~1 の範囲の値をとります。 相関係数の符号はそれぞれ正負の相関を表します。 相関係数の絶対値(大きさ)は相関の強さを表し、1 に近いほど相関は強いということになります。 前節最後の図では相関係数はそれぞれ、左上が r = -1、右上が r = -0.6、真ん中が r = 0、左下が r = 0.6、 右下が r = 1、になってます。

大体の目安なので相関係数の他にも検討が必要なんですが次のように言われてます。

0.0 ≤ |r| ≤ 0.2  ほとんど相関がない
0.2 ≤ |r| ≤ 0.4  やや相関がある
0.4 ≤ |r| ≤ 0.7  かなり相関がある
0.7 ≤ |r| ≤ 1.0  強い相関がある

相関係数を計算するためには横軸(x)の量の平均(mx)と偏差平方和(Sxx)、縦軸(y)の平均(my)と偏差平方和(Syy)、 xとyの積和(Sxy)の値が必要になりますので、これらのことについて説明します。

先の身長と体重の例では次のようになります。
まず10人の体重の平均 mx と身長の平均 my を計算します。

mx=(55+56+57+59+58+61+62+63+64+65)/10=60
my=(156+155+157+159+161+159+161+164+163+165)/10=160
次にA君からJ君までの体重の偏差と身長の偏差を計算します。 偏差とは平均からの差のことです。
名前(番号i)A(1)B(2)C(3)D(4)E(5)F(6)G(7)H(8)I(9)J(10)
体重の偏差の式(xi-mx)55-mx56-mx57-mx59-mx58-mx61-mx62-mx63-mx64-mx65-mx
体重の偏差の計算結果-5-4-3-1-2+1+2+3+4+5
身長の偏差の式(yi-my)156-my155-my157-my159-my161-my159-my161-my164-my163-my165-my
身長の偏差の計算結果-4-5-3-1+1-1+1+4+3+5
次に体重の偏差平方和Sxxと、身長の偏差平方和Syyを計算します。 偏差平方和とは偏差の2乗の合計のことです。
Sxx=(-5)2+(-4)2+(-3)2+(-1)2+(-2)2+12+22+32+42+52=110
Syy=(-4)2+(-5)2+(-3)2+(-1)2+12+(-1)2+12+42+32+52=104
次に体重と身長の積和Sxyを計算します。 積和とは2種類の偏差の積の合計のことです。
Sxy=(-5)(-4)+(-4)(-5)+(-3)(-3)+(-1)(-1)+(-2)(+1)+(+1)(-1)+(+2)(+1)+(+3)(+4)+(+4)(+3)+(+5)(+5)=98
相関係数 r は次の式で計算できます。 平方根の計算もあるので電卓などを使ってやってみましょう。
r
Sxy
√Sxx√Syy
=約 0.916
今の例での身長体重の相関はかなり強い正の相関であることが分かりました。

ここまで手計算で計算しましたがデータが増えると大変なのでエクセルなどを使って計算するのが良いでしょう。 次の図は身長体重の相関係数をエクセルで計算したものです。

  1. B2からC11まで身長と体重のデータを打ち込みます。
  2. B12のセルで =SUM(B2:B11) という数式を打ち込んで体重の合計を計算します。
  3. フィルハンドルをドラッグして、B12のセルの数式をC12のセルにコピーします。
  4. B13で =AVERAGE(B2:B11) という数式を打ち込んで体重の平均を計算します。(=B11/COUNT(B2:B11)でもかまいません。)
  5. B13の数式をC13にコピーします。
  6. D2で =B2-B$13 という数式を打ち込んでA君の体重の偏差を計算します。($マークは数式をコピーしたときに数字がズレないようにするためのものです。相対参照と絶対参照を思い出してください。)
  7. D2の数式をD11までコピーし、B君からJ君までの体重の偏差を計算します。
  8. E2で =C2-C$13 という数式を打ち込んでA君の身長の偏差を計算します。
  9. E2の数式をE11までコピーします。
  10. F2で =D2^2 という数式を打ち込んでA君の体重の偏差平方を計算します。
  11. F2の数式をF11までコピーします。
  12. G2で =E2^2 という数式を打ち込んでA君の身長の偏差平方を計算します。
  13. G2の数式をG11までコピーします。
  14. H2で =D2*E2 という数式を打ち込んでA君の体重と身長の偏差積を計算します。
  15. H2の数式をH11までコピーします。
  16. C12の合計の数式をH12までコピーします。
  17. F12に体重の偏差平方和 Sxx 、G12に身長の偏差平方和 Syy 、H12に身長と体重の偏差積和 Sxy が入ってます。
  18. J2で =H12/SQRT(F12*G12) という数式を打ち込んで相関係数を計算します。
  19. J3では =CORREL(B2:B11,C2:C11) という数式を打ち込んで相関係数を計算してます。(Excel には一発で相関係数を計算してくれる関数もあります。)

相関係数の意味
目次へ↑

相関係数の式

r
Sxy
√Sxx√Syy
の分子の部分に注目します。 この分子の部分では横軸のデータ xi の偏差と縦軸のデータ yi の偏差の積の和 Sxy を計算してます。 データ数 (i=1, 2, …, n) の場合は次のようになります。
Sxy=(x1-mx)(y1-my)+(x2-mx)(y2-my)+…+(xn-mx)(yn-my)
和として足し上げる一つ一つの偏差積を見ると、データの位置によって正になったり負になったりしています。 次の図を見てください。
この図は横軸の平均値 mx と縦軸の平均値 my の上下左右でグラフを色分けしたものです。 右上の青の部分にデータがある場合、そのデータの x の値は mx より大きく、y の値は my より大きいので偏差の積は正になります。 他の領域もまとめると次の表になります。
位置xiの偏差=(xi-mx)yiの偏差=(yi-my)偏差積=(xi-mx)(yi-my)
右上
左上
左下
右下
つまり偏差積が正になる青色の領域にデータが沢山あると積和は大きくなり相関は正に大きくなります。 逆にの赤色の領域にデータが沢山あると積和は小さくなり相関は負に大きくなります。 またの青色と赤色の領域に同じ程度の数のデータがあると積和は相殺されて0になり相関はなくなっていきます。

相関係数の式の分母を見ると偏差平方和の平方根で割ってます。 x の偏差平方和 Sxx と y の偏差平方和 Syy は次の式で計算されます。

Sxx=(x1-mx)2+(x2-mx)2+…+(xn-mx)2
Syy=(y1-my)2+(y2-my)2+…+(yn-my)2
この偏差平方和の平方根で割ることによって、相関係数の最大値を +1 最小値を -1 になるよう調整してます。 ここでは詳しい証明などはやりませんがこの部分があることで相関係数がデータの単位に依らない量になり、どのような種類のデータでも同じ基準で調べられることになる、と思っていてください。 証明に興味がある人はシュワルツの不等式など調べてみましょう。

回帰分析
目次へ↑

相関関係を見ることによって2種類のデータの間にどれくらいの関係があるのか分かりました。 もう少し具体的にどのような関係があるのか知る方法に、2つの変数(変量)の間に関係式を考えデータに最も適合する(フィットする)式を考える、という方法があります。 このような方法を回帰分析と呼びます。 数式によって x と y の関係が決まってしまえば、データの無いところの値でも予想したり補完したりすることができるようになるので非常に便利です。

一番簡単な式は直線を表す1次式です。 x と y の間に次の関係式

y = a x + b
があると仮定して、係数 a と b をデータから最適なものに決めます。 このような y = f(x) という形の数式で書く場合 x を説明変量、y を目的変量などという言い方をします。 x を使って y を説明するような感じです。

係数 a と 定数項 b が決まれば最適な直線が求まります。 いきなり答えを書くと次の計算で係数 a と定数項 b の最適値が得られます。

a =
Sxy
Sxx
b = my - a mx
前節まで扱っていた身長と体重のデータの場合は Sxy=98 、Sxx=110 なので a=約0.8909 になります。 この a の値と mx=60 、my=160 を使うと b=約106.55 になります。

エクセルでは散布図に直線近似を追加することができます。 散布図に現れているデータポイントのマーカーを左クリックで選択して右クリックすると(書式設定するときのようにやってください)、 右クリックメニューに [近似曲線の追加(R)...] という項目があります。 これを選んで、[種類] タブの [近似または回帰の種類] ダイアログで [線形近似(L)] を選択して、 [オプション] タブで [グラフに数式を表示する(E)] にチェックを入れて [OK] ボタンを押します。 するとグラフに直線とその数式が現れます。 後は現れた直線の上で右クリックして [近似曲線の書式設定(O)...] で書式を微調整してください。

上の図は数式に枠をつけたり補外をしたりなどいろいろ調整したものです。

最後に傾き a と定数項 b を計算する式がどこから出てきたのか少しだけ説明します。 最適な直線は色々考えられますが、残差の2乗和が最小になるという条件で最適な直線を決めています。 この方法を最小2乗法と呼びます。 残差とは次の絵の赤線の距離のことです。

各データごとに y 軸に平行に回帰直線からどれくらい離れてるのかを表しているのが残差です。 直線の a や b を変えると残差も変わります。 a や b を色々動かして全データの残差の2乗を足し上げて、それが可能な限り小さくなるようにした結果 a と b を求める計算式が出てきます。 実際の数式の導出には微分の知識が必要なのでここではやりませんが、可能な限り全体の残差を小さくするというイメージで理解してください。


(イン活TOPに戻る)   (藤本の担当講義に戻る)   (目次に戻る)