<<目次へ


知って面白い回帰分析のあれこれ



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")