この章では相関分析と回帰分析の計算原理と使い分け、そして間違いやすい相関と回帰、さらに計数値の相関について解説します。
あるデータと別のデータとの間に関連がある時に、その関連性を要約する手法には「相関係数(correlation coefficient)」を中心にした相関分析と、「回帰直線(regression line)」を中心にした回帰分析とがあります。 これらの手法は広く利用されているわりに(あるいは利用されているからこそ)、間違って用いられることが多いものです。 誤用の原因は値の計算原理と深くかかわっていますので、原理をよく理解して正しく利用するようにしましょう。
相関係数はxとyの因果関係(一方のデータが原因になり、結果として他方を変動させる関係)とは無関係に、一方の値が大きい時に他方の値も大きい(または小さい)かどうかを現象論的に要約するものです。 このため一方が原因で他方が結果という因果関係ではなく、お互いに影響を及ぼしあっているという相関関係の指標として利用されます。 まず相関係数の求め方から説明しましょう。 マウスを無作為に11匹選び、体長xと尾長yを測定した結果が表5.1のようになったとします。 そしてそのデータを一般化したものが表5.2です。
| No. | 体長(x) | 尾長(y) |
|---|---|---|
| 1 | 10 | 8.04 |
| 2 | 8 | 6.95 |
| 3 | 13 | 7.58 |
| 4 | 9 | 8.81 |
| 5 | 11 | 8.33 |
| 6 | 14 | 9.96 |
| 7 | 6 | 7.24 |
| 8 | 4 | 4.26 |
| 9 | 12 | 10.84 |
| 10 | 7 | 4.82 |
| 11 | 5 | 5.68 |
| 平均 | 9 | 7.50 |
| No. | x | y |
|---|---|---|
| 1 | x1 | y1 |
| : | : | : |
| i | xi | yi |
| : | : | : |
| 平均 | mx | my |
このままでは体長と尾長の関係がよくわかりませんので、とりあえず散点図を描いてデータの分布状態が目に見えるようにしてみましょう。
こうしますと、新しい座標系X−Yの第I・III象限はプロットが多く、第II・IV象限は少ないということに気が付くと思います。 このような時にはXとYは符号をほぼ同じにし、一方が正ならば他方も正という関係があります。 これを「正の相関関係」といいます。 反対に第II・IV象限にプロットが多く、第I・III象限に少ない時には、一方が正ならば他方は負という「負の相関関係」関係があります。
データの個数では定性的なことしか要約できませんので、XとYの積が第I・III象限では正に、第II・IV象限では負になることに目を付けて次のような値を作ります。
| Sxy= | n Σ i=1 |
Xi・Yi=Σ(xi-mx)(yi-my) |
| = | Σxi・yi-n・mx・my=Σxiyi- | (Σxi)(Σyi) ――――――― n |
| SS=Sxx= | n Σ i=1 |
Xi2=Σ(xi-mx)2=Σ(xi-mx)(xi-mx) |
| V=Vxx= | Sxx ―― n-1 |
この式からもわかるように積和は平方和の親類で、xとyが一緒に変動する量を表しています。 そして分散と同じように積和を自由度で割って1自由度あたりの変動にした値を「共分散(covariance)」と呼び、これも相関性の要約値になります。
| C=Vxy= | Sxy ―― n-1 |
しかし積和や共分散はデータの単位やバラツキによって値が変化してしまい、他のデータと相関の程度を比べる指標としては不都合です。 そこで偏差をそれぞれの標準偏差で割って、データの単位やバラツキとは無関係な値にします。 これを「xの標準化(規準化)」といい、標準化したデータの要約値は次のように非常に簡単になります。
| zx= | X ―― SDx |
= | x-mx ――― SDx |
| zy= | Y ―― SDy |
= | y-my ――― SDy |
| C=Vzxzy= | Szxzy ――― n-1 |
= | n Σ i=1 |
zxizyi ―――― n-1 |
= | 1 ―― n-1 |
Σ | xi-mx ――― SDx |
・ | yi-my ――― SDy |
| = | 1 ―― n-1 |
・ | Sxy ――――――――――――――― √{Sxx/(n-1)}・√{Syy/(n-1)} |
= | Sxy ―――――― √(SxxSyy) |
| =r (-1≦r≦1) |
この標準化されたデータの共分散を「相関係数」と呼び、「r」で表しています。 相関係数はデータの単位やバラツキとは無関係な値で、xとyが完全に直線関係の時、
相関係数はこのように相関性の要約値ですが、xとyの関連度をそのまま表しているわけではありません。 相関係数を平方した値を「寄与率(関与率)」または「決定係数(coefficient of determination)」と呼び、この値がxとyが関連している程度すなわちxとyが共有している情報量の割合を表しています。
| r2= | Sxy2 ―――― SxxSyy |
(0≦r2≦1) |
例えば相関係数が0.5の時はxとyが50%ほど関連していると誤解しがちですが、
また実質的にはほとんど無意味ですが、母集団の相関係数つまり母相関係数をρ(ロー)としますと、t値を利用してρが0かどうかを検定することができます。 (注1)
| 相関係数の標準誤差:SEr=√( | 1-r2 ――― n-2 |
) |
| 検定統計量:to= | r ―― SEr |
「母相関係数ρは0ではない」
「実験から得られた相関係数rは信頼できる」
今までと同様、やはりここでも実質科学的な考察が重要であり、それには相関係数よりも寄与率を参考にすべきです。 寄与率がどの程度なら相関ありと考えるかは実験内容やデータの種類によって異なりますが、次のような基準をおおよその目安にすれば良いでしょう。
ここで有意水準5%として、表5.1の例題について実際に計算してみましょう。
| Sxx=1001- | 99×99 ―――― 11 |
=110 |
| Syy=660.1727- | 82.51×82.51 ――――――― 11 |
≒41.2727 |
| Sxy=797.6- | 99×82.51 ――――― 11 |
=55.01 |
| r= | 55.01 ――――――――― √(110×41.2727) |
≒0.816 |
| r2= | 55.012 ――――――― 110×41.2727 |
≒0.667(66.7%) |
「マウスの体長と尾長には直線的な因果関係がある」
この場合は、マウスの成長という第3の因子が体長と尾長の両方に作用したため、見かけ上の相関が現れたと思われます。 ですから、いくら相関が高いからといって、マウスの体を引っ張ったら尻尾が長くなった、という現象は見られないでしょう。
相関係数が因果関係とは無関係なのに対して、回帰直線はxが原因でyがその結果であるという因果関係がある時に、xがyに与える影響を直線によって要約するものです。 この時のxのことを「説明変数(explanatory variable)」または「独立変数」と呼び、yのことを「目的変数(criterion variable)」または「従属変数」と呼びます。 したがって回帰直線が本来の意味を持つのは、例えば薬の用量と反応の関係のように、データの間に明確な因果関係がある時または因果関係を想定している時だけです。 これは、しばしば誤解されていることです。
表5.1の例題についてxをマウスの生後日数と読みかえ、yはそのまま尾長として、生後日数が尾長に与える影響を調べてみることにしましょう。 両者の間に直線関係y=α+βxがあるとしますと、yの各データは次のように表すことができます。
あるxの値からその時のyの値を推定する式は、yの推定値をy~とすると次のように表されます。
| Q= | n Σ i=1 |
εi2=Σ(yi-y~i)2 → 最小 |
これが有名な「最小2乗法(Least Squares method、LS法)」の原理です。 計算は頭が痛くなりますので省略しますが、結果は次のようになります。 なお普通はαとβは母集団の値を表し、標本集団のデータから計算されたαとβの推定値はaとbで表します。 (注2)
| 回帰係数(傾き):b= | Sxy ―― Sxx |
相関係数はxとyの因果関係とは無関係な値ですから、定義式はxとyを入れ替えても変りません。 このような式を「xとyに関する対称式」といいます。 それに対して直線回帰式はあくまでもxからyを最も正確に推定するための式ですから、xとyに関して対称ではなく、xとyを入れ替えると違う式になってしまいます。 例えばyが原因でxがその結果という因果関係がある時に、yからxを最も正確に推定するa'とb'は次のようになります。
| 回帰係数(傾き):b'= | Sxy ―― Syy |
| ∴x= | -a ― b |
+ | 1 ― b |
y |
| 1 ― b |
= | Sxx ―― Sxy |
≠b'= | Sxy ―― Syy |
| -a ―― b |
=mx- | my ―― b |
≠a'=mx-b'my |
回帰直線はデータの単位やバラツキによって傾きやy切片が変化してしまい、他のデータと比べる時に不都合です。 そこでxとyを標準化してから回帰直線を求めますと、次のようになります。
| zx= | X ―― SDx |
= | x-mx ――― SDx |
| zy= | Y ―― SDy |
= | y-my ――― SDy |
| bs= | Szxzy ――― Szxzx |
= | Sxy/(SDxSDy) ――――――― Sxx/SDx2 |
= | Sxy ―― Sxx |
・√( | Sxx ―― Syy |
) |
| = | Sxy ―――――― √(SxxSyy) |
=r |
回帰直線の信頼性の目安として、相関係数の場合と同じく寄与率を利用することができます。
| 寄与率:r2= | Sxy2 ―――― SxxSyy |
また実質的にはほとんど無意味ですが、母集団の回帰係数つまり母回帰係数βが0かどうかを検定することができます。 (注4)
| 回帰係数の標準誤差:SEb=√{ | Syy-Sxy2/Sxx ――――――― (n-2)Sxx |
} |
| 検定統計量:to= | b ―― SEb |
= | Sxy ―― Sxx |
・√{ | (n-2)Sxx ――――――― Syy-Sxy2/Sxx |
} |
| = | Sxy ―――――― √(SxxSyy) |
・√{ | n-2 ――――――――― 1-Sxy2/(Sxx・Syy) |
}= | r ―― SEr |
「母回帰係数βは0ではない」
「実験から得られた回帰係数bは信頼できる」
厳密に言いますと、この検定は回帰誤差εiが近似的に正規分布するという仮定を必要とします。 回帰分析を適用するには説明変数と目的変数が正規分布に従わなければならない、とよく誤解されています。 しかし直線回帰式を求めること自体に正規性は必要ではなく、回帰係数の検定を行う時だけしか必要ではありません。 しかもその正規性も目的変数の回帰誤差だけに必要であり、目的変数そのものではありませんし、説明変数には全く必要ではありません。 そもそも説明変数は原理的に任意の値に設定することができますので、目的変数と違って確率変数である必要はないのです。
相関係数は2つの変数の間に特定の因果関係を想定せず、どちらの変数も確率変数であるという前提で計算します。 したがって相関係数が厳密に計算できるのは、横断的研究で得られたデータだけということになります。 それに対して回帰直線は原因である説明変数を任意に指定し、結果である目的変数が確率変数であるという前提で計算します。 したがって回帰直線が厳密に計算できるのは、前向き研究で得られたデータだけということになります。 このことが、2つの手法を適切に使い分ける際の大きなポイントになります。 (注5) (→1.7 科学的研究の種類とデザイン)
有意水準5%として表5.1の例題について実際に計算すると、次のように相関係数の検定と全く同じ結果になります。
| b= | 55.01 ――― 110 |
≒0.5 |
| z=tanh-1(r)= | 1 ― 2 |
ln( | 1+r ―― 1-r |
) |
| 下限ρL=tanh{z-t(∞,α)・ | 1 ―――― √(n-3) |
} |
| 上限ρU=tanh{z+t(∞,α)・ | 1 ―――― √(n-3) |
} |
| z=tanh-1(0.816421)= | 1 ― 2 |
ln( | 1.816421 ――――― 0.183579 |
)≒1.14599 |
| 下限ρL=tanh(1.14599-1.96× | 1 ―― √8 |
) |
| 上限ρU=tanh(1.14599+1.96× | 1 ―― √8 |
) |
| Q(a,b)= | n Σ i=1 |
εi2=Σ(yi-y~i)2=Σ{yi-(a+bxi)}2 |
| ∂Q ―― ∂a |
=2na-2Σyi+2bΣxi=0 |
| ∂Q ―― ∂b |
=2bΣxi2-2Σxiyi+2aΣxi=0 |
| a= | Σyi ――― n |
- | bΣxi ――― n |
=my-bmx |
| b= | Σxiyi-(Σxi)(Σyi)/n ――――――――――― Σxi2-(Σxi)2/n |
= | Sxy ―― Sxx |
| ∴y~=a+bx=(my- | Sxy ―― Sxx |
mx)+ | Sxy ―― Sxx |
x |
こうして求めた解は次のような好ましい性質を持ちます。
| Q(a,b)= | n Σ i=1 |
εi2=Σ(yi-y~i)2=Σ{(yi-my)-(y~i-my)}2 |
| =Syy-2bSxy+b2Sxx | =Syy-2( | Sxy ―― Sxx |
)Sxy+( | Sxy ―― Sxx |
)2Sxx |
| =Syy- | Sxy2 ――― Sxx |
| 分散:VT=Vy= | Syy ―― φy |
| 回帰の平方和:Sβ=bSxy= | Syy2 ――― Sxx |
| 分散:Vβ= | Sβ ―― φβ |
| 分散:VR= | SR ―― φR |
| 回帰係数の標準誤差:SEb=√( | VR ―― Sxx |
) |
| 寄与率:r2= | Sβ ―― Syy |
= | Sxy2 ―――― SxxSyy |
| Fβ= | Vβ ―― VR |
= | Sxy2/Sxx ――――――――――― (Syy-Sxy2/Sxx)/(n-2) |
| = | Sxy2/(SxxSyy) ―――――――――――――― {1-Sxy2/(SxxSyy)}/(n-2) |
= | r2 ――――――― (1-r2)/(n-2) |
| =( | r ―― SEr |
)2=to2 |
| 要因 | 平方和SS | 自由度φ | 平均平方和Ms(分散V) | 分散比F |
|---|---|---|---|---|
| 回帰 | Sβ | φβ | Vβ | Fβ=Vβ/VR |
| 残差 | SR | φR | VR | |
| 全体 | Syy | φy | ||
この回帰についての分散分析は、要因Aが連続量である一元配置分散分析に相当します。 この時、総変動のうち回帰によって説明される変動の割合が寄与率になり、上式に示したように相関係数の平方に一致します。 実は「寄与率」とはこのことから付けられた名前なのです。 また回帰の検定つまり回帰係数の検定は相関係数の検定と同じものであり、F値の平方根がt値に一致します。
表5.1の例題について実際に計算してみましょう。
| Sxx=1001- | 99×99 ―――― 11 |
=110 |
| Syy=660.1727- | 82.51×82.51 ――――――― 11 |
≒41.2727 |
| Sxy=797.6- | 99×82.51 ――――― 11 |
=55.01 |
| r2= | 55.012 ――――――― 110×41.2727 |
≒0.667(66.7%) |
| Sβ= | 55.012 ―――― 110 |
≒27.51 |
| SEb=√( | 1.5292 ―――― 110 |
)≒0.1179 |
| 要因 | 平方和SS | 自由度φ | 平均平方和Ms(分散V) | 分散比F |
|---|---|---|---|---|
| 回帰 | 27.5100 | 1 | 27.5100 | 17.990 |
| 残差 | 13.7627 | 9 | 1.5292 | |
| 全体 | 41.2727 | 10 | ||
対応のないt検定つまり群の数が2つの時の一元配置分散分析におけるデータを、
| A1群: | y= | y11, | …, | y1i, | …, | y1n | (i=1,…,n) |
| x= | 1, | …, | 1, | …, | 1 | ||
| A2群: | y= | y21, | …, | y2j, | …, | y2m | (j=1,…,m) |
| x= | 0, | …, | 0, | …, | 0 |
| mx= | n Σ i=1 |
x1i ―― n+m |
= | n ―― n+m |
| my=( | n Σ i=1 |
y1i+ | m Σ j=1 |
y2j) | 1 ―― n+m |
| Sxx=Σx1i2- | (Σx1i)2 ――――― n+m |
=n- | n2 ―― n+m |
= | nm ―― n+m |
| Syy=(Σy1i2+Σy2j2)- | (Σy1i+Σy2j)2 ―――――――― n+m |
| Sxy=Σx1iy1i- | (Σx1i)(Σy1i+Σy2j) ――――――――――― n+m |
| =Σy1i- | n(Σy1i+Σy2j) ―――――――― n+m |
= | nm ―― n+m |
(my1-my2) |
| b= | Sxy ―― Sxx |
= | nm ―― n+m |
(my1-my2)・ | n+m ―― nm |
=my1-my2 |
| a=my-bmx= | Σy1i+Σy2j ―――――― n+m |
-(my1-my2) | n ―― n+m |
=my2 |
| Sβ= | Sxy2 ――― Sxx |
= | nm ―― n+m |
(my1-my2)2 |
| =(Σy1i2+Σy2j2)- | (Σy1i+Σy2i)2 ―――――――― n+m |
- | nm ―― n+m |
(my1-my2)2 |
| =Σy1i2- | (Σy1i)2 ――――― n |
+Σy2j2- | (Σy2j)2 ――――― m |
| SR ―― φR |
= | SS ――― n+m-2 |
=V |
| r2= | Sβ ―― Syy |
= | Sxy2 ―――― SxxSyy |
| Fβ= | Sβ/φβ ――――― SR/φR |
= | nm ―― n+m |
・ | (my1-my2)2 ―――――― V |
| = | (my1-my2)2 ―――――――― {(n+m)/(nm)}V |
=to2 |
以上のように、この時の回帰係数bは2群の平均値の差となり、回帰係数の検定は要因Aの検定つまり対応のないt検定と一致します。 そしてこの時の相関係数rは名義尺度である群分類と計量値との間の相関性を表す値と解釈できますので、「相関比η(correlation ratio、イータ)」と呼ぶことがあります。 回帰分析で重要なものは回帰係数と寄与率ですから、対応のないt検定で重要なものは本当は平均値の差と寄与率であり、検定は実質的にほとんど意味がないことがこのことからもわかると思います。 (→5.3 計数値の相関・(3)名義尺度と計量値の場合)
一元配置分散分析におけるF値と寄与率の間には、一般に次のような関係があります。
| F= | R2/φβ ―――――― (1-R2)/φR |
| R2= | φβF ――――― φβF+φR |
| t2= | r2 ――――― (1-r2)/φ |
| r2= | t2 ――― t2+φ |
= | (my1-my2)2/V ―――――――――――――― (my1-my2)2/V+φ(n+m)/(nm) |
このように分散分析やt検定の結果は比較的簡単に寄与率に翻訳することができますので、実験結果について科学的な考察をする時は検定結果よりもむしろ寄与率を重要な指標として用いるべきです。 もちろん、最も重要なものは平均値などの要約値であることはいうまでもありません。
ちなみに、2群の平均値の差を標準偏差で割った値(my1-my2)/SDのことを「効果量(effect size)」ということがあります。 これは2群の平均値の差を標準化したものであり、データの単位とは無関係な値になります。 このためこの値は、2群の平均値の差の大きさの目安として使われます。 しかしこの値は上限と下限が理論的に無制限であり、解釈が難しい時があります。 それに対して寄与率は上限と下限が決まっているので解釈が容易であり、一般性があるため2群の平均値の差だけでなく多くの場合に利用できます。 しかも上式のように効果量と例数から簡単に導くことができますので、効果量よりも寄与率の方が便利な指標だと思います。
横断的研究では原因因子と結果因子を区別せずどの因子も制御せずに観測するため、説明変数も目的変数も変数型になります。 したがって2つの因子の関連性を要約するには、相関分析系の手法が適しています。 それに対して前向き研究では原因因子を制御して結果因子を前向きに観測するため、説明変数が母数型になり目的変数が変数型になります。 したがって2つの因子の関連性を要約するには、回帰分析系の手法が適しています。 後ろ向き研究では結果因子を制御して原因因子を後ろ向きに観測するため、説明変数が変数型になり、結果変数が母数型になります。 この場合は結果変数の値を導き出す一番もっともらしい説明変数の値を分析する、判別分析系の手法が適しています。
普通の分散分析は、説明変数が名義尺度の時の回帰分析に相当します。 しかし名義尺度のデータが変数型の時は、一方が名義尺度の時の相関分析に相当し、母数型の時とは計算法が少し異なります。 しかし実際の研究現場では、両者の違いを厳密に区別せずに利用していることが多いようです。