第09回 仮説検定(2):分散分析(ANOVA)¶
12/1(火)Ⅱ講 10:35〜12:15・B402教室
3つ以上を比べるとき、t検定を繰り返してはいけない ―― 偽陽性の罠
今日のリンク
- 📊 スライドを開く
- 📓 Colabノートを開く(09_anova.ipynb)
- 📝 課題を提出する(Moodle・第9回)
- 課題の本文はこのページの末尾にあります
この回のゴール¶
- 検定を繰り返すと偽陽性(多重比較の罠)が増えることを説明できる
- ANOVA(分散分析)で3群以上を一括判定できる
- F値の意味と、事後検定・補正の必要性を理解する
到達目標との対応:G2。
0. フック¶
3つの科(オマキザル科・クモザル科・コビトキツネザル科)で体重に差があるか調べたい。 「じゃあ、オマキvsクモ・クモvsコビト・オマキvsコビト と、全ペアで t検定すればいいよね?」
――この『全ペアでt検定』が、実は危ない。
1. なぜ「繰り返し」がダメなのか¶
1回のt検定は「本当は差がないのに、まぐれで有意」と誤る確率を 5%(α) 許している。
では検定を何回もやったら? 毎回5%の落とし穴があるのだから、回数が増えるほど「どれか1つはまぐれで有意」になりやすい。
2. 多重比較の罠(シミュレーション)¶
本当はすべて同じ母集団(=差がまったくない) の k 個の群に、全ペアで t検定する。「最低1つでも有意」になる割合を数えると:
| 群数 k | ペア数 | まぐれで有意になった割合 |
|---|---|---|
| 2 | 1 | 約 6% |
| 3 | 3 | 約 12% |
| 5 | 10 | 約 30% |
| 10 | 45 | 約 64% |
差がないのに『発見』が増える
差はまったくないのに、群が増える(=検定回数が増える)ほど「最低1つ有意」が増える。 10群なら6割以上がまぐれの「発見」。検定の回数を増やすほど、偽の発見が紛れ込む。
だから3群以上を「全ペアt検定」してはいけない。
3. ANOVA ―― まず1回で「どこかに差があるか」¶
分散分析(ANOVA)は、3群以上を一度の検定で「どこかに差があるか」だけを判定する。検定を繰り返さないので偽陽性が増えない。
3つの科の体重で実行すると(対数スケール):
| 科 | 体重の中央値(n) |
|---|---|
| オマキザル科 | 492 g(39種) |
| クモザル科 | 6,652 g(16種) |
| コビトキツネザル科 | 69 g(13種) |
ANOVA:F = 151.89、p = 3×10⁻²⁵
圧倒的に有意。中央値が桁で違うのだから当然である。F=151.89 は「グループ間の差が、群内のばらつきの150倍」という意味。
対照実験 ―― F が1前後だと、どう見えるか¶
同じ科の枠組みで、差がなさそうな量を調べる。「科によって、生息地の降水量に差はあるか?」
| 科 | 月降水量の平均(n) |
|---|---|
| オナガザル科 | 158.7 mm(130種) |
| クモザル科 | 161.3 mm(24種) |
| サキ科 | 154.8 mm(26種) |
ANOVA:F = 0.08、p = 0.92
平均値の見かけの違いは、群内のばらつきに完全に埋もれている。(見かけの平均差にだまされない、という第2〜3回の教訓ともつながる。)
「有意でなかった」も立派な結果
ただしこれは「差がないことの証明」ではない。「この種数・このばらつきでは、差を検出できなかった」が正確な言い方である。
F値の気持ち¶
ANOVAは2種類のばらつきを比べる。
- F が大きい = グループ間の差が個人差より大きい → 「差がある」
- F が1前後 = グループの違いは個人差の範囲 → 「差があるとは言えない」(今回)
4. ANOVAが有意だったら ―― 事後検定と補正¶
ANOVAが教えるのは「どこかに差がある」まで。どのペアかは別途調べる(事後検定)。その際も検定を繰り返すので、有意水準を厳しくする補正をかける。
- ボンフェローニ補正:α を検定回数で割る。例:5群=10ペアなら α=0.05/10=0.005 を各検定の基準に。これで全体の偽陽性を5%に抑える。
よくある誤り
「ANOVAが有意 = すべての群が互いに違う」――ちがう。 ANOVAが言うのは「どこかに差がある」だけ。どのペアかは事後検定で確かめる。
まとめ¶
| 概念 | ひとこと |
|---|---|
| 多重比較の罠 | 検定を繰り返すほど、まぐれの有意(偽陽性)が増える |
| ANOVA | 3群以上を1回で「どこかに差があるか」判定。偽陽性が増えない |
| F値 | 群間のばらつき ÷ 群内のばらつき。大きいほど差あり |
| 事後検定+補正 | どのペアかは別途。ボンフェローニ補正で α を回数で割る |
| ❌ 誤り | 全ペアt検定でOK/ANOVA有意=全群が違う |
群が3つ以上なら、t検定を繰り返さない。まずANOVAで一括判定。 「有意」は『どこかに差』であって『全部違う』ではない。 何度も試せばいつか「当たる」。これは第1回の大数の法則の裏返しで、少数の偶然に意味を見てしまう癖そのものだ。繰り返すなら、繰り返した回数の分だけ厳しくする。
今日の課題(Moodle提出)¶
配点:100点(自動採点40点 + 記述60点)/ 提出先:Moodle
Colab 09_anova.ipynb を実行したうえで答えること。
パートA:選択問題(自動採点・各10点 ×4=40点)¶
A1. 本当はどの群も差がないのに、群(検定回数)を 2→3→5→10 と増やして全ペアt検定すると、「最低1つ有意」になった割合はどうなったか。 - (ア) ずっと5%で変わらない - (イ) 約6%→12%→30%→64% と増えた - (ウ) 約64%→30%→12%→6% と減った
A2. なぜ3群以上で「全ペアt検定」を避けるべきか。最も適切なのは? - (ア) 計算が面倒だから - (イ) 検定を繰り返すほど、まぐれで有意になる偽陽性が増えるから - (ウ) t検定は2群でも使えないから
A3. ANOVA(分散分析)が判定するのは何か。最も適切なのは? - (ア) どの2つの群が違うかを正確に特定する - (イ) 「どこかに差があるか」を1回でまとめて判定する - (ウ) 効果量を計算する
A4. 「ANOVAが有意(p<0.05)だった」。ここから正しく言えるのは? - (ア) すべての群が互いに異なる - (イ) どこかに差がある。どのペアかは事後検定で確かめる必要がある - (ウ) 群1が最も大きい
パートB:記述問題(AIフィードバック対象・60点)¶
【全記述に共通・重要】自分の出力を引用すること
記述には、今日のColabで確認した数値を最低1つ引用すること(例:「10群では64%がまぐれで有意」「3科の体重のANOVAはF=151.89」「月降水量ではF=0.08, p=0.92」)。引用がない記述は満点になりません。
B1.(30点) ある研究者が、6種類のダイエット食品それぞれについて「食べた群 vs 食べない群」で個別にt検定を行い、「6つのうち1つで p<0.05 が出たので、その食品には効果がある」と発表した。この分析の何が問題かを、今日学んだ多重比較の観点から指摘し、どうすべきだったかを述べなさい。
B2.(30点) 3つの科の生息地の月降水量は、平均が 158.7 / 161.3 / 154.8 mm と少し違って見えたのに、ANOVAでは「差があるとは言えない」(F=0.08, p=0.92)という結果だった。見かけの平均差があるのに「差なし」になるのはなぜか、F値(群間のばらつきと群内のばらつき)の考え方を使って説明しなさい。
目安:B1・B2あわせて350〜550字。自分の言葉で書くこと。
次回予告
第10回「回帰分析:単回帰と重回帰」。2変数の関係を数式(モデル)で表す。データを式で説明する試みと、その限界へ。