Rによる対応のあるt検定
R にてt検定を実行する.t検定は2群間の平均値の差を比較する検定であるが,その対象の2群間の平均値が独立とはいえない場合,すなわち対応がある場合は対応のあるt検定を用いる.対応がある場合とは,同一検体に2種類の薬剤を投与し,その薬剤の効果の差を検定したい場合や,2つのソフトウェアを作り上げ,それらの性能比較を複数個のサンプルからなるベンチマークセットを同じく適用した際の比較をしたい場合等のことをいう.スチューデントやウェルチの対応のないt検定とは異なり,データ間の分散を気にする必要がない.
t検定の使い分け
t検定は以下の表に従って使い分ける.
状況 | 適用すべきt検定 |
---|---|
データに対応がある. | 対応のあるt検定 |
データに対応がなく,2群間に等分散性が仮定できる. | スチューデントのt検定 |
データに対応がなく,2群間に等分散性が仮定できない. | ウェルチのt検定 |
p値の計算
対応のあるt検定を行うために,R のデフォルトデータセットに適したサンプルデータが存在する.データセット sleep は,2種類の睡眠薬を10人の被験者にそれぞれ投与した際に,増加した睡眠時間を記録したものである.2種類の薬剤を同一被験者に投与しているので,その値には対応があるといえる.データセット sleep は以下のコマンドで確認できる.
$ print(sleep)
以下のコマンドにて,薬剤1および2によって生じた効果をそれぞれ新たな変数,agent1およびagent2に納める.
$ agent1=sleep[1:10,1] $ agent2=sleep[11:20,1]
これらの平均は以下のコマンドで確認できる.
$ mean(agent1) $ mean(agent2)
これを実行した結果はそれぞれ以下のようになる.これらの値に有意な差があるのかどうかを検定する.
0.75
2.33
対応のあるt検定は,コマンド t.test() にて実行できる.実際には,t.test(データセット1,データセット2,paired=T) のように打つ.この paired=T が対応のあるt検定を行うためのオプションで,これを F にするとウェルチのt検定が実行される.有意水準は0.05で検定すると決める.帰無仮説 (H0) は,2群間の平均値に差がないこと,となる.実際のコマンドは以下のように打つ.
$ t.test(x=agent1,y=agent2,paired=T)
これを実行した結果は以下のようになる.最初の行の Paired t-test というのが対応のあるt検定を行ったという表記である.結果より,p<0.05 なので,帰無仮説を棄却し,薬剤1と薬剤2の薬効には差があると結論する.
Paired t-test data: agent1 and agent2 t = -4.0621, df = 9, p-value = 0.002833 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.4598858 -0.7001142 sample estimates: mean of the differences -1.58
オプション一覧
オプションには以下のようなものがある.
オプション | 詳細 |
---|---|
x | ベクトル形式のインプットデータ.必須. |
y | x と比較したいデータ. |
alternative | 両側検定か片側検定の指定.'alternative="t"' のように指定する.両側検定は 't',左側検定は 'l',右側検定は 'g'を指定する.デフォルトは両側検定. |
paired | T か F で指定.データ間に対応があるかないかを指定するオプション. |
var.equal | データ間に等分散性が仮定できるかどうかを T または F で指定.対応のあるt検定をする場合,不要. |