メインコンテンツへスキップ
StatPlay トピック 分散分析(ANOVA)— F値の直感を掴む

分散分析(ANOVA)— F値の直感を掴む

t検定を3回繰り返してはいけない理由が、100回のシミュレーションで目に見える。誤検出率は 5% ではなく、なぜか 14.3% になる。

I.07 / ANOVA

分散分析(ANOVA) — F値の直感を掴む

カイ二乗検定は「カテゴリのズレ」を測った。では「3グループ以上の平均値に差があるか?」はどう調べる? t検定を何度も繰り返すと偽陽性が膨らむ — 分散分析(ANOVA)なら、全グループを一度に比較できる。

「グループ間の違い」と「グループ内のバラつき」を比べるのがANOVA。
違いがバラつきに比べて大きければ「差がある」と判定。スライダーで動かして体感しよう。

実験ガイド — 多重比較の問題
  1. Step 1: ▶ 100回 をクリック — 差がない3群でt検定を3回繰り返す試行を100回実施。
  2. Step 2: 赤い点の割合を確認 — 理論上14.3%のはずが、実測値はどうなる?
  3. Step 3: ▶ 1000回 で試行を追加 — 試行数が増えると14.3%に収束していく。

▶ なぜt検定を繰り返してはいけないか

まず「ANOVAがなぜ必要か」を体験。差がない3群(N(0,1)×20人)でt検定を3回繰り返すと、偽陽性はどこまで膨らむ?
試行回数 0
偽陽性 0
偽陽性率 0.0%

上のシミュレーションで見た「偽陽性の膨張」を、一度の検定で回避するのがこのF検定(ANOVA)です。

実験ガイド — F値を体感する
  1. Step 1: 群間の差をゼロにする → F値が1付近に。全群が「同じ集団」のように見える。
  2. Step 2: 群間の差を大きくする → F値が上がり、p値が下がる。棄却域に入る瞬間を確認。
  3. Step 3: 群内のばらつきを大きくする → 同じ差でもF値が下がる。「差があっても検出できない」体験。
  4. Step 4: サンプルサイズを増やす → F値が上がる。大きなサンプルほど小さな差を検出できる(検出力)。

▶ 群間分散 vs 群内分散 — F値をスライダーで体感

F
群間 df
群内 df
p
SSB
SSW
η²
判定

// 分散分析表

要因SSdfMSFp
群間(B)
群内(W)
全体

// F値って結局なにをしている?

3つのクラスのテスト結果を比べたいとします。
「クラスごとの平均が離れている」= 教え方に差がありそう。
「でもクラス内の個人差も大きい」= たまたまかもしれない。

F値は、この2つを比べた数字です。
「クラス間のばらつき」÷「クラス内のばらつき」 —— それだけ。
分子が大きいほど「グループ間に差がありそうだ」と判断できます。

公式にすると↓こうなりますが、いきなり暗記しなくて大丈夫です。
上のグラフをドラッグして、スライダーを動かしながら眺めるほうが先。

・SSB(群間変動)= グループ平均が全体平均からどれだけズレているか
・SSW(群内変動)= 各グループの中でデータがどれだけ散らばっているか
・df で割って「1自由度あたり」に揃えたのが MS
F ≈ 1 なら「差があるとは言えない」、F が大きいほど「差がありそう」

どのくらい大きければ有意かは、自由度と有意水準 α で決まります。
インタラクティブ確率分布表で臨界値を確認できます。

// 手を動かしてみよう — テスト成績の例

3つの教授法 A・B・C を各15人で比較したとします。

① まず平均を見る
 群A = 65点、群B = 72点、群C = 73点、全体平均 = 70点

② 群間変動 SSB を計算
 各群の人数 × (群平均 − 全体平均)² を足す
 = 15×(65−70)² + 15×(72−70)² + 15×(73−70)² = 15×(25+4+9) = 570

③ 群内変動 SSW
 各群内でデータが平均からどれだけ散らばっているかの合計 = 仮に 2520

④ 自由度を出す
 dfB = 群の数−1 = 3−1 = 2
 dfW = 全人数−群の数 = 45−3 = 42

⑤ MSを出してF値へ
 MSB = 570÷2 = 285、MSW = 2520÷42 = 60
 F = 285÷60 = 4.75

⑥ 判定
 F(2, 42) の臨界値(α=0.05)は約 3.22。
 4.75 > 3.22 → 棄却(少なくとも1つの群に差がある)。
 ——ただし「どの群とどの群か」は、まだわかりません(→ 多重比較が必要)。

// ここで引っかかりやすいポイント

「ANOVAで有意 = どの群に差があるか分かる」?

実はこれ、わかりません。ANOVAが教えてくれるのは「どこかに差がある」だけ。
どの群同士かを突き止めるには、Tukey法やBonferroni法などの多重比較が必要です。

「t検定を何回もやればいいのでは?」

ページ上部のシミュレーションを見てください。3群の比較で t 検定を繰り返すと、本当は差がなくても約14.3%の確率で「有意」が出てしまいます。
ANOVAは、この「偽陽性の膨張」を防いで全体の α を5%に保てる方法です。

「F値が大きい = 効果も大きい」?

サンプルサイズが大きいと、ほんの少しの差でもF値は大きくなります。
「実際にどれくらい差があるか」は効果量(η²)で見るのがおすすめです。

// よく出会う形

分散分析を扱うとき、繰り返し見える同じ構造があります。

  • 分散分析表の構造 — SS と df が並ぶと、その横に MS と F が自動的に埋まっていく形になっている。上の具体例がそのままこの形のテンプレート
  • 自由度の決まり方 — 群間 = k−1、群内 = N−k、全体 = N−1。この三つが必ずセットで顔を出す
  • t検定の繰り返しが膨らむ理由 — 多重比較の話。上のシミュレーションの14.3%という数字が、この形のまま再現されている
  • 前提となる3条件 — 正規性・等分散性・独立性。この三つが揃っているときに、上のF分布の絵が成立している
次は —2変数の「つながり」を測る M0 相関係数