MENU

t 検定と分散分析と回帰分析は同じことをしている

分散分析と回帰分析とt検定は同じものである。

これがわかれば、重回帰分析(共分散分析)が交絡因子調整した群間比較に使われる理由がわかるだろう。

>>もう統計で悩むのは終わりにしませんか? 

↑期間・数量限定で無料プレゼント中!

目次

t検定は回帰分析でもできるし、分散分析は二群でもできる

ここで、t検定は、いわゆる t 検定のことであり、独立した二群の平均値の差の検定のことを言っている。

t検定は回帰分析でもできる。

分散分析でもできる。

Rの関数を使って計算してみる。

使うデータはsleepというデータで、extraという変数をgroup間で比較する。

t検定の結果

t.test()を使って計算する。

等分散性を仮定した方法にする(var=T)。

t.test(extra~group, var=T, data=sleep)

結果は以下の通り。

Group1の平均が0.75、Group2の平均が2.33で、かなり離れてはいそうだが、サンプルサイズが小さいからか、分散が大きいためか統計学的有意ではない(p=0.07919)。

> t.test(extra~group, var=T, data=sleep)
Two Sample t-test
data:  extra by group
t = -1.8608, df = 18, p-value = 0.07919
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.363874  0.203874
sample estimates:
mean in group 1 mean in group 2
0.75            2.33

回帰分析の結果

lm()を使って回帰分析を行う。

lm()のなかの「~」を挟んで、左が連続量(目的変数、従属変数、Y)、右がグループ変数(説明変数、独立変数、X)だ。

カテゴリ変数を説明変数にした回帰分析ということである。

lm.res1 <- lm(extra~group, data=sleep)
summary(lm.res1)

結果は以下の通り。

t検定の結果に相当するのが、Coefficients:のgroup2行右端の「0.0792 .」

p=0.07919の最後の桁を四捨五入すれば、同じ値だ。

数字の最後の「.」は0.05以上、0.1未満を意味している。

そして実は分散分析の結果も出ている。

最下段のF-statistic:の行右端「p-value: 0.07919」である。

> lm.res1 <- lm(extra~group, data=sleep)
> summary(lm.res1)
Call:
lm(formula = extra ~ group, data = sleep)
Residuals:
Min     1Q Median     3Q    Max
-2.430 -1.305 -0.580  1.455  3.170
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.7500     0.6004   1.249   0.2276
group2        1.5800     0.8491   1.861   0.0792 .
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.899 on 18 degrees of freedom
Multiple R-squared:  0.1613,    Adjusted R-squared:  0.1147
F-statistic: 3.463 on 1 and 18 DF,  p-value: 0.07919

分散分析の結果

分散分析を使う方法はいくつかある。

  1. aov()を使う方法
  2. lm()の結果を使う方法 ― anova()を使う
  3. lm()の結果を使う方法 その2 ― car パッケージのAnova()を使う
# 1.
aov1 <- aov(extra ~ group, data=sleep)
summary(aov1)
# 2. 
anova(lm.res1)
# 3.
library(car)
Anova(lm.res1)

aov()を使った # 1. は、group行の右端「0.0792 .」が答え。

anova()を使った # 2. は Response: extraのgroup行の右端「0.07919 .」が求めた値。

Anova()を使った # 3. もResponse: extraのgroup行右端「0.07919 .」が必要な値だ。

共分散分析のときはAnova()を使うほうがよい。

一元配置分散分析の時はanova()と同じ結果になるのでどちらを使ってもOK。

# 1.
> aov1 <- aov(extra ~ group, data=sleep)
> summary(aov1)
Df Sum Sq Mean Sq F value Pr(>F)
group        1  12.48  12.482   3.463 0.0792 .
Residuals   18  64.89   3.605
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

# 2.
> anova(lm.res1)
Analysis of Variance Table
Response: extra
Df Sum Sq Mean Sq F value  Pr(>F)
group      1 12.482 12.4820  3.4626 0.07919 .
Residuals 18 64.886  3.6048
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

