共分散分析
例えばA群にはXとYという2変量のデータがあったとする(B群も同様)。ここでそれぞれの群の散布図を描き,それに直線を当てはめてみる(図1と図2)。
表1 A群のデータ | 表2 B群のデータ | ||||||||||||||||||||||||
|
|
図1 表1の散布図と回帰直線 |
図2 表2の散布図と回帰直線 |
このように2本の回帰直線が得られたとき,それぞれの直線を比較する方法の1つとして共分散分析というものがある。共分散分析といっても,実際にやることはダミー変数を用いた重回帰分析にすぎないので安心してもらいたい。
群を表すダミー変数を取り入れる
表1と表2のデータに群を表すダミー変数を取り入れて表3のようにします。
実際に分析するときはどちらかのダミー変数を取り除きます。今回はA群の列のデータを取り除いて分析しました(以下はRでの実行結果)。
> dat [,1] [,2] [,3] [1,] 0 1.2 5.4 [2,] 0 2.1 4.8 [3,] 0 3.7 4.5 [4,] 0 4.2 3.6 [5,] 0 5.6 3.1 [6,] 1 1.3 3.6 [7,] 1 2.2 3.0 [8,] 1 3.4 2.6 [9,] 1 3.9 2.4 [10,] 1 4.5 1.8 > summary(lm(dat[,3] ~ dat[,1] + dat[,2])) Call: lm(formula = dat[, 3] ~ dat[, 1] + dat[, 2]) Residuals: Min 1Q Median 3Q Max -0.24992 -0.12393 -0.00952 0.07528 0.39408 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.00034 0.18553 32.34 6.99e-09 *** dat[, 1] -1.75360 0.13199 -13.29 3.20e-06 *** dat[, 2] -0.51201 0.04782 -10.71 1.36e-05 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.2075 on 7 degrees of freedom Multiple R-Squared: 0.9741, Adjusted R-squared: 0.9667 F-statistic: 131.7 on 2 and 7 DF, p-value: 2.793e-06
この結果から得られた回帰方程式は
y = 6.00 - 1.75 * z - 0.51 * x
です。zは群を表す変数(0 = A群, 1 = B群)ですから,
z = 0のとき, y = 6.00 - 0.51 * x
z = 1のとき, y = 4.25 - 0.51 * x
となり,これは図1と図2に描かれている直線の方程式とほぼ一致します。図3が図1に上の直線(ピンク色の線)を上書きしたもので,図4が図2に直線を当てはめたものです。
図3 | 図4 |
〜数学的な説明〜
y = a + b * z + c * x というモデルを考える。
偏回帰係数の検定は
H0 : 偏回帰係数は0である (b = 0)
という帰無仮説のもとで行われるので,
b = 0ならば, y = a + 0 * z + c * x = a + c * x
b ≠ 0ならば, y = (a + b * z) + c * x
といえる。すなわち,H0が採択されたとき
y = a + c * x
なのだから,変数zの影響は全く受けないということになる。つまり群間差は認められないということである。
H0が棄却された場合,b ≠ 0なので
y = (a + b * z) + c * x
が成り立つ。このとき,z = (0, 1)なのだから,
z = 0のとき, y = a + b * 0 + c * x = a + c * x
z = 1のとき, y = a + b * 1 + c * x = a + b + c * x
となり,係数bの分だけ群間差が認められるといえる。 (b ≠ 0でないことは既に検定済み)
なお共分散分析は2本の直線の傾きが等しいと仮定していることに注意してほしい。