t検定(対応なし):2つのグループの「母平均」に差があるか調べる

「Aの方法とBの方法、結果に違いはあるか?」を判断する際、目に見える平均値の差だけで判断するのは、少し注意が必要です。

例えば、2つの異なる勉強法を試したグループ間で、テストの平均点に5点の差があったとき、それが「たまたま」なのか、それとも「背後にある母集団(全ての受験者)の平均点そのものに差がある」と言えるのかを考えます。

この判断を下すための具体的な手法が、「t検定(対応なし)」です。

今回のシナリオ:学習メソッドの比較

ある資格試験の対策として、2つの学習スタイル(メソッドAとメソッドB)の効果を比較します。

それぞれのメソッドで学習した別々のグループのスコアを比較し、「2つのグループの母平均(真の平均値)が異なると言えるか」を検証します。

  • グループA: メソッドAで学んだ10名
  • グループB: メソッドBで学んだ10名(※Aとは別の人たち)

データの準備


# グループAのスコアデータ
group_a <- c(65, 72, 78, 70, 82, 68, 75, 80, 64, 76)

# グループBのスコアデータ
group_b <- c(78, 85, 80, 92, 84, 88, 82, 90, 83, 86)

グループAの平均値を計算する。


mean(group_a)

[1] 73

グループBの平均値を計算する。


mean(group_b)

[1] 84.8

帰無仮説と対立仮説:何を検定するのか?

t検定を行う前に、何を証明したいのかを明確にするための「仮説」を立てます。

  • 帰無仮説: 2つのグループの母平均に差はない
    • 「メソッドAとメソッドBの効果に違いはない」という、否定したい仮説です。
  • 対立仮説: 2つのグループの母平均に差がある
    • 「メソッドAとメソッドBの効果には違いがある」という、本来確かめたい仮説です。

統計的検定は、「まず差がない(帰無仮説)と仮定し、それがデータから見て確率的にあり得ないほど珍しいことなら、その仮定を捨てて『差がある』と結論づける」という、背理法のような考え方で進めます。

t検定の前提条件:実行前にチェックすること

t検定を正しく使うためには、データの性質が以下の条件を満たしているか確認します。

データが「正規分布」しているか

t検定は、データが「正規分布(左右対称の山のような形)」に従っていることを前提としています。極端に偏ったデータがある場合は、別の手法を検討する必要があります。

「分散(バラつき)」が等しいか

2つのグループのデータの散ラばり具合(分散)が同じか、違うかによって計算式が異なります。

しかし、Rのt.test()関数は、デフォルトで「Welch(ウェルチ)のt検定」という手法を採用しています。これは、2つのグループのバラつきが違っていても自動で調整してくれる優れた設定です。

t検定の実行

Rでは、標準関数のt.test()を使うだけで簡単に計算できます。

差があるかどうかを検定する(両側検定)


# t検定(対応なし)を実行
t.test(group_a, group_b)

Welch Two Sample t-test

data:  group_a and group_b
t = -4.911, df = 16.14, p-value = 0.0001529
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -16.890074  -6.709926
sample estimates:
mean of x mean of y 
     73.0      84.8

「より小さい」を検定する(片側検定)


# 「group_b の方が母平均が大きい」ことを検定する場合
t.test(group_a, group_b, alternative = "less") # a < b という意味

Welch Two Sample t-test

data:  group_a and group_b
t = -4.911, df = 16.14, p-value = 7.643e-05
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
     -Inf -7.60726
sample estimates:
mean of x mean of y 
     73.0      84.8

「より大きい」を検定する(片側検定)


# 「group_a の方が母平均が大きい」ことを検定する場合
t.test(group_a, group_b, alternative = "greater") # a > b という意味

Welch Two Sample t-test

data:  group_a and group_b
t = -4.911, df = 16.14, p-value = 0.9999
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 -15.99274       Inf
sample estimates:
mean of x mean of y 
     73.0      84.8 

結果の読み方:p-value(p値)と有意水準

実行結果で最も重要なのがp-value(p値) です。

有意水準との比較

統計的検定では、p値を判断するためのしきい値(有意水準)を、事前に決めておくのがルールです。一般的には0.05(5%)が用いられることが多いです。

  • p値 < 0.05:「統計的に有意な差がある」と判断します。つまり、「たまたま起きた差」とは考えにくく、母平均に差があると結論づけます。
  • p値 ≧ 0.05:「統計的に有意な差があるとは言えない」と判断します。

今回の例「差があるかどうかを検定する(両側検定)」では、実行結果のp値が非常に小さな値(0.0001529)になるため、0.05を下回り、「有意差あり(メソッド間で効果が異なる)」と判断されます。

補足: 「対応なし」とは?

今回の検定は、グループAとBが「全く別の人たち(独立した標本)」であることを前提としています。もし「同じ人が、学習前と後でどう変わったか」を調べる場合は、「対応あり(Paired)」という別の手法を使います。

まとめ:t検定(対応なし)のポイント

2つの独立したグループの平均に「意味のある差」があるかを調べるt検定(対応なし)について、重要なポイントを整理しておきます。

  1. 目的は「母平均」の比較:標本の平均値の差が、背後にある母集団全体でも言えることなのかを確率的に判定します。
  2. 帰無仮説と対立仮説を意識する:「差がない」という仮説を棄却できるかどうかを検証します。
  3. RならWelch(ウェルチ)のt検定が標準:t.test()は、2つのグループのバラつき(分散)が違っていても自動で調整してくれるため、安心して実行できます。
  4. p値と有意水準で判断する:事前に決めた有意水準(通常0.05)と算出したp値を比較し、p値が小さければ「統計的に有意な差がある」と結論づけます。
  5. 「対応なし」は独立したグループが対象:比較する2つのグループが全く別の人たちであることを確認しましょう。

t検定は非常に汎用性の高い手法ですが、あくまで「統計的な確からしさ」を示すものです。結果が得られたら、その差が実務的にどの程度のインパクトがあるのかもあわせて検討してください。