t検定(平均値の差の検定)
t検定(2群の平均値の差の検定)はパラメトリック検定の1つなので,母集団の正規性や等分散性が仮定されていなければなりません。したがって,t検定を行う前にはあらかじめ母分散が等しいかどうかを等分散性の検定によって確かめておく必要があります。
t検定とは、、、
- 間隔尺度以上のデータに適用できる
- パラメトリック検定の1つである
- 独立・対応ありのデータに適用できる
- 2つの平均値に差があるかどうかを確かめることができる
帰無仮説H0:2群の平均値に差はない
まず等分散性の検定を行う。
⇒等分散性が仮定できたらt検定を行う。
⇒等分散性が仮定できなかったらウェルチの検定を行う。
この際に対応ありのデータなのか独立なデータなのかをしっかりと区別しておいてください。
例 題(独立なデータの場合)
笑うことによって血糖値は下がるという傾向があるらしいが,実際に漫才を見せて笑わせてから血糖値を測ったグループ(笑いありグループとする)と何もしないで血糖値を測ったグループ(笑いなしグループとする)とで血糖値を測ってみた(下表)。グラフを見る限りでは確かに笑いあり群の方が血糖値が低いようであるが,ほんとうに2群の平均値に差があるといえるだろうか(図の棒グラフは各群の平均値をプロットしたもの)。
|
![]() |
解 説
まずは等分散性の検定により母分散が等しいかどうかを確かめます。 *等分散性の検定をせずに,最初から「等分散を仮定しない場合のt検定」を行ってください。
> x<-c(dat[,1])
> y<-c(dat[,2])
> var.test(x,y)
F test to compare two variances
data: x and y
F = 0.3327, num df = 9, denom df = 9, p-value = 0.1167
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.0826417 1.3395085
sample estimates:
ratio of variances
0.332715
☆F値で判断してみると
次のように帰無仮説を立てます。
H0:2群の母分散は等しい
F=0.3327<F99,0.05=3.18なので帰無仮説は棄却できません。したがって,等分散性が仮定できないのでウェルチの検定を行った方が良いと思われます。
☆p値で判断してみると
F値で判断する場合では有意水準を0.05としましたが,平均値の差の検定の前準備として行う場合には有意水準を0.25程度にしておいた方が良いかもしれません(上の例では0.25という有意水準の表が手元にないであろうと思われるので0.05として考えました)。
そういうわけでα=0.25として考えてみると求めたp値はp=0.1167ですから,
p=0.1167<0.25
となり帰無仮説を棄却することができます。したがって,等分散性が仮定できたのでt検定を行っても良いようです。
次に対応ありのデータなのかそれとも独立なデータなのかを考えますが,今回の例では笑いあり群の被験者と笑いなし群の被験者はそれぞれ別の人たちなので独立なデータということになります。
> t.test(x,y,var.equal=T)
Two Sample t-test
data: x and y
t = -6.1622, df = 18, p-value = 8.098e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-30.43927 -14.96073
sample estimates:
mean of x mean of y
87.9 110.6
まず帰無仮説は
H0:笑いあり群の平均値と笑いなし群の平均値に差はない
なので,上のRの計算結果より
t=-6.1622>t18,0.05=2.101
p=8.098e-06<0.05
となるので,帰無仮説を棄却します。したがって,笑うことによって血糖値が下がるという話は本当らしいといえる。
補 足
ところで,p値=8.098e-06・・・ってなんじゃコリャと思った人もいるでしょう。これは8.098×1/1000000=0.000008098となります。つまりとても小さい数あるいはとても大きい数を見やすく表す記号とでも考えておけば良いでしょう。例えば,
105=10*10*10*10*10=100000 ・・・ 1e+05(1の後ろに0が5個つく)
10-5=1/100000=0.000001 ・・・ 1e-05(1の前に0が5個つく)
ちなみに,
1005=100*100*100*100*100=10000000000 ・・・ 1e+10(1の後ろに0が10個つく)
100-5=1/10000000000=0.0000000001 ・・・ 1e-10(1の前に0が10個つく)
例 題(対応ありのデータの場合)
血糖値は睡眠時間によっても変化するらしい。例えば,平均睡眠時間が6時間以下,あるいは,9時間以上の人は平均睡眠時間が7〜8時間の人に比べて血糖値が高いという話がある。そこで平均睡眠時間が6時間以下の被験者を10人集めてその血糖値を測定してみた。さらにその後,睡眠時間を平均7時間として睡眠時間を改善してみてから再度,血糖値を測定してみたところ以下のようなデータを得ることができた。睡眠時間を改善することによって血糖値が下がったといえるだろうか。
| 改善前-6時間以下(mmol/L) | 改善後-7時間(mmol/L) | |
| 被験者1 | 6.8 | 5.5 |
| 被験者2 | 6.6 | 5.8 |
| 被験者3 | 5.9 | 5 |
| 被験者4 | 6.1 | 5.4 |
| 被験者5 | 5.7 | 5.5 |
| 被験者6 | 6.2 | 5.7 |
| 被験者7 | 5.9 | 4.9 |
| 被験者8 | 6.3 | 5.2 |
| 被験者9 | 5.7 | 5 |
| 被験者10 | 6 | 5.5 |

まず帰無仮説を次のように立てて仮説を検定していきましょう。
帰無仮説H0:睡眠時間の改善前と改善後の平均値に差はない
今回のケースでは改善前と改善後とで被験者が同じなので,対応ありのデータとして分析を行います。対応ありのデータの場合はその差を1つの標本としてみなしてよいので,t検定を行う前に等分散性の検定をする必要はありません(注1)。
> t.test(x,y,paire=T,var.equal=T)
Paired t-test
data: x and y
t = 7.5304, df = 9, p-value = 3.577e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.538689 1.001311
sample estimates:
mean of the differences
0.77
上の結果からt=7.5304>t9,0.05=2.262(p=0.00003577<0.05)となるので帰無仮説を棄却します。したがって,改善前と改善後の平均値に差が認められる。すなわち,睡眠時間を改善することによって血糖値は下がるようである。
注 1
そもそもt検定を行う前に等分散性の検定をするのはどうしてでしょうか。通常2つの平均値の差を検定する場合には対をなすデータ(対応ありのデータ)と対をなさないデータ(独立なデータ)を扱うわけですが,前述したように対をなすデータの場合は1標本として考えます。
一方,対をなさないデータは2標本問題と呼ばれる場合で,2つの標本は互いに独立であるわけです。このとき,母分散が分からない場合は標本分散を代わりに用いるわけですが,この標本分散を用いてつくったt統計量の分布は未知の分散比(つまり母分散の比)によって影響を受けてしまうのです。
これを一般にベーレンス・フィッシャーの問題といい,この場合の近似解を得るための方法としてウェルチの検定を用いるというわけです。