知って面白い回帰分析のあれこれ
2群の平均値の差の検定
A群 B群 No.1 7 9.3 No.2 6 8.5 No.3 8 7.9 No.4 5 9.1 No.5 7 6.7 No.6 6 7.7 No.7 8 8.3
Rのt.test()を使用して分析
> x [1] 7 6 8 5 7 6 8 > y [1] 9.3 8.5 7.9 9.1 6.7 7.7 8.3 > t.test(x, y, var.equal=T) Two Sample t-test data: x and y t = -2.7903, df = 12, p-value = 0.01633 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.6712605 -0.3287395 sample estimates: mean of x mean of y 6.714286 8.214286
この結果よりA群の母平均とB群の母平均は等しくないといえるわけです。
一方でこのデータをダミー変数を取り入れて回帰分析してみましょう。
A B 観測値 No.1 1 0 7 No.2 1 0 6 No.3 1 0 8 No.4 1 0 5 No.5 1 0 7 No.6 1 0 6 No.7 1 0 8 No.8 0 1 9.3 No.9 0 1 8.5 No.10 0 1 7.9 No.11 0 1 9.1 No.12 0 1 6.7 No.13 0 1 7.7 No.14 0 1 8.3
Rのlm()を使用して分析
> res <- lm(xy ~ g) > summary(res) Call: lm(formula = xy ~ g) Residuals: Min 1Q Median 3Q Max -1.7143 -0.6643 0.1857 0.7357 1.2857 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.7143 0.3801 17.66 5.92e-10 *** g 1.5000 0.5376 2.79 0.0163 * --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 1.006 on 12 degrees of freedom Multiple R-Squared: 0.3935, Adjusted R-squared: 0.343 F-statistic: 7.786 on 1 and 12 DF, p-value: 0.01633
この結果より得られた回帰式は
y = 6.7143 + 1.5000 * g
です。つまりg=0のとき(A群のとき)は
y = 6.7143 + 1.5000 * 0 = 6.7143
となり,g=1のとき(B群のとき)は
y = 6.7143 + 1.5000 * 1 = 8.2143
となり,これらの値はそれぞれの群の平均値と一致します。
> x.mean <- mean(x) > y.mean <- mean(y) > x.mean # A群の平均値 [1] 6.714286 > y.mean # B群の平均値 [1] 8.214286
図を見れば理解しやすいでしょう。(塗りつぶしてない)黒丸が観測値で,(塗りつぶしてある)青丸が各群の平均値です。つまり各群の平均値を直線で結んだものが先ほど求めた回帰式であるということです。もう少しいえば,直線の傾きが大きいほど差が大きいともいえるわけです。
このように考えると2群の平均値の差の検定も違った見方(解釈)ができるでしょう?これは分散分析の場合でも同じです。
> plot(g, xy) > points(0, x.mean, pch=19, col="blue") > points(1, y.mean, pch=19, col="blue") > z <- lsfit(g,xy) > abline(z, col="blue")