PR

Rを使ってウェルチ検定(Welch test)を簡単に求めてみる

医学統計学
記事内に広告が含まれています。


独立した2群間の平均を比較する場合

  1. t検定
  2. 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検定と一緒に理解しておけば対応するデータに遭遇した時に、適切に使い分けすることもできますね。

コメント