独立した2群間の平均を比較する場合
- t検定
- Welch検定
の2つの方法があります。
t検定とWelch検定の違い
t検定(Studentのt-検定)は,
- 2群が正規分布に従う母集団から抽出されたと仮定
- 2群の母分散は等しいことを仮定
一方、Welchのt検定は、
- 2群が正規分布に従う母集団から抽出されたと仮定(t検定と同じ)
- 2群の母分散は等しいことを仮定しない。
さらにt検定とWelch検定の計算方法にも以下の違いがある。
- 検定統計量
- 自由度
t検定(Studentのt-検定)場合、
$$検定統計量:\frac{ x_1 - x_2 }{ s_p\sqrt{1/n_1 + 1/n_2}}$$
- \(x_1\) と \(x_2\) は標本平均
- \(n_1\) と \(n_2\) は標本1 と標本2のサイズ
- \(s_p = \sqrt{ \frac{(n_1-1)s_1^2 + (n_2-1)s_2^2}{(n_1+n_2-2)}}\)
- \(s_1^2\) と\(s_2^2\) は標本分散
自由度: \(n_1 + n_2 - 2\)
Welchのt-検定の場合
$$検定統計量: \frac{x_1 - x_2}{ \sqrt{s_1^2/n_1 + s_2^2/n_2}}$$
- \(x_1\) と \(x_2\) は標本平均
- \(n_1\) と \(n_2\) は標本1 と標本2のサイズ
自由度:\(\frac{(s_1^2/n_1 + s_2^2/n_2)^2 }{ \frac{(s_1^2 / n_1)^2}{ (n_1 - 1) }+ \frac{(s_2^2 / n_2)^2}{(n_2 - 1) }}\)
Welch検定の自由度は、2つの標準偏差の差を考慮します。もし、2つの標本標準偏差が同じであれば、Welch検定の自由度は、t検定の自由度と同じとなりますが、通常、2群の標準偏差は異なるので、Welch検定の自由度はt検定の自由度より小さくなる傾向があります。
t検定ではなく、Welch検定を使うべき!?(問題提起)
独立した2群の平均を比較するときに、
「Welch検定を第一選択するべきである」
という意見もあります。
なぜなら、2群の平均を比較する場合、各群の標準偏差が同じになることはまずありません。そのため、分散が等しいという仮定をする必要がないように、常にWelch検定を使用するのが良いという考え方です。
Rを使ったWelch検定の具体例
では、実際にサンプルデータを使って、Rで2群間のWelch検定を行ってみましょう。
サンプルデータ
group A:14,15,15,15,16,18,22,23,24,25,25
group B:10,12,14,15,18,22,24,27,31,33,34,34,34
ウェルチ検定のR関数はt.test()です。
t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95, ...)
この時、デフォルト設定は、
- alternative = "two.sided" ←両側検定
- paired = FALSE ←対応なし
- var.equal = FALSE ←等分散性を仮定しない
- conf.level = 0.95 ←有意水準0.05
となっていますので、特に引数を追加する必要はありません。
groupA <- c(14,15,15,16,16,18,22,23,24,24,25,25,26,27)
groupB <- c(10,12,14,14,18,23,24,27,31,33,34,34,34, 35,35,37,39)
t.test(groupA, groupB)
を実行すると、結果は以下の通りです。
Welch Two Sample t-test
data: groupA and groupB
t = -2.2274, df = 24.095, p-value = 0.03552
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-11.5422914 -0.4409019
sample estimates:
mean of x mean of y
20.71429 26.70588
- P値は0.03552
- 95%信頼区間が-11.5422914 から-0.4409019
ですから、Welch検定の結果、2つの母集団の平均値(20.71429と26.70588)には有意な差があることが分かりました。
おまけ
ちなみに2群間の母分散の検定をRで実施する場合はvar.test()関数を使います。
帰無仮説は「2群間の母分散は等しい」です。
var.test(groupA, groupB)
結果は以下のようにp値が 0.0124ですから、帰無仮説は棄却され、
「2群間の母分散は等しいとは言えない」と結論づけられます。
F test to compare two variances
data: groupA and groupB
F = 0.23757, num df = 13, denom df = 16, p-value = 0.0124
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.08334295 0.71911467
sample estimates:
ratio of variances
0.2375739
まとめ
2群間の平均値の差の検定でよく使われるWelch検定をまとめてみました。t検定と一緒に理解しておけば対応するデータに遭遇した時に、適切に使い分けすることもできますね。
コメント