対応のないt検定

Rにてt検定を実行する。t検定は対応のないt検定と対応のあるt検定に分けられ,さらに,対応のないt検定はスチューデントのt検定ウェルチのt検定のふたつに分類される.スチューデントのt検定やウェルチのt検定は,2群間の平均値が独立である場合に用いることができる.例えば,東京都と大阪府出身の成人男性の身長の平均値の差の検定等には対応がないt検定を使う.スチューデントおよびウェルチの2種類の検定法は,与えられた2群のデータが互いに等分散であるかどうかに基づいて,その使用を決定する.2群間の分散が等しい場合にはスチューデントのt検定を,等分散とはみなせられない場合にはウェルチのt検定を用いる.等分散性の検定にはF検定を用いることができる.ただし,F検定の後にt検定を用いることは検定の繰り返し行為に該当するため,正しくないと考える見方もある.

対応のないt検定は以下のように行う.最初に架空のデータセットを作成する.生理食塩水を9匹のマウスに投与し,それとは別に薬剤を10匹のマウスに投与し,10日後の体重の変化の差を比較するとする.以下のようにコマンドを打つことで整理食塩投与群 saline と薬剤投与群 agent1 のデータを作成する.関数 rnorm は mean および sd で指定した平均値および標準偏差の正規分布に従う値を指定した数発生させる関数であり,この場合,saline の平均値および標準偏差は大体2および1.5,agent1 の平均値および標準偏差は大体6および2.5であることが期待される.

1|$saline=rnorm(9,mean=2,sd=1.5)
2|$agent1=rnorm(10,mean=6,sd=2.5)

架空の設定から,これら2群には対応がないことが明らかなので,最初にコマンド var.test() にてF検定を行う.コマンドは var.test(データセット1,データセット2) のように用いる.有意水準を 0.05 と決める.F検定の帰無仮説は '対象の2群の分散に差はないこと' なので p<0.05 なら帰無仮説は棄却され,対象の2群は不等分散、それ以外の場合は等分散と結論される.

1|$var.test(saline,agent1)
        F test to compare two variances

data:  saline and agent1 
F = 0.0738, num df = 8, denom df = 9, p-value = 0.001212
alternative hypothesis: true ratio of variances is not equal to 1 
95 percent confidence interval:
 0.01799692 0.32166212 
sample estimates:
ratio of variances 
        0.07382257 

結果より p<0.05 なので '対象の2群が等分散である' という帰無仮説が棄却され,2群間は不等分散であることが示唆された.よって,これら2群の検定にはウェルチのt検定を用いる.ウェルチのt検定はコマンド t.test() にて実行できる.実際には,t.test(データセット1,データセット2,var.equal=F) とする.有意水準は 0.05 とする.帰無仮説は '2群間の平均値に差がないこと' となる.

1|$t.test(saline,agent1,var.equal=F)
        Welch Two Sample t-test

data:  saline and agent1 
t = -4.6286, df = 15.757, p-value = 0.0002898
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -5.579534 -2.071097 
sample estimates:
mean of x mean of y 
 2.325156  6.150472 

結果から,p<0.05 なので帰無仮説が棄却され,薬剤によりマウスの体重が有意に増加することが明らかになった.

一方で,2群間の分散に差がないときはstudentのt検定にて検定を行う.最初に,架空のデータセットを作成する.生理食塩水を15匹のマウスに投与し,それとは別に薬剤を15匹のマウスに投与し,20日後の体重の変化の差を比較するとする.以下のコマンドでデータセットを作成する.

1|$saline=rnorm(15,mean=5.4,sd=2.9)
2|$agent2=rnorm(15,mean=6.1,sd=2.5)

以上の以下のようにデータをF検定する.

1|$var.test(saline,agent2)
        F test to compare two variances

data:  saline and agent2 
F = 0.5909, num df = 14, denom df = 14, p-value = 0.3364
alternative hypothesis: true ratio of variances is not equal to 1 
95 percent confidence interval:
 0.1983903 1.7601156 
sample estimates:
ratio of variances 
         0.5909229 

結果より,p<0.05 ではないので帰無仮説は保留され,2群のデータセットは等分散であることが示唆された.よって,これらの2群に対しては,スチューデントのt検定を行う.スチューデントのt検定もコマンド t.test() にて実行できる.実際には t.test(データセット1,データセット2,var.equal=T) のように入力する.帰無仮説は '2群間に差がないこと' となる.

1|$t.test(saline,agent2,var.equal=T)
        Two Sample t-test

data:  saline and agent2 
t = -0.9126, df = 28, p-value = 0.3693
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -2.720741  1.043696 
sample estimates:
mean of x mean of y 
 4.890094  5.728616 

結果より,p<0.05 ではないため,帰無仮説を保留し,この薬剤による特別な体重増減効果はないと結論する.

2群間の平均値の比較は以下のようにまとめられる.

2群間に対応がある場合 → 対応のあるt検定

2群間に対応がない場合はさらに以下のように分岐する.

F検定をしてp<0.05である場合 (不等分散) → Welchのt検定

F検定をしてp<0.05でない場合 (等分散) → studentのt検定

このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る