# 3.
> library(car)
Loading required package: carData
> Anova(lm.res1)
Anova Table (Type II tests)
Response: extra
Sum Sq Df F value  Pr(>F)
group     12.482  1  3.4626 0.07919 .
Residuals 64.886 18
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

小まとめ

t検定も回帰分析も分散分析も同じ「p=0.07919」であった。

つまり、t検定も回帰分析も分散分析も、要は「同じ」。

「t検定」と「回帰分析、分散分析」の違いは、拡張性だ。

回帰分析や分散分析は説明変数を増やして、重回帰分析や共分散分析(ANCOVA, Analysis of covariance)に拡張できる点が優れている。

分散分析と回帰分析とt検定が同じことを示す別の例

MASS パッケージの birthwt データセットの smoke(母親の喫煙)と bwt (児の出生体重)を使って検定してみる。

t検定の結果

library(MASS)で、MASS パッケージを呼び出す。

t.test()を使う。等分散を仮定する(var=T)。

library(MASS)
t.test(bwt~smoke, var=T, data=birthwt)

結果は以下の通り、smoke=1(喫煙)グループのほうが平均値が300グラム程度低く、統計学的有意に異なっていた(p = 0.008667)。

> library(MASS)
> t.test(bwt~smoke, var=T, data=birthwt)
Two Sample t-test
data:  bwt by smoke
t = 2.6529, df = 187, p-value = 0.008667
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
72.75612 494.79735
sample estimates:
mean in group 0 mean in group 1
3055.696        2771.919

回帰分析の結果

lm()を使う。

bwt を「~」の左に、smoke を「~」の右に配置する。

summary(lm.res2 <- lm(bwt~smoke, data=birthwt))

smoke 行の右端のp値が「0.00867 ** 」であることがわかる。「**」はここでは0.01未満で、0.001以上であることを示している。

> summary(lm.res2 <- lm(bwt~smoke, data=birthwt))
Call:
lm(formula = bwt ~ smoke, data = birthwt)
Residuals:
Min      1Q  Median      3Q     Max
-2062.9  -475.9    34.3   545.1  1934.3
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)  3055.70      66.93  45.653  < 2e-16 ***
smoke        -283.78     106.97  -2.653  0.00867 **
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 717.8 on 187 degrees of freedom
Multiple R-squared:  0.03627,   Adjusted R-squared:  0.03112
F-statistic: 7.038 on 1 and 187 DF,  p-value: 0.008667

分散分析の結果

分散分析はanova()とAnova()の二つで計算してみる。一元配置分散分析なので結果は同じになる。

anova(lm.res2)
library(car)
Anova(lm.res2)

結果は「0.008667 **」で、二つとも同じであった。

> anova(lm.res2)
Analysis of Variance Table
Response: bwt
Df   Sum Sq Mean Sq F value   Pr(>F)
smoke       1  3625946 3625946  7.0378 0.008667 **
Residuals 187 96343710  515207
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
> library(car)
> Anova(lm.res2)
Anova Table (Type II tests)
Response: bwt
Sum Sq  Df F value   Pr(>F)
smoke      3625946   1  7.0378 0.008667 **
Residuals 96343710 187
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

こちらの例も、t検定、回帰分析、分散分析すべて同じ結果になった。

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

まとめ

Rの組み込みデータセット2つを使って、t検定、回帰分析、分散分析の結果を比較してみた。

いずれにおいても、t検定、回帰分析、分散分析の3つは、まったく同じ結果になった。

つまり、この3つは同じことをしていることがわかる。

回帰分析、分散分析がt検定と違うところは、多変量解析に拡張できるところ。

このことがわかれば、単変量でt検定を行い、多変量では重回帰分析や共分散分析を行う理由も理解できるだろう。

何らか役に立てば幸い。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